wdiff-1.2.1/0000755000000000000000000000000012116513227007561 500000000000000wdiff-1.2.1/tests/0000755000000000000000000000000012116513224010720 500000000000000wdiff-1.2.1/tests/cluster.at0000644000000000000000000000150211744500575012660 00000000000000# -*- shell-script -*- # wdiff test suite # Copyright (C) 2010 Free Software Foundation, Inc. # # This file is part of GNU wdiff # # GNU wdiff 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 3 of the License, or # (at your option) any later version. # # GNU wdiff 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, see . # Tests not ready, see history of cluster.m4 for the tests exit 77 wdiff-1.2.1/tests/testsuite.at0000644000000000000000000000043011744500575013227 00000000000000#!/bin/sh # Validation suite for the GNU `wdiff' and friends. -*- shell-script -*- # Copyright (C) 1998 Progiciels Bourbeau-Pinard inc. # Francois Pinard , 1998. AT_INIT(wdiff) AT_COLOR_TESTS # The other tests will be appended here by the Makefile rule. wdiff-1.2.1/tests/testsuite0000755000000000000000000021365412116513223012631 00000000000000#! /bin/sh # Generated from testsuite.at by GNU Autoconf 2.69. # # Copyright (C) 2009-2012 Free Software Foundation, Inc. # # This test suite is free software; the Free Software Foundation gives # unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do 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 as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } 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.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do 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 " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_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 || $as_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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error 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 as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi # 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 as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # 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" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac 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 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" SHELL=${CONFIG_SHELL-/bin/sh} # How were we run? at_cli_args="$@" # Not all shells have the 'times' builtin; the subshell is needed to make # sure we discard the 'times: not found' message from the shell. at_times_p=false (times) >/dev/null 2>&1 && at_times_p=: # CLI Arguments to pass to the debugging scripts. at_debug_args= # -e sets to true at_errexit_p=false # Shall we be verbose? ':' means no, empty means yes. at_verbose=: at_quiet= # Running several jobs in parallel, 0 means as many as test groups. at_jobs=1 at_traceon=: at_trace_echo=: at_check_filter_trace=: # Shall we keep the debug scripts? Must be `:' when the suite is # run by a debug script, so that the script doesn't remove itself. at_debug_p=false # Display help message? at_help_p=false # Display the version message? at_version_p=false # List test groups? at_list_p=false # --clean at_clean=false # Test groups to run at_groups= # Whether to rerun failed tests. at_recheck= # Whether a write failure occurred at_write_fail=0 # The directory we run the suite in. Default to . if no -C option. at_dir=`pwd` # An absolute reference to this testsuite script. case $as_myself in [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; * ) at_myself=$at_dir/$as_myself ;; esac # Whether -C is in effect. at_change_dir=false # Whether to enable colored test results. at_color=auto # List of the tested programs. at_tested='wdiff which env grep diff sed tr' # As many question marks as there are digits in the last test group number. # Used to normalize the test group numbers so that `ls' lists them in # numerical order. at_format='?' # Description of all the test groups. at_help_all="1;wdiff.at:25;wdiff output formats;; 2;wdiff.at:142;report bad diff binary;; 3;wdiff.at:168;use pager;; 4;wdiff.at:201;diff as input;; " # List of the all the test groups. at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` # at_fn_validate_ranges NAME... # ----------------------------- # Validate and normalize the test group number contained in each variable # NAME. Leading zeroes are treated as decimal. at_fn_validate_ranges () { for at_grp do eval at_value=\$$at_grp if test $at_value -lt 1 || test $at_value -gt 4; then $as_echo "invalid test group: $at_value" >&2 exit 1 fi case $at_value in 0*) # We want to treat leading 0 as decimal, like expr and test, but # AS_VAR_ARITH treats it as octal if it uses $(( )). # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the # expr fork, but it is not worth the effort to determine if the # shell supports XSI when the user can just avoid leading 0. eval $at_grp='`expr $at_value + 0`' ;; esac done } at_prev= for at_option do # If the previous option needs an argument, assign it. if test -n "$at_prev"; then at_option=$at_prev=$at_option at_prev= fi case $at_option in *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; *) at_optarg= ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $at_option in --help | -h ) at_help_p=: ;; --list | -l ) at_list_p=: ;; --version | -V ) at_version_p=: ;; --clean | -c ) at_clean=: ;; --color ) at_color=always ;; --color=* ) case $at_optarg in no | never | none) at_color=never ;; auto | tty | if-tty) at_color=auto ;; always | yes | force) at_color=always ;; *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'` as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;; esac ;; --debug | -d ) at_debug_p=: ;; --errexit | -e ) at_debug_p=: at_errexit_p=: ;; --verbose | -v ) at_verbose=; at_quiet=: ;; --trace | -x ) at_traceon='set -x' at_trace_echo=echo at_check_filter_trace=at_fn_filter_trace ;; [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) at_fn_validate_ranges at_option as_fn_append at_groups "$at_option$as_nl" ;; # Ranges [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) at_range_start=`echo $at_option |tr -d X-` at_fn_validate_ranges at_range_start at_range=`$as_echo "$at_groups_all" | \ sed -ne '/^'$at_range_start'$/,$p'` as_fn_append at_groups "$at_range$as_nl" ;; -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) at_range_end=`echo $at_option |tr -d X-` at_fn_validate_ranges at_range_end at_range=`$as_echo "$at_groups_all" | \ sed -ne '1,/^'$at_range_end'$/p'` as_fn_append at_groups "$at_range$as_nl" ;; [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \ [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \ [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \ [0-9][0-9][0-9]-[0-9][0-9][0-9] | \ [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \ [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ) at_range_start=`expr $at_option : '\(.*\)-'` at_range_end=`expr $at_option : '.*-\(.*\)'` if test $at_range_start -gt $at_range_end; then at_tmp=$at_range_end at_range_end=$at_range_start at_range_start=$at_tmp fi at_fn_validate_ranges at_range_start at_range_end at_range=`$as_echo "$at_groups_all" | \ sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'` as_fn_append at_groups "$at_range$as_nl" ;; # Directory selection. --directory | -C ) at_prev=--directory ;; --directory=* ) at_change_dir=: at_dir=$at_optarg if test x- = "x$at_dir" ; then at_dir=./- fi ;; # Parallel execution. --jobs | -j ) at_jobs=0 ;; --jobs=* | -j[0-9]* ) if test -n "$at_optarg"; then at_jobs=$at_optarg else at_jobs=`expr X$at_option : 'X-j\(.*\)'` fi case $at_jobs in *[!0-9]*) at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'` as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;; esac ;; # Keywords. --keywords | -k ) at_prev=--keywords ;; --keywords=* ) at_groups_selected=$at_help_all at_save_IFS=$IFS IFS=, set X $at_optarg shift IFS=$at_save_IFS for at_keyword do at_invert= case $at_keyword in '!'*) at_invert="-v" at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'` ;; esac # It is on purpose that we match the test group titles too. at_groups_selected=`$as_echo "$at_groups_selected" | grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` done # Smash the keywords. at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'` as_fn_append at_groups "$at_groups_selected$as_nl" ;; --recheck) at_recheck=: ;; *=*) at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $at_envvar in '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$at_envvar'" ;; esac at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` # Export now, but save eval for later and for debug scripts. export $at_envvar as_fn_append at_debug_args " $at_envvar='$at_value'" ;; *) $as_echo "$as_me: invalid option: $at_option" >&2 $as_echo "Try \`$0 --help' for more information." >&2 exit 1 ;; esac done # Verify our last option didn't require an argument if test -n "$at_prev"; then : as_fn_error $? "\`$at_prev' requires an argument" fi # The file containing the suite. at_suite_log=$at_dir/$as_me.log # Selected test groups. if test -z "$at_groups$at_recheck"; then at_groups=$at_groups_all else if test -n "$at_recheck" && test -r "$at_suite_log"; then at_oldfails=`sed -n ' /^Failed tests:$/,/^Skipped tests:$/{ s/^[ ]*\([1-9][0-9]*\):.*/\1/p } /^Unexpected passes:$/,/^## Detailed failed tests/{ s/^[ ]*\([1-9][0-9]*\):.*/\1/p } /^## Detailed failed tests/q ' "$at_suite_log"` as_fn_append at_groups "$at_oldfails$as_nl" fi # Sort the tests, removing duplicates. at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'` fi if test x"$at_color" = xalways \ || { test x"$at_color" = xauto && test -t 1; }; then at_red=`printf '\033[0;31m'` at_grn=`printf '\033[0;32m'` at_lgn=`printf '\033[1;32m'` at_blu=`printf '\033[1;34m'` at_std=`printf '\033[m'` else at_red= at_grn= at_lgn= at_blu= at_std= fi # Help message. if $at_help_p; then cat <<_ATEOF || at_write_fail=1 Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] Run all the tests, or the selected TESTS, given by numeric ranges, and save a detailed log file. Upon failure, create debugging scripts. Do not change environment variables directly. Instead, set them via command line arguments. Set \`AUTOTEST_PATH' to select the executables to exercise. Each relative directory is expanded as build and source directories relative to the top level of this distribution. E.g., from within the build directory /tmp/foo-1.0, invoking this: $ $0 AUTOTEST_PATH=bin is equivalent to the following, assuming the source directory is /src/foo-1.0: PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 _ATEOF cat <<_ATEOF || at_write_fail=1 Operation modes: -h, --help print the help message, then exit -V, --version print version number, then exit -c, --clean remove all the files this test suite might create and exit -l, --list describes all the tests, or the selected TESTS _ATEOF cat <<_ATEOF || at_write_fail=1 Execution tuning: -C, --directory=DIR change to directory DIR before starting --color[=never|auto|always] disable colored test results, or enable even without terminal -j, --jobs[=N] Allow N jobs at once; infinite jobs with no arg (default 1) -k, --keywords=KEYWORDS select the tests matching all the comma-separated KEYWORDS multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD --recheck select all tests that failed or passed unexpectedly last time -e, --errexit abort as soon as a test fails; implies --debug -v, --verbose force more detailed output default for debugging scripts -d, --debug inhibit clean up and top-level logging default for debugging scripts -x, --trace enable tests shell tracing _ATEOF cat <<_ATEOF || at_write_fail=1 Report bugs to . General help using GNU software: . _ATEOF exit $at_write_fail fi # List of tests. if $at_list_p; then cat <<_ATEOF || at_write_fail=1 GNU wdiff 1.2.1 test suite: wdiff test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS _ATEOF # Pass an empty line as separator between selected groups and help. $as_echo "$at_groups$as_nl$as_nl$at_help_all" | awk 'NF == 1 && FS != ";" { selected[$ 1] = 1 next } /^$/ { FS = ";" } NF > 0 { if (selected[$ 1]) { printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 if ($ 4) { lmax = 79 indent = " " line = indent len = length (line) n = split ($ 4, a, " ") for (i = 1; i <= n; i++) { l = length (a[i]) + 1 if (i > 1 && len + l > lmax) { print line line = indent " " a[i] len = length (line) } else { line = line " " a[i] len += l } } if (n) print line } } }' || at_write_fail=1 exit $at_write_fail fi if $at_version_p; then $as_echo "$as_me (GNU wdiff 1.2.1)" && cat <<\_ATEOF || at_write_fail=1 Copyright (C) 2012 Free Software Foundation, Inc. This test suite is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ATEOF exit $at_write_fail fi # Should we print banners? Yes if more than one test is run. case $at_groups in #( *$as_nl* ) at_print_banners=: ;; #( * ) at_print_banners=false ;; esac # Text for banner N, set to a single space once printed. # Take any -C into account. if $at_change_dir ; then test x != "x$at_dir" && cd "$at_dir" \ || as_fn_error $? "unable to change directory" at_dir=`pwd` fi # Load the config files for any default variable assignments. for at_file in atconfig atlocal do test -r $at_file || continue . ./$at_file || as_fn_error $? "invalid content: $at_file" done # Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: : "${at_top_build_prefix=$at_top_builddir}" # Perform any assignments requested during argument parsing. eval "$at_debug_args" # atconfig delivers names relative to the directory the test suite is # in, but the groups themselves are run in testsuite-dir/group-dir. if test -n "$at_top_srcdir"; then builddir=../.. for at_dir_var in srcdir top_srcdir top_build_prefix do eval at_val=\$at_$at_dir_var case $at_val in [\\/$]* | ?:[\\/]* ) at_prefix= ;; *) at_prefix=../../ ;; esac eval "$at_dir_var=\$at_prefix\$at_val" done fi ## -------------------- ## ## Directory structure. ## ## -------------------- ## # This is the set of directories and files used by this script # (non-literals are capitalized): # # TESTSUITE - the testsuite # TESTSUITE.log - summarizes the complete testsuite run # TESTSUITE.dir/ - created during a run, remains after -d or failed test # + at-groups/ - during a run: status of all groups in run # | + NNN/ - during a run: meta-data about test group NNN # | | + check-line - location (source file and line) of current AT_CHECK # | | + status - exit status of current AT_CHECK # | | + stdout - stdout of current AT_CHECK # | | + stder1 - stderr, including trace # | | + stderr - stderr, with trace filtered out # | | + test-source - portion of testsuite that defines group # | | + times - timestamps for computing duration # | | + pass - created if group passed # | | + xpass - created if group xpassed # | | + fail - created if group failed # | | + xfail - created if group xfailed # | | + skip - created if group skipped # + at-stop - during a run: end the run if this file exists # + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction # + 0..NNN/ - created for each group NNN, remains after -d or failed test # | + TESTSUITE.log - summarizes the group results # | + ... - files created during the group # The directory the whole suite works in. # Should be absolute to let the user `cd' at will. at_suite_dir=$at_dir/$as_me.dir # The file containing the suite ($at_dir might have changed since earlier). at_suite_log=$at_dir/$as_me.log # The directory containing helper files per test group. at_helper_dir=$at_suite_dir/at-groups # Stop file: if it exists, do not start new jobs. at_stop_file=$at_suite_dir/at-stop # The fifo used for the job dispatcher. at_job_fifo=$at_suite_dir/at-job-fifo if $at_clean; then test -d "$at_suite_dir" && find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; rm -f -r "$at_suite_dir" "$at_suite_log" exit $? fi # Don't take risks: use only absolute directories in PATH. # # For stand-alone test suites (ie. atconfig was not found), # AUTOTEST_PATH is relative to `.'. # # For embedded test suites, AUTOTEST_PATH is relative to the top level # of the package. Then expand it into build/src parts, since users # may create executables in both places. AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` at_path= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $AUTOTEST_PATH $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR case $as_dir in [\\/]* | ?:[\\/]* ) as_fn_append at_path "$as_dir" ;; * ) if test -z "$at_top_build_prefix"; then # Stand-alone test suite. as_fn_append at_path "$as_dir" else # Embedded test suite. as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR" as_fn_append at_path "$at_top_srcdir/$as_dir" fi ;; esac done IFS=$as_save_IFS # Now build and simplify PATH. # # There might be directories that don't exist, but don't redirect # builtins' (eg., cd) stderr directly: Ultrix's sh hates that. at_new_path= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $at_path do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -d "$as_dir" || continue case $as_dir in [\\/]* | ?:[\\/]* ) ;; * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; esac case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; esac done IFS=$as_save_IFS PATH=$at_new_path export PATH # Setting up the FDs. # 5 is the log file. Not to be overwritten if `-d'. if $at_debug_p; then at_suite_log=/dev/null else : >"$at_suite_log" fi exec 5>>"$at_suite_log" # Banners and logs. $as_echo "## ---------------------------------- ## ## GNU wdiff 1.2.1 test suite: wdiff. ## ## ---------------------------------- ##" { $as_echo "## ---------------------------------- ## ## GNU wdiff 1.2.1 test suite: wdiff. ## ## ---------------------------------- ##" echo $as_echo "$as_me: command line was:" $as_echo " \$ $0 $at_cli_args" echo # If ChangeLog exists, list a few lines in case it might help determining # the exact version. if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then $as_echo "## ---------- ## ## ChangeLog. ## ## ---------- ##" echo sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog" echo fi { 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=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } echo # Contents of the config files. for at_file in atconfig atlocal do test -r $at_file || continue $as_echo "$as_me: $at_file:" sed 's/^/| /' $at_file echo done } >&5 ## ------------------------- ## ## Autotest shell functions. ## ## ------------------------- ## # at_fn_banner NUMBER # ------------------- # Output banner NUMBER, provided the testsuite is running multiple groups and # this particular banner has not yet been printed. at_fn_banner () { $at_print_banners || return 0 eval at_banner_text=\$at_banner_text_$1 test "x$at_banner_text" = "x " && return 0 eval "at_banner_text_$1=\" \"" if test -z "$at_banner_text"; then $at_first || echo else $as_echo "$as_nl$at_banner_text$as_nl" fi } # at_fn_banner # at_fn_check_prepare_notrace REASON LINE # --------------------------------------- # Perform AT_CHECK preparations for the command at LINE for an untraceable # command; REASON is the reason for disabling tracing. at_fn_check_prepare_notrace () { $at_trace_echo "Not enabling shell tracing (command contains $1)" $as_echo "$2" >"$at_check_line_file" at_check_trace=: at_check_filter=: : >"$at_stdout"; : >"$at_stderr" } # at_fn_check_prepare_trace LINE # ------------------------------ # Perform AT_CHECK preparations for the command at LINE for a traceable # command. at_fn_check_prepare_trace () { $as_echo "$1" >"$at_check_line_file" at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace : >"$at_stdout"; : >"$at_stderr" } # at_fn_check_prepare_dynamic COMMAND LINE # ---------------------------------------- # Decide if COMMAND at LINE is traceable at runtime, and call the appropriate # preparation function. at_fn_check_prepare_dynamic () { case $1 in *$as_nl*) at_fn_check_prepare_notrace 'an embedded newline' "$2" ;; *) at_fn_check_prepare_trace "$2" ;; esac } # at_fn_filter_trace # ------------------ # Remove the lines in the file "$at_stderr" generated by "set -x" and print # them to stderr. at_fn_filter_trace () { mv "$at_stderr" "$at_stder1" grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" } # at_fn_log_failure FILE-LIST # --------------------------- # Copy the files in the list on stdout with a "> " prefix, and exit the shell # with a failure exit code. at_fn_log_failure () { for file do $as_echo "$file:"; sed 's/^/> /' "$file"; done echo 1 > "$at_status_file" exit 1 } # at_fn_check_skip EXIT-CODE LINE # ------------------------------- # Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit # the test group subshell with that same exit code. Use LINE in any report # about test failure. at_fn_check_skip () { case $1 in 99) echo 99 > "$at_status_file"; at_failed=: $as_echo "$2: hard failure"; exit 99;; 77) echo 77 > "$at_status_file"; exit 77;; esac } # at_fn_check_status EXPECTED EXIT-CODE LINE # ------------------------------------------ # Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing. # Otherwise, if it is 77 or 99, exit the test group subshell with that same # exit code; if it is anything else print an error message referring to LINE, # and fail the test. at_fn_check_status () { case $2 in $1 ) ;; 77) echo 77 > "$at_status_file"; exit 77;; 99) echo 99 > "$at_status_file"; at_failed=: $as_echo "$3: hard failure"; exit 99;; *) $as_echo "$3: exit code was $2, expected $1" at_failed=:;; esac } # at_fn_diff_devnull FILE # ----------------------- # Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff # invocations. at_fn_diff_devnull () { test -s "$1" || return 0 $at_diff "$at_devnull" "$1" } # at_fn_test NUMBER # ----------------- # Parse out test NUMBER from the tail of this file. at_fn_test () { eval at_sed=\$at_sed$1 sed "$at_sed" "$at_myself" > "$at_test_source" } # at_fn_create_debugging_script # ----------------------------- # Create the debugging script $at_group_dir/run which will reproduce the # current test group. at_fn_create_debugging_script () { { echo "#! /bin/sh" && echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && $as_echo "cd '$at_dir'" && $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && echo 'exit 1' } >"$at_group_dir/run" && chmod +x "$at_group_dir/run" } ## -------------------------------- ## ## End of autotest shell functions. ## ## -------------------------------- ## { $as_echo "## ---------------- ## ## Tested programs. ## ## ---------------- ##" echo } >&5 # Report what programs are being tested. for at_program in : $at_tested do test "$at_program" = : && continue case $at_program in [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;; * ) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -f "$as_dir/$at_program" && break done IFS=$as_save_IFS at_program_=$as_dir/$at_program ;; esac if test -f "$at_program_"; then { $as_echo "$at_srcdir/testsuite.at:6: $at_program_ --version" "$at_program_" --version &5 2>&1 else as_fn_error $? "cannot find $at_program" "$LINENO" 5 fi done { $as_echo "## ------------------ ## ## Running the tests. ## ## ------------------ ##" } >&5 at_start_date=`date` at_start_time=`date +%s 2>/dev/null` $as_echo "$as_me: starting at: $at_start_date" >&5 # Create the master directory if it doesn't already exist. as_dir="$at_suite_dir"; as_fn_mkdir_p || as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5 # Can we diff with `/dev/null'? DU 5.0 refuses. if diff /dev/null /dev/null >/dev/null 2>&1; then at_devnull=/dev/null else at_devnull=$at_suite_dir/devnull >"$at_devnull" fi # Use `diff -u' when possible. if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff" then at_diff='diff -u' else at_diff=diff fi # Get the last needed group. for at_group in : $at_groups; do :; done # Extract the start and end lines of each test group at the tail # of this file awk ' BEGIN { FS="" } /^#AT_START_/ { start = NR } /^#AT_STOP_/ { test = substr ($ 0, 10) print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" if (test == "'"$at_group"'") exit }' "$at_myself" > "$at_suite_dir/at-source-lines" && . "$at_suite_dir/at-source-lines" || as_fn_error $? "cannot create test line number cache" "$LINENO" 5 rm -f "$at_suite_dir/at-source-lines" # Set number of jobs for `-j'; avoid more jobs than test groups. set X $at_groups; shift; at_max_jobs=$# if test $at_max_jobs -eq 0; then at_jobs=1 fi if test $at_jobs -ne 1 && { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then at_jobs=$at_max_jobs fi # If parallel mode, don't output banners, don't split summary lines. if test $at_jobs -ne 1; then at_print_banners=false at_quiet=: fi # Set up helper dirs. rm -rf "$at_helper_dir" && mkdir "$at_helper_dir" && cd "$at_helper_dir" && { test -z "$at_groups" || mkdir $at_groups; } || as_fn_error $? "testsuite directory setup failed" "$LINENO" 5 # Functions for running a test group. We leave the actual # test group execution outside of a shell function in order # to avoid hitting zsh 4.x exit status bugs. # at_fn_group_prepare # ------------------- # Prepare for running a test group. at_fn_group_prepare () { # The directory for additional per-group helper files. at_job_dir=$at_helper_dir/$at_group # The file containing the location of the last AT_CHECK. at_check_line_file=$at_job_dir/check-line # The file containing the exit status of the last command. at_status_file=$at_job_dir/status # The files containing the output of the tested commands. at_stdout=$at_job_dir/stdout at_stder1=$at_job_dir/stder1 at_stderr=$at_job_dir/stderr # The file containing the code for a test group. at_test_source=$at_job_dir/test-source # The file containing dates. at_times_file=$at_job_dir/times # Be sure to come back to the top test directory. cd "$at_suite_dir" # Clearly separate the test groups when verbose. $at_first || $at_verbose echo at_group_normalized=$at_group eval 'while :; do case $at_group_normalized in #( '"$at_format"'*) break;; esac at_group_normalized=0$at_group_normalized done' # Create a fresh directory for the next test group, and enter. # If one already exists, the user may have invoked ./run from # within that directory; we remove the contents, but not the # directory itself, so that we aren't pulling the rug out from # under the shell's notion of the current directory. at_group_dir=$at_suite_dir/$at_group_normalized at_group_log=$at_group_dir/$as_me.log if test -d "$at_group_dir"; then find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \; rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??* fi || { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5 $as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;} # Be tolerant if the above `rm' was not able to remove the directory. as_dir="$at_group_dir"; as_fn_mkdir_p echo 0 > "$at_status_file" # In verbose mode, append to the log file *and* show on # the standard output; in quiet mode only write to the log. if test -z "$at_verbose"; then at_tee_pipe='tee -a "$at_group_log"' else at_tee_pipe='cat >> "$at_group_log"' fi } # at_fn_group_banner ORDINAL LINE DESC PAD [BANNER] # ------------------------------------------------- # Declare the test group ORDINAL, located at LINE with group description DESC, # and residing under BANNER. Use PAD to align the status column. at_fn_group_banner () { at_setup_line="$2" test -n "$5" && at_fn_banner $5 at_desc="$3" case $1 in [0-9]) at_desc_line=" $1: ";; [0-9][0-9]) at_desc_line=" $1: " ;; *) at_desc_line="$1: " ;; esac as_fn_append at_desc_line "$3$4" $at_quiet $as_echo_n "$at_desc_line" echo "# -*- compilation -*-" >> "$at_group_log" } # at_fn_group_postprocess # ----------------------- # Perform cleanup after running a test group. at_fn_group_postprocess () { # Be sure to come back to the suite directory, in particular # since below we might `rm' the group directory we are in currently. cd "$at_suite_dir" if test ! -f "$at_check_line_file"; then sed "s/^ */$as_me: WARNING: /" <<_ATEOF A failure happened in a test group before any test could be run. This means that test suite is improperly designed. Please report this failure to . _ATEOF $as_echo "$at_setup_line" >"$at_check_line_file" at_status=99 fi $at_verbose $as_echo_n "$at_group. $at_setup_line: " $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" case $at_xfail:$at_status in yes:0) at_msg="UNEXPECTED PASS" at_res=xpass at_errexit=$at_errexit_p at_color=$at_red ;; no:0) at_msg="ok" at_res=pass at_errexit=false at_color=$at_grn ;; *:77) at_msg='skipped ('`cat "$at_check_line_file"`')' at_res=skip at_errexit=false at_color=$at_blu ;; no:* | *:99) at_msg='FAILED ('`cat "$at_check_line_file"`')' at_res=fail at_errexit=$at_errexit_p at_color=$at_red ;; yes:*) at_msg='expected failure ('`cat "$at_check_line_file"`')' at_res=xfail at_errexit=false at_color=$at_lgn ;; esac echo "$at_res" > "$at_job_dir/$at_res" # In parallel mode, output the summary line only afterwards. if test $at_jobs -ne 1 && test -n "$at_verbose"; then $as_echo "$at_desc_line $at_color$at_msg$at_std" else # Make sure there is a separator even with long titles. $as_echo " $at_color$at_msg$at_std" fi at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" case $at_status in 0|77) # $at_times_file is only available if the group succeeded. # We're not including the group log, so the success message # is written in the global log separately. But we also # write to the group log in case they're using -d. if test -f "$at_times_file"; then at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' rm -f "$at_times_file" fi $as_echo "$at_log_msg" >> "$at_group_log" $as_echo "$at_log_msg" >&5 # Cleanup the group directory, unless the user wants the files # or the success was unexpected. if $at_debug_p || test $at_res = xpass; then at_fn_create_debugging_script if test $at_res = xpass && $at_errexit; then echo stop > "$at_stop_file" fi else if test -d "$at_group_dir"; then find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; rm -fr "$at_group_dir" fi rm -f "$at_test_source" fi ;; *) # Upon failure, include the log into the testsuite's global # log. The failure message is written in the group log. It # is later included in the global log. $as_echo "$at_log_msg" >> "$at_group_log" # Upon failure, keep the group directory for autopsy, and create # the debugging script. With -e, do not start any further tests. at_fn_create_debugging_script if $at_errexit; then echo stop > "$at_stop_file" fi ;; esac } ## ------------ ## ## Driver loop. ## ## ------------ ## if (set -m && set +m && set +b) >/dev/null 2>&1; then set +b at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=- else at_job_control_on=: at_job_control_off=: at_job_group= fi for at_signal in 1 2 15; do trap 'set +x; set +e $at_job_control_off at_signal='"$at_signal"' echo stop > "$at_stop_file" trap "" $at_signal at_pgids= for at_pgid in `jobs -p 2>/dev/null`; do at_pgids="$at_pgids $at_job_group$at_pgid" done test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null wait if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then echo >&2 fi at_signame=`kill -l $at_signal 2>&1 || echo $at_signal` set x $at_signame test 1 -gt 2 && at_signame=$at_signal { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5 $as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;} as_fn_arith 128 + $at_signal && exit_status=$as_val as_fn_exit $exit_status' $at_signal done rm -f "$at_stop_file" at_first=: if test $at_jobs -ne 1 && rm -f "$at_job_fifo" && test -n "$at_job_group" && ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null then # FIFO job dispatcher. trap 'at_pids= for at_pid in `jobs -p`; do at_pids="$at_pids $at_job_group$at_pid" done if test -n "$at_pids"; then at_sig=TSTP test "${TMOUT+set}" = set && at_sig=STOP kill -$at_sig $at_pids 2>/dev/null fi kill -STOP $$ test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP echo # Turn jobs into a list of numbers, starting from 1. at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` set X $at_joblist shift for at_group in $at_groups; do $at_job_control_on 2>/dev/null ( # Start one test group. $at_job_control_off if $at_first; then exec 7>"$at_job_fifo" else exec 6<&- fi trap 'set +x; set +e trap "" PIPE echo stop > "$at_stop_file" echo >&7 as_fn_exit 141' PIPE at_fn_group_prepare if cd "$at_group_dir" && at_fn_test $at_group && . "$at_test_source" then :; else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} at_failed=: fi at_fn_group_postprocess echo >&7 ) & $at_job_control_off if $at_first; then at_first=false exec 6<"$at_job_fifo" 7>"$at_job_fifo" fi shift # Consume one token. if test $# -gt 0; then :; else read at_token <&6 || break set x $* fi test -f "$at_stop_file" && break done exec 7>&- # Read back the remaining ($at_jobs - 1) tokens. set X $at_joblist shift if test $# -gt 0; then shift for at_job do read at_token done <&6 fi exec 6<&- wait else # Run serially, avoid forks and other potential surprises. for at_group in $at_groups; do at_fn_group_prepare if cd "$at_group_dir" && at_fn_test $at_group && . "$at_test_source"; then :; else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} at_failed=: fi at_fn_group_postprocess test -f "$at_stop_file" && break at_first=false done fi # Wrap up the test suite with summary statistics. cd "$at_helper_dir" # Use ?..???? when the list must remain sorted, the faster * otherwise. at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do echo $f; done | sed '/?/d; s,/xpass,,'` at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do echo $f; done | sed '/?/d; s,/fail,,'` set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list shift; at_group_count=$# set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* set X $at_xfail_list; shift; at_xfail_count=$# set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* set X $at_skip_list; shift; at_skip_count=$# as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val # Back to the top directory. cd "$at_dir" rm -rf "$at_helper_dir" # Compute the duration of the suite. at_stop_date=`date` at_stop_time=`date +%s 2>/dev/null` $as_echo "$as_me: ending at: $at_stop_date" >&5 case $at_start_time,$at_stop_time in [0-9]*,[0-9]*) as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" $as_echo "$as_me: test suite duration: $at_duration" >&5 ;; esac echo $as_echo "## ------------- ## ## Test results. ## ## ------------- ##" echo { echo $as_echo "## ------------- ## ## Test results. ## ## ------------- ##" echo } >&5 if test $at_run_count = 1; then at_result="1 test" at_were=was else at_result="$at_run_count tests" at_were=were fi if $at_errexit_p && test $at_unexpected_count != 0; then if test $at_xpass_count = 1; then at_result="$at_result $at_were run, one passed" else at_result="$at_result $at_were run, one failed" fi at_result="$at_result unexpectedly and inhibited subsequent tests." at_color=$at_red else # Don't you just love exponential explosion of the number of cases? at_color=$at_red case $at_xpass_count:$at_fail_count:$at_xfail_count in # So far, so good. 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;; 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;; # Some unexpected failures 0:*:0) at_result="$at_result $at_were run, $at_fail_count failed unexpectedly." ;; # Some failures, both expected and unexpected 0:*:1) at_result="$at_result $at_were run, $at_total_fail_count failed ($at_xfail_count expected failure)." ;; 0:*:*) at_result="$at_result $at_were run, $at_total_fail_count failed ($at_xfail_count expected failures)." ;; # No unexpected failures, but some xpasses *:0:*) at_result="$at_result $at_were run, $at_xpass_count passed unexpectedly." ;; # No expected failures, but failures and xpasses *:1:0) at_result="$at_result $at_were run, $at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; *:*:0) at_result="$at_result $at_were run, $at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; # All of them. *:*:1) at_result="$at_result $at_were run, $at_xpass_count passed unexpectedly, $at_total_fail_count failed ($at_xfail_count expected failure)." ;; *:*:*) at_result="$at_result $at_were run, $at_xpass_count passed unexpectedly, $at_total_fail_count failed ($at_xfail_count expected failures)." ;; esac if test $at_skip_count = 0 && test $at_run_count -gt 1; then at_result="All $at_result" fi fi # Now put skips in the mix. case $at_skip_count in 0) ;; 1) at_result="$at_result 1 test was skipped." ;; *) at_result="$at_result $at_skip_count tests were skipped." ;; esac if test $at_unexpected_count = 0; then echo "$at_color$at_result$at_std" echo "$at_result" >&5 else echo "${at_color}ERROR: $at_result$at_std" >&2 echo "ERROR: $at_result" >&5 { echo $as_echo "## ------------------------ ## ## Summary of the failures. ## ## ------------------------ ##" # Summary of failed and skipped tests. if test $at_fail_count != 0; then echo "Failed tests:" $SHELL "$at_myself" $at_fail_list --list echo fi if test $at_skip_count != 0; then echo "Skipped tests:" $SHELL "$at_myself" $at_skip_list --list echo fi if test $at_xpass_count != 0; then echo "Unexpected passes:" $SHELL "$at_myself" $at_xpass_list --list echo fi if test $at_fail_count != 0; then $as_echo "## ---------------------- ## ## Detailed failed tests. ## ## ---------------------- ##" echo for at_group in $at_fail_list do at_group_normalized=$at_group eval 'while :; do case $at_group_normalized in #( '"$at_format"'*) break;; esac at_group_normalized=0$at_group_normalized done' cat "$at_suite_dir/$at_group_normalized/$as_me.log" echo done echo fi if test -n "$at_top_srcdir"; then sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## ${at_top_build_prefix}config.log ## _ASBOX sed 's/^/| /' ${at_top_build_prefix}config.log echo fi } >&5 sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## $as_me.log was created. ## _ASBOX echo if $at_debug_p; then at_msg='per-test log files' else at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" fi $as_echo "Please send $at_msg and all information you think might help: To: Subject: [GNU wdiff 1.2.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} You may investigate any problem if you feel able to do so, in which case the test suite provides a good starting point. Its output may be found below \`${at_testdir+${at_testdir}/}$as_me.dir'. " exit 1 fi exit 0 ## ------------- ## ## Actual tests. ## ## ------------- ## #AT_START_1 at_fn_group_banner 1 'wdiff.at:25' \ "wdiff output formats" " " at_xfail=no ( $as_echo "1. $at_setup_line: testing $at_desc ..." $at_traceon cat >wdiff-a.txt <<'_ATEOF' This is input1 The quick brown fox jumps over the lazy dog. The hurried orange fox jumps over the lazy dog. A slow green panda walks around a sleeping cat. The middling red fox jumps over the lazy dog. _ATEOF cat >wdiff-b.txt <<'_ATEOF' This is input2 The quick brown fox jumps over the lazy dog. The slow red fox jumps over the lazy dog. A slow, short green giraffe walks around a sleeping cat. The middling red fox jumps over the lazy dog. _ATEOF { set +x $as_echo "$at_srcdir/wdiff.at:44: wdiff wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:44" ( $at_check_trace; wdiff wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "This is [-input1-] {+input2+} The quick brown fox jumps over the lazy dog. The [-hurried orange-] {+slow red+} fox jumps over the lazy dog. A [-slow-] {+slow, short+} green [-panda-] {+giraffe+} walks around a sleeping cat. The middling red fox jumps over the lazy dog. " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:44" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:52: wdiff -1 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:52" ( $at_check_trace; wdiff -1 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "This is {+input2+} The quick brown fox jumps over the lazy dog. The {+slow red+} fox jumps over the lazy dog. A {+slow, short+} green {+giraffe+} walks around a sleeping cat. The middling red fox jumps over the lazy dog. " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:52" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:60: wdiff -2 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:60" ( $at_check_trace; wdiff -2 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "This is [-input1-] The quick brown fox jumps over the lazy dog. The [-hurried orange-] fox jumps over the lazy dog. A [-slow-] green [-panda-] walks around a sleeping cat. The middling red fox jumps over the lazy dog. " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:60" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:68: wdiff -3 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:68" ( $at_check_trace; wdiff -3 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo " ====================================================================== [-input1-] {+input2+} ====================================================================== [-hurried orange-] {+slow red+} ====================================================================== [-slow-] {+slow, short+} ====================================================================== [-panda-] {+giraffe+} ====================================================================== " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:68" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:81: wdiff -12 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:81" ( $at_check_trace; wdiff -12 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "This is ====================================================================== The quick brown fox jumps over the lazy dog. The ====================================================================== fox jumps over the lazy dog. A ====================================================================== green ====================================================================== walks around a sleeping cat. The middling red fox jumps over the lazy dog. " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:81" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:97: wdiff -13 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:97" ( $at_check_trace; wdiff -13 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo " ====================================================================== input2 ====================================================================== slow red ====================================================================== slow, short ====================================================================== giraffe ====================================================================== " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:97" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:110: wdiff -23 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:110" ( $at_check_trace; wdiff -23 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo " ====================================================================== input1 ====================================================================== hurried orange ====================================================================== slow ====================================================================== panda ====================================================================== " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:110" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:123: wdiff -123 wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:123" ( $at_check_trace; wdiff -123 wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: at_fn_diff_devnull "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:123" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:125: wdiff -123s wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:125" ( $at_check_trace; wdiff -123s wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "wdiff-a.txt: 39 words 34 87% common 0 0% deleted 5 13% changed wdiff-b.txt: 40 words 34 85% common 0 0% inserted 6 15% changed " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:125" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:131: wdiff -w\\( -x\\) -y\\<\\< -z\\>\\> wdiff-a.txt wdiff-b.txt" at_fn_check_prepare_trace "wdiff.at:131" ( $at_check_trace; wdiff -w\( -x\) -y\<\< -z\>\> wdiff-a.txt wdiff-b.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "This is (input1) <> The quick brown fox jumps over the lazy dog. The (hurried orange) <> fox jumps over the lazy dog. A (slow) <> green (panda) <> walks around a sleeping cat. The middling red fox jumps over the lazy dog. " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:131" $at_failed && at_fn_log_failure $at_traceon; } set +x $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" #AT_STOP_1 #AT_START_2 at_fn_group_banner 2 'wdiff.at:142' \ "report bad diff binary" " " at_xfail=no ( $as_echo "2. $at_setup_line: testing $at_desc ..." $at_traceon wdiff_bin="`which wdiff`" # wish I could use AC_CHECK_PROG([wdiff_bin], [wdiff]) instead $as_echo "wdiff.at:148" >"$at_check_line_file" (! test -x "$wdiff_bin") \ && at_fn_check_skip 99 "$at_srcdir/wdiff.at:148" cat >foo.txt <<'_ATEOF' foo _ATEOF cat >bar.txt <<'_ATEOF' bar _ATEOF { set +x $as_echo "$at_srcdir/wdiff.at:154: env PATH=\"\$PWD\" \"\$wdiff_bin\" foo.txt bar.txt" at_fn_check_prepare_dynamic "env PATH=\"$PWD\" \"$wdiff_bin\" foo.txt bar.txt" "wdiff.at:154" ( $at_check_trace; env PATH="$PWD" "$wdiff_bin" foo.txt bar.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; tee stderr <"$at_stderr" at_fn_diff_devnull "$at_stdout" || at_failed=: at_fn_check_status 2 $at_status "$at_srcdir/wdiff.at:154" $at_failed && at_fn_log_failure $at_traceon; } { set +x $as_echo "$at_srcdir/wdiff.at:155: grep \"wdiff: failed to execute diff\" stderr" at_fn_check_prepare_trace "wdiff.at:155" ( $at_check_trace; grep "wdiff: failed to execute diff" stderr ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: at_fn_check_status 0 $at_status "$at_srcdir/wdiff.at:155" $at_failed && at_fn_log_failure $at_traceon; } cat >diff <<'_ATEOF' #! /bin/sh echo "This diff is broken" >&2 exit 27 _ATEOF chmod +x diff { set +x $as_echo "$at_srcdir/wdiff.at:162: env PATH=\"\$PWD\" \"\$wdiff_bin\" foo.txt bar.txt" at_fn_check_prepare_dynamic "env PATH=\"$PWD\" \"$wdiff_bin\" foo.txt bar.txt" "wdiff.at:162" ( $at_check_trace; env PATH="$PWD" "$wdiff_bin" foo.txt bar.txt ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo >>"$at_stderr"; $as_echo "This diff is broken " | \ $at_diff - "$at_stderr" || at_failed=: at_fn_diff_devnull "$at_stdout" || at_failed=: at_fn_check_status 2 $at_status "$at_srcdir/wdiff.at:162" $at_failed && at_fn_log_failure $at_traceon; } set +x $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" #AT_STOP_2 #AT_START_3 at_fn_group_banner 3 'wdiff.at:168' \ "use pager" " " at_xfail=no ( $as_echo "3. $at_setup_line: testing $at_desc ..." $at_traceon # Due to the istty call in the sources, we have to use screen here. cat >foo.txt <<'_ATEOF' start foo end _ATEOF cat >bar.txt <<'_ATEOF' start bar end _ATEOF cat >dummypager <<'_ATEOF' #! /bin/sh echo "Pager starting." while read line; do echo "Pager line $line printed."; done echo "Pager now done." _ATEOF chmod +x dummypager { set +x $as_echo "$at_srcdir/wdiff.at:184: screen -D -m -L \\ env PAGER=\"\$PWD/dummypager\" PATH=\"\$PATH\" TERM=dumb LC_ALL=C LANGUAGE=C \\ wdiff -wW -xX -yY -zZ -a foo.txt bar.txt :" at_fn_check_prepare_notrace 'an embedded newline' "wdiff.at:184" ( $at_check_trace; screen -D -m -L \ env PAGER="$PWD/dummypager" PATH="$PATH" TERM=dumb LC_ALL=C LANGUAGE=C \ wdiff -wW -xX -yY -zZ -a foo.txt bar.txt : ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" at_fn_check_status 0 $at_status "$at_srcdir/wdiff.at:184" $at_failed && at_fn_log_failure $at_traceon; } $as_echo "wdiff.at:188" >"$at_check_line_file" (test ! -f screenlog.0) \ && at_fn_check_skip 77 "$at_srcdir/wdiff.at:188" $as_echo "wdiff.at:190" >"$at_check_line_file" (grep 'terminal type.*not defined' screenlog.0) \ && at_fn_check_skip 77 "$at_srcdir/wdiff.at:190" # Need to work around a screen bug which might cause the first # character to be lost: https://savannah.gnu.org/bugs/index.php?34200 { set +x $as_echo "$at_srcdir/wdiff.at:193: tr -d '\\r' < screenlog.0 | sed 's/^ager/Pager/'" at_fn_check_prepare_notrace 'a shell pipeline' "wdiff.at:193" ( $at_check_trace; tr -d '\r' < screenlog.0 | sed 's/^ager/Pager/' ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "Pager starting. Pager line start WfooX YbarZ end printed. Pager now done. " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 0 $at_status "$at_srcdir/wdiff.at:193" $at_failed && at_fn_log_failure \ "screenlog.0" $at_traceon; } set +x $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" #AT_STOP_3 #AT_START_4 at_fn_group_banner 4 'wdiff.at:201' \ "diff as input" " " at_xfail=no ( $as_echo "4. $at_setup_line: testing $at_desc ..." $at_traceon cat >foo.txt <<'_ATEOF' one two three in a row four five six seven eight nine _ATEOF cat >bar.txt <<'_ATEOF' one two three but not in a row four five six seven ate nine _ATEOF { set +x $as_echo "$at_srcdir/wdiff.at:225: diff -U1 foo.txt bar.txt | sed 's/\\.txt.*/.txt/'" at_fn_check_prepare_notrace 'a shell pipeline' "wdiff.at:225" ( $at_check_trace; diff -U1 foo.txt bar.txt | sed 's/\.txt.*/.txt/' ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo stdout:; tee stdout <"$at_stdout" at_fn_check_status 0 $at_status "$at_srcdir/wdiff.at:225" $at_failed && at_fn_log_failure $at_traceon; } mv stdout foobar.diff { set +x $as_echo "$at_srcdir/wdiff.at:227: wdiff -d -w\"(\" -x\")\" -y\"{\" -z\"}\" foobar.diff" at_fn_check_prepare_trace "wdiff.at:227" ( $at_check_trace; wdiff -d -w"(" -x")" -y"{" -z"}" foobar.diff ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "(-- foo.txt){++ bar.txt} @@ -2,3 +2,3 @@ two three {but not} in a row four @@ -7,3 +7,3 @@ seven (eight) {ate} nine " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/wdiff.at:227" $at_failed && at_fn_log_failure $at_traceon; } set +x $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" #AT_STOP_4 wdiff-1.2.1/tests/wdiff.at0000644000000000000000000001557111744500575012311 00000000000000# -*- shell-script -*- # wdiff test suite # Copyright (C) 2010, 2011 Free Software Foundation, Inc. # # This file is part of GNU wdiff # # GNU wdiff 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 3 of the License, or # (at your option) any later version. # # GNU wdiff 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, see . # Notes: # - "@<:@" is the escape sequence for "[" # - "@:>@" is the escape sequence for "]" AT_SETUP(wdiff output formats) dnl -------------------- AT_DATA(wdiff-a.txt, [This is input1 The quick brown fox jumps over the lazy dog. The hurried orange fox jumps over the lazy dog. A slow green panda walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) AT_DATA(wdiff-b.txt, [This is input2 The quick brown fox jumps over the lazy dog. The slow red fox jumps over the lazy dog. A slow, short green giraffe walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) AT_CHECK([wdiff wdiff-a.txt wdiff-b.txt], 1, [This is @<:@-input1-@:>@ {+input2+} The quick brown fox jumps over the lazy dog. The @<:@-hurried orange-@:>@ {+slow red+} fox jumps over the lazy dog. A @<:@-slow-@:>@ {+slow, short+} green @<:@-panda-@:>@ {+giraffe+} walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) AT_CHECK([wdiff -1 wdiff-a.txt wdiff-b.txt], 1, [This is {+input2+} The quick brown fox jumps over the lazy dog. The {+slow red+} fox jumps over the lazy dog. A {+slow, short+} green {+giraffe+} walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) AT_CHECK([wdiff -2 wdiff-a.txt wdiff-b.txt], 1, [This is @<:@-input1-@:>@ The quick brown fox jumps over the lazy dog. The @<:@-hurried orange-@:>@ fox jumps over the lazy dog. A @<:@-slow-@:>@ green @<:@-panda-@:>@ walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) AT_CHECK([wdiff -3 wdiff-a.txt wdiff-b.txt], 1, [ ====================================================================== @<:@-input1-@:>@ {+input2+} ====================================================================== @<:@-hurried orange-@:>@ {+slow red+} ====================================================================== @<:@-slow-@:>@ {+slow, short+} ====================================================================== @<:@-panda-@:>@ {+giraffe+} ====================================================================== ]) AT_CHECK([wdiff -12 wdiff-a.txt wdiff-b.txt], 1, [This is ====================================================================== The quick brown fox jumps over the lazy dog. The ====================================================================== fox jumps over the lazy dog. A ====================================================================== green ====================================================================== walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) AT_CHECK([wdiff -13 wdiff-a.txt wdiff-b.txt], 1, [ ====================================================================== input2 ====================================================================== slow red ====================================================================== slow, short ====================================================================== giraffe ====================================================================== ]) AT_CHECK([wdiff -23 wdiff-a.txt wdiff-b.txt], 1, [ ====================================================================== input1 ====================================================================== hurried orange ====================================================================== slow ====================================================================== panda ====================================================================== ]) AT_CHECK([wdiff -123 wdiff-a.txt wdiff-b.txt], 1) AT_CHECK([wdiff -123s wdiff-a.txt wdiff-b.txt], 1, [wdiff-a.txt: 39 words 34 87% common 0 0% deleted 5 13% changed wdiff-b.txt: 40 words 34 85% common 0 0% inserted 6 15% changed ]) dnl ' let us quote this to keep emacs syntax highlighting happy AT_CHECK([wdiff -w\( -x\) -y\<\< -z\>\> wdiff-a.txt wdiff-b.txt], 1, [This is (input1) <> The quick brown fox jumps over the lazy dog. The (hurried orange) <> fox jumps over the lazy dog. A (slow) <> green (panda) <> walks around a sleeping cat. The middling red fox jumps over the lazy dog. ]) dnl ' AT_CLEANUP() AT_SETUP(report bad diff binary) dnl ---------------------- AT_TESTED([wdiff which env grep]) wdiff_bin="`which wdiff`" # wish I could use AC_CHECK_PROG([wdiff_bin], [wdiff]) instead AT_FAIL_IF([! test -x "$wdiff_bin"]) AT_DATA([foo.txt], [foo ]) AT_DATA([bar.txt], [bar ]) AT_CHECK([env PATH="$PWD" "$wdiff_bin" foo.txt bar.txt], 2, [], [stderr]) AT_CHECK([grep "wdiff: failed to execute diff" stderr], 0, [ignore-nolog], []) AT_DATA([diff], [#! /bin/sh echo "This diff is broken" >&2 exit 27 ]) chmod +x diff AT_CHECK([env PATH="$PWD" "$wdiff_bin" foo.txt bar.txt], 2, [], [This diff is broken ]) AT_CLEANUP() AT_SETUP(use pager) dnl --------- # Due to the istty call in the sources, we have to use screen here. AT_TESTED([wdiff diff env sed tr grep]) AT_DATA([foo.txt], [start foo end ]) AT_DATA([bar.txt], [start bar end ]) AT_DATA([dummypager], [#! /bin/sh echo "Pager starting." while read line; do echo "Pager line $line printed."; done echo "Pager now done." ]) chmod +x dummypager AT_CHECK([screen -D -m -L \ env PAGER="$PWD/dummypager" PATH="$PATH" TERM=dumb LC_ALL=C LANGUAGE=C \ wdiff -wW -xX -yY -zZ -a foo.txt bar.txt :], 0, [ignore], [ignore]) AT_SKIP_IF([test ! -f screenlog.0]) AT_CAPTURE_FILE([screenlog.0]) AT_SKIP_IF([grep 'terminal type.*not defined' screenlog.0]) # Need to work around a screen bug which might cause the first # character to be lost: https://savannah.gnu.org/bugs/index.php?34200 AT_CHECK([tr -d '\r' < screenlog.0 | sed 's/^ager/Pager/'], 0, [Pager starting. Pager line start WfooX YbarZ end printed. Pager now done. ], []) AT_CLEANUP() AT_SETUP(diff as input) dnl ------------- AT_TESTED([wdiff diff]) AT_DATA([foo.txt], [one two three in a row four five six seven eight nine ]) AT_DATA([bar.txt], [one two three but not in a row four five six seven ate nine ]) AT_CHECK([diff -U1 foo.txt bar.txt | sed 's/\.txt.*/.txt/'], 0, [stdout], []) mv stdout foobar.diff AT_CHECK([wdiff -d -w"(" -x")" -y"{" -z"}" foobar.diff], 1, [(-- foo.txt){++ bar.txt} @@ -2,3 +2,3 @@ two three {but not} in a row four @@ -7,3 +7,3 @@ seven (eight) {ate} nine ], []) AT_CLEANUP() wdiff-1.2.1/tests/package.m40000644000000000000000000000042612116513223012476 00000000000000# Signature of the current package. m4_define([AT_PACKAGE_NAME], [GNU wdiff]) m4_define([AT_PACKAGE_TARNAME], [wdiff]) m4_define([AT_PACKAGE_VERSION], [1.2.1]) m4_define([AT_PACKAGE_STRING], [GNU wdiff 1.2.1]) m4_define([AT_PACKAGE_BUGREPORT], [wdiff-bugs@gnu.org]) wdiff-1.2.1/config.h.in0000644000000000000000000013001712116513164011526 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T /* Define to the number of bits in type 'sig_atomic_t'. */ #undef BITSIZEOF_SIG_ATOMIC_T /* Define to the number of bits in type 'size_t'. */ #undef BITSIZEOF_SIZE_T /* Define to the number of bits in type 'wchar_t'. */ #undef BITSIZEOF_WCHAR_T /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define as the bit index in the word where to find bit 0 of the exponent of 'double'. */ #undef DBL_EXPBIT0_BIT /* Define as the word index where to find the exponent of 'double'. */ #undef DBL_EXPBIT0_WORD /* Define to 1 if // is a file system root distinct from /. */ #undef DOUBLE_SLASH_IS_DISTINCT_ROOT /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ #undef FUNC_NL_LANGINFO_YESEXPR_WORKS /* Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles trailing slash correctly. */ #undef FUNC_REALPATH_WORKS /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module canonicalize-lgpl shall be considered present. */ #undef GNULIB_CANONICALIZE_LGPL /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module malloc-gnu shall be considered present. */ #undef GNULIB_MALLOC_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ #undef GNULIB_SCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #undef GNULIB_STRERROR /* Define to 1 when the gnulib module btowc should be tested. */ #undef GNULIB_TEST_BTOWC /* Define to 1 when the gnulib module canonicalize_file_name should be tested. */ #undef GNULIB_TEST_CANONICALIZE_FILE_NAME /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module environ should be tested. */ #undef GNULIB_TEST_ENVIRON /* Define to 1 when the gnulib module getdelim should be tested. */ #undef GNULIB_TEST_GETDELIM /* Define to 1 when the gnulib module getline should be tested. */ #undef GNULIB_TEST_GETLINE /* Define to 1 when the gnulib module getopt-gnu should be tested. */ #undef GNULIB_TEST_GETOPT_GNU /* Define to 1 when the gnulib module iswblank should be tested. */ #undef GNULIB_TEST_ISWBLANK /* Define to 1 when the gnulib module localeconv should be tested. */ #undef GNULIB_TEST_LOCALECONV /* Define to 1 when the gnulib module lstat should be tested. */ #undef GNULIB_TEST_LSTAT /* Define to 1 when the gnulib module malloc-posix should be tested. */ #undef GNULIB_TEST_MALLOC_POSIX /* Define to 1 when the gnulib module mbrtowc should be tested. */ #undef GNULIB_TEST_MBRTOWC /* Define to 1 when the gnulib module mbsinit should be tested. */ #undef GNULIB_TEST_MBSINIT /* Define to 1 when the gnulib module mbsrchr should be tested. */ #undef GNULIB_TEST_MBSRCHR /* Define to 1 when the gnulib module mbtowc should be tested. */ #undef GNULIB_TEST_MBTOWC /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR /* Define to 1 when the gnulib module nl_langinfo should be tested. */ #undef GNULIB_TEST_NL_LANGINFO /* Define to 1 when the gnulib module readlink should be tested. */ #undef GNULIB_TEST_READLINK /* Define to 1 when the gnulib module realloc-posix should be tested. */ #undef GNULIB_TEST_REALLOC_POSIX /* Define to 1 when the gnulib module realpath should be tested. */ #undef GNULIB_TEST_REALPATH /* Define to 1 when the gnulib module setenv should be tested. */ #undef GNULIB_TEST_SETENV /* Define to 1 when the gnulib module stat should be tested. */ #undef GNULIB_TEST_STAT /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strstr should be tested. */ #undef GNULIB_TEST_STRSTR /* Define to 1 when the gnulib module vasprintf should be tested. */ #undef GNULIB_TEST_VASPRINTF /* Define to 1 when the gnulib module wcrtomb should be tested. */ #undef GNULIB_TEST_WCRTOMB /* Define to 1 when the gnulib module wcwidth should be tested. */ #undef GNULIB_TEST_WCWIDTH /* Define to 1 if you have the 'alarm' function. */ #undef HAVE_ALARM /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_BP_SYM_H /* Define to 1 if you have the 'btowc' function. */ #undef HAVE_BTOWC /* Define to 1 if you have the 'canonicalize_file_name' function. */ #undef HAVE_CANONICALIZE_FILE_NAME /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the header file. */ #undef HAVE_CURSES_H /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED /* Define to 1 if you have the declaration of `getdelim', and to 0 if you don't. */ #undef HAVE_DECL_GETDELIM /* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. */ #undef HAVE_DECL_GETENV /* Define to 1 if you have the declaration of `getline', and to 0 if you don't. */ #undef HAVE_DECL_GETLINE /* Define to 1 if you have the declaration of `isblank', and to 0 if you don't. */ #undef HAVE_DECL_ISBLANK /* Define to 1 if you have the declaration of `iswblank', and to 0 if you don't. */ #undef HAVE_DECL_ISWBLANK /* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you don't. */ #undef HAVE_DECL_MBRTOWC /* Define to 1 if you have the declaration of `mbsinit', and to 0 if you don't. */ #undef HAVE_DECL_MBSINIT /* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. */ #undef HAVE_DECL_SETENV /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the declaration of `towlower', and to 0 if you don't. */ #undef HAVE_DECL_TOWLOWER /* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you don't. */ #undef HAVE_DECL_WCRTOMB /* Define to 1 if you have the declaration of `wcwidth', and to 0 if you don't. */ #undef HAVE_DECL_WCWIDTH /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF /* Define to 1 if you have the 'dup2' function. */ #undef HAVE_DUP2 /* Define if you have the declaration of environ. */ #undef HAVE_ENVIRON_DECL /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H /* Define to 1 if you have the `flockfile' function. */ #undef HAVE_FLOCKFILE /* Define to 1 if you have the `funlockfile' function. */ #undef HAVE_FUNLOCKFILE /* Define to 1 if you have the 'getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the 'getdelim' function. */ #undef HAVE_GETDELIM /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getopt_long_only' function. */ #undef HAVE_GETOPT_LONG_ONLY /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define if you have the 'intmax_t' type in or . */ #undef HAVE_INTMAX_T /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX /* Define to 1 if you have the 'isblank' function. */ #undef HAVE_ISBLANK /* Define to 1 if you have the 'iswblank' function. */ #undef HAVE_ISWBLANK /* Define to 1 if you have the 'iswcntrl' function. */ #undef HAVE_ISWCNTRL /* Define to 1 if you have the 'iswctype' function. */ #undef HAVE_ISWCTYPE /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the 'lstat' function. */ #undef HAVE_LSTAT /* Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC_GNU /* Define if the 'malloc' function is POSIX compliant. */ #undef HAVE_MALLOC_POSIX /* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and . */ #undef HAVE_MAP_ANONYMOUS /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the 'mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the 'mprotect' function. */ #undef HAVE_MPROTECT /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Define to 1 if you have the header file. */ #undef HAVE_NCURSES_H /* Define to 1 if you have the 'nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* Define to 1 if atoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ATOLL /* Define to 1 if btowc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_BTOWC /* Define to 1 if canonicalize_file_name is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME /* Define to 1 if chdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CHDIR /* Define to 1 if chown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CHOWN /* Define to 1 if dprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DPRINTF /* Define to 1 if dup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP /* Define to 1 if dup2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP2 /* Define to 1 if dup3 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP3 /* Define to 1 if duplocale is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUPLOCALE /* Define to 1 if endusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ENDUSERSHELL /* Define to 1 if environ is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ENVIRON /* Define to 1 if euidaccess is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EUIDACCESS /* Define to 1 if faccessat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FACCESSAT /* Define to 1 if fchdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHDIR /* Define to 1 if fchmodat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHMODAT /* Define to 1 if fchownat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHOWNAT /* Define to 1 if fdatasync is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FDATASYNC /* Define to 1 if ffsl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFSL /* Define to 1 if ffsll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFSLL /* Define to 1 if fpurge is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FPURGE /* Define to 1 if fseeko is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSEEKO /* Define to 1 if fstat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSTAT /* Define to 1 if fstatat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSTATAT /* Define to 1 if fsync is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSYNC /* Define to 1 if ftello is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FTELLO /* Define to 1 if ftruncate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FTRUNCATE /* Define to 1 if futimens is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FUTIMENS /* Define to 1 if getcwd is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETCWD /* Define to 1 if getdelim is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDELIM /* Define to 1 if getdomainname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDOMAINNAME /* Define to 1 if getdtablesize is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDTABLESIZE /* Define to 1 if getgroups is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETGROUPS /* Define to 1 if gethostname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETHOSTNAME /* Define to 1 if getline is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLINE /* Define to 1 if getloadavg is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOADAVG /* Define to 1 if getlogin is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOGIN /* Define to 1 if getlogin_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOGIN_R /* Define to 1 if getpagesize is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETPAGESIZE /* Define to 1 if gets is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETS /* Define to 1 if getsubopt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETSUBOPT /* Define to 1 if getusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETUSERSHELL /* Define to 1 if grantpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GRANTPT /* Define to 1 if group_member is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GROUP_MEMBER /* Define to 1 if initstate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTATE /* Define to 1 if initstate_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTATE_R /* Define to 1 if isatty is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ISATTY /* Define to 1 if iswctype is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ISWCTYPE /* Define to 1 if lchmod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHMOD /* Define to 1 if lchown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHOWN /* Define to 1 if link is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LINK /* Define to 1 if linkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LINKAT /* Define to 1 if lseek is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LSEEK /* Define to 1 if lstat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LSTAT /* Define to 1 if mbrlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBRLEN /* Define to 1 if mbrtowc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBRTOWC /* Define to 1 if mbsinit is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSINIT /* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSNRTOWCS /* Define to 1 if mbsrtowcs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSRTOWCS /* Define to 1 if memmem is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMMEM /* Define to 1 if mempcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMPCPY /* Define to 1 if memrchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMRCHR /* Define to 1 if mkdirat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKDIRAT /* Define to 1 if mkdtemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKDTEMP /* Define to 1 if mkfifo is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKFIFO /* Define to 1 if mkfifoat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKFIFOAT /* Define to 1 if mknod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKNOD /* Define to 1 if mknodat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKNODAT /* Define to 1 if mkostemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKOSTEMP /* Define to 1 if mkostemps is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKOSTEMPS /* Define to 1 if mkstemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKSTEMP /* Define to 1 if mkstemps is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKSTEMPS /* Define to 1 if nl_langinfo is declared even after undefining macros. */ #undef HAVE_RAW_DECL_NL_LANGINFO /* Define to 1 if pclose is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PCLOSE /* Define to 1 if pipe is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PIPE /* Define to 1 if pipe2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PIPE2 /* Define to 1 if popen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POPEN /* Define to 1 if posix_openpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_OPENPT /* Define to 1 if pread is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PREAD /* Define to 1 if ptsname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTSNAME /* Define to 1 if ptsname_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTSNAME_R /* Define to 1 if pwrite is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PWRITE /* Define to 1 if random is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RANDOM /* Define to 1 if random_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RANDOM_R /* Define to 1 if rawmemchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RAWMEMCHR /* Define to 1 if readlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_READLINK /* Define to 1 if readlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_READLINKAT /* Define to 1 if realpath is declared even after undefining macros. */ #undef HAVE_RAW_DECL_REALPATH /* Define to 1 if renameat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RENAMEAT /* Define to 1 if rmdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RMDIR /* Define to 1 if rpmatch is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RPMATCH /* Define to 1 if secure_getenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SECURE_GETENV /* Define to 1 if setenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETENV /* Define to 1 if sethostname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETHOSTNAME /* Define to 1 if setlocale is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETLOCALE /* Define to 1 if setstate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSTATE /* Define to 1 if setstate_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSTATE_R /* Define to 1 if setusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETUSERSHELL /* Define to 1 if sleep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SLEEP /* Define to 1 if snprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SNPRINTF /* Define to 1 if srandom is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SRANDOM /* Define to 1 if srandom_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SRANDOM_R /* Define to 1 if stat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STAT /* Define to 1 if stpcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPCPY /* Define to 1 if stpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPNCPY /* Define to 1 if strcasestr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCASESTR /* Define to 1 if strchrnul is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCHRNUL /* Define to 1 if strdup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRDUP /* Define to 1 if strerror_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRERROR_R /* Define to 1 if strncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNCAT /* Define to 1 if strndup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNDUP /* Define to 1 if strnlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNLEN /* Define to 1 if strpbrk is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRPBRK /* Define to 1 if strsep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRSEP /* Define to 1 if strsignal is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRSIGNAL /* Define to 1 if strtod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOD /* Define to 1 if strtok_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOK_R /* Define to 1 if strtoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOLL /* Define to 1 if strtoull is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOULL /* Define to 1 if strverscmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRVERSCMP /* Define to 1 if symlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SYMLINK /* Define to 1 if symlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SYMLINKAT /* Define to 1 if tmpfile is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TMPFILE /* Define to 1 if towctrans is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TOWCTRANS /* Define to 1 if ttyname_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TTYNAME_R /* Define to 1 if unlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLINK /* Define to 1 if unlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLINKAT /* Define to 1 if unlockpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLOCKPT /* Define to 1 if unsetenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNSETENV /* Define to 1 if usleep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_USLEEP /* Define to 1 if utimensat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UTIMENSAT /* Define to 1 if vdprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_VDPRINTF /* Define to 1 if vsnprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_VSNPRINTF /* Define to 1 if waitpid is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WAITPID /* Define to 1 if wcpcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCPCPY /* Define to 1 if wcpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCPNCPY /* Define to 1 if wcrtomb is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCRTOMB /* Define to 1 if wcscasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCASECMP /* Define to 1 if wcscat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCAT /* Define to 1 if wcschr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCHR /* Define to 1 if wcscmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCMP /* Define to 1 if wcscoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCOLL /* Define to 1 if wcscpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCPY /* Define to 1 if wcscspn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCSPN /* Define to 1 if wcsdup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSDUP /* Define to 1 if wcslen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSLEN /* Define to 1 if wcsncasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCASECMP /* Define to 1 if wcsncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCAT /* Define to 1 if wcsncmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCMP /* Define to 1 if wcsncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCPY /* Define to 1 if wcsnlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNLEN /* Define to 1 if wcsnrtombs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNRTOMBS /* Define to 1 if wcspbrk is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSPBRK /* Define to 1 if wcsrchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSRCHR /* Define to 1 if wcsrtombs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSRTOMBS /* Define to 1 if wcsspn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSSPN /* Define to 1 if wcsstr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSSTR /* Define to 1 if wcstok is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSTOK /* Define to 1 if wcswidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSWIDTH /* Define to 1 if wcsxfrm is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSXFRM /* Define to 1 if wctob is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTOB /* Define to 1 if wctrans is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTRANS /* Define to 1 if wctype is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTYPE /* Define to 1 if wcwidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCWIDTH /* Define to 1 if wmemchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCHR /* Define to 1 if wmemcmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCMP /* Define to 1 if wmemcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCPY /* Define to 1 if wmemmove is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMMOVE /* Define to 1 if wmemset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMSET /* Define to 1 if _Exit is declared even after undefining macros. */ #undef HAVE_RAW_DECL__EXIT /* Define to 1 if you have the 'readlink' function. */ #undef HAVE_READLINK /* Define if the 'realloc' function is POSIX compliant. */ #undef HAVE_REALLOC_POSIX /* Define to 1 if you have the 'realpath' function. */ #undef HAVE_REALPATH /* Define to 1 if you have the header file. */ #undef HAVE_SEARCH_H /* Define to 1 if you have the 'setenv' function. */ #undef HAVE_SETENV /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T /* Define to 1 if 'wchar_t' is a signed integer type. */ #undef HAVE_SIGNED_WCHAR_T /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T /* Define to 1 if you have the 'snprintf' function. */ #undef HAVE_SNPRINTF /* Define if the return value of the snprintf function is the number of of bytes (excluding the terminating NUL) that would have been produced if the buffer had been large enough. */ #undef HAVE_SNPRINTF_RETVAL_C99 /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* 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 `strnlen' function. */ #undef HAVE_STRNLEN /* Define to 1 if `decimal_point' is a member of `struct lconv'. */ #undef HAVE_STRUCT_LCONV_DECIMAL_POINT /* Define to 1 if you have the 'symlink' function. */ #undef HAVE_SYMLINK /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_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_TIME_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_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMCAP_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_TERM_H /* Define to 1 if you have the `towlower' function. */ #undef HAVE_TOWLOWER /* Define to 1 if the tputs function is available */ #undef HAVE_TPUTS /* Define to 1 if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define to 1 if you have the 'vasnprintf' function. */ #undef HAVE_VASNPRINTF /* Define to 1 if you have the `vasprintf' function. */ #undef HAVE_VASPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the 'wcrtomb' function. */ #undef HAVE_WCRTOMB /* Define to 1 if you have the 'wcscoll' function. */ #undef HAVE_WCSCOLL /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN /* Define to 1 if you have the `wcsnlen' function. */ #undef HAVE_WCSNLEN /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H /* Define to 1 if you have the 'wcwidth' function. */ #undef HAVE_WCWIDTH /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to 1 if you have the '_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS /* Define if the mbrtowc function has the NULL pwc argument bug. */ #undef MBRTOWC_NULL_ARG1_BUG /* Define if the mbrtowc function has the NULL string argument bug. */ #undef MBRTOWC_NULL_ARG2_BUG /* Define if the mbrtowc function does not return 0 for a NUL character. */ #undef MBRTOWC_NUL_RETVAL_BUG /* Define if the mbrtowc function returns a wrong return value. */ #undef MBRTOWC_RETVAL_BUG /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* Name of package */ #undef PACKAGE /* 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 home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Default pager program */ #undef PAGER_PROGRAM /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX /* Define to 1 if readlink fails to recognize a trailing slash. */ #undef READLINK_TRAILING_SLASH_BUG /* Define to 1 if stat needs help when passed a directory name with a trailing slash */ #undef REPLACE_FUNC_STAT_DIR /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE /* Define if nl_langinfo exists but is overridden by gnulib. */ #undef REPLACE_NL_LANGINFO /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 /* Define if vasnprintf exists but is overridden by gnulib. */ #undef REPLACE_VASNPRINTF /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ #undef SIG_ATOMIC_T_SUFFIX /* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ #undef SIZE_T_SUFFIX /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wint_t'. */ #undef WINT_T_SUFFIX /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Enable large inode numbers on Mac OS X 10.5. */ #undef _DARWIN_USE_64_BIT_INODE /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct stat.st_size becomes 64-bit. */ #undef _GL_WINDOWS_64_BIT_ST_SIZE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 on Solaris. */ #undef _LCONV_C99 /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ #undef _NETBSD_SOURCE /* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for 'stat' and other things to work. */ #undef _POSIX_SOURCE /* Define if you want to include , so that it consistently overrides 's RE_DUP_MAX. */ #undef _REGEX_INCLUDE_LIMITS_H /* Define if you want regoff_t to be at least as wide POSIX requires. */ #undef _REGEX_LARGE_OFFSETS /* Define to rpl_ if the getopt replacement functions and variables should be used. */ #undef __GETOPT_PREFIX /* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'. _GL_EXTERN_INLINE is a portable alternative to 'extern inline'. _GL_INLINE_HEADER_BEGIN contains useful stuff to put in an include file, before uses of _GL_INLINE. It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic, when FOO is an inline function in the header; see . _GL_INLINE_HEADER_END contains useful stuff to put in the same include file, after uses of _GL_INLINE. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress the use of extern inline on Apple's platforms, as Libc-825.25 (2012-09-19) is incompatible with it; see . Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline #elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__ # if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to long or long long if and don't define. */ #undef intmax_t /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif /* Define to a type if does not define. */ #undef mbstate_t /* Define to `int' if does not define. */ #undef mode_t /* Define to the type of st_nlink in struct stat, or a supertype. */ #undef nlink_t /* Define to `int' if does not define. */ #undef pid_t /* Define as the type of the result of subtracting two pointers, if the system doesn't define it. */ #undef ptrdiff_t /* Define to rpl_re_comp if the replacement should be used. */ #undef re_comp /* Define to rpl_re_compile_fastmap if the replacement should be used. */ #undef re_compile_fastmap /* Define to rpl_re_compile_pattern if the replacement should be used. */ #undef re_compile_pattern /* Define to rpl_re_exec if the replacement should be used. */ #undef re_exec /* Define to rpl_re_match if the replacement should be used. */ #undef re_match /* Define to rpl_re_match_2 if the replacement should be used. */ #undef re_match_2 /* Define to rpl_re_search if the replacement should be used. */ #undef re_search /* Define to rpl_re_search_2 if the replacement should be used. */ #undef re_search_2 /* Define to rpl_re_set_registers if the replacement should be used. */ #undef re_set_registers /* Define to rpl_re_set_syntax if the replacement should be used. */ #undef re_set_syntax /* Define to rpl_re_syntax_options if the replacement should be used. */ #undef re_syntax_options /* Define to rpl_regcomp if the replacement should be used. */ #undef regcomp /* Define to rpl_regerror if the replacement should be used. */ #undef regerror /* Define to rpl_regexec if the replacement should be used. */ #undef regexec /* Define to rpl_regfree if the replacement should be used. */ #undef regfree /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif /* Define to `unsigned int' if does not define. */ #undef size_t /* Define as a signed type of the same size as size_t. */ #undef ssize_t /* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif wdiff-1.2.1/README0000644000000000000000000002077711744500575010406 00000000000000Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. `wdiff' is a front-end to GNU `diff'. It compares two files, finding which words have been deleted or added to the first in order to create the second. It has many output formats and interacts well with terminals and pagers (notably with `less'). `wdiff' is particularly useful when two texts differ only by a few words and paragraphs have been refilled. GNU `wdiff' has been written by Franc,ois Pinard. It is an evolving product, and specifications might change in future releases. Below, you will find various installation hints on special systems. Look further down for a mini-FAQ (frequently asked questions). See file `ABOUT-NLS' for how to customise this program to your language. See file `COPYING' for copying conditions. See file `INSTALL' for generic compilation and installation instructions. See file `NEWS' for a list of major changes in the current release. See files `AUTHORS' and `THANKS' for a list of contributors. The canonical distribution point for wdiff is: ftp://ftp.gnu.org/gnu/wdiff/ The main web site for wdiff is at: http://www.gnu.org/software/wdiff/ .-------------------. | Configure options | `-------------------' Besides those configure options documented in files `INSTALL' and `ABOUT-NLS', one extra option may be accepted after `./configure': - `--enable-experimental[=list]' to build some or all of the experimental applications that are part of a wdiff source code release. See the following section for details. - `--with-default-pager=PATH' to use PATH as the default pager for --auto-pager mode for users that have not set the PAGER environment variable. The environment variable takes precedence over this setting. If no pager is set, either through this setting or the environment, then output will go directly to standard output even in --auto-pager mode. - `--with-termcap[=LIB]' to configure termcap for visual formatting of differences. Termcap support enables the -t command line switch, which will use underline and standout mode to mark up insertions and deletions. By default, termcap support is automatically detected, so --with-termcap without arguments is without effect. use --without-termcap to disable termcap, or --with-termcap=foo in case libfoo provides termcap functionality (most notably tputs) on your system. .--------------------. | Experimental tools | `--------------------' Additional utilities are included in the source release and can be enabled by passing `--enable-experimental' to the configure script. It is possible to select only some of these tools by passing an argument, e.g. `--enable-experimental="mdiff wdiff2"'. All of these tools are considered experimental: you are free to use them, and the maintainers certainly welcome any input as to what does or does not work with them. On the other hand you shouldn't rely on them too much, and maintainers might in some cases refuse to address bugs unless you can contribute to a solution, e.g. by writing a patch. * `mdiff' studies one or many input files altogether, and discovers blocks of lines which repeat at more than one place. This program is still very experimental. Even if much development is needed, it is quite useful as it stands. * `wdiff2' is intended as a replacement for `wdiff' that uses `mdiff' to perform its work. At a certain point in time it closely mirrored the syntax of `wdiff', but both programs have evloved since then, and probably have diverged. * The `unify' program converts between context diffs to unified diffs, and vice-versa. Some people just prefer one format and despise the other, it is a religious issue. This program brings peace back on earth. It has been contributed by Wayne Davison, from Borland. .---------------------------------. | Mailing lists and collaboration | `---------------------------------' * Your feedback will help us to make a better and more portable package. Consider documentation errors as bugs, and report them as such. If you develop anything pertaining to `wdiff' or have suggestions, let us know and share your findings by writing at `wdiff-bugs@gnu.org'. To subscribe to the list, see http://lists.gnu.org/mailman/listinfo/wdiff-bugs. * Please follow these tips when submitting a bug report: A bug report is an adequate description of the problem: your input, what you expected, what you got, and why this is wrong. Diffs are welcome, but they only describe a solution, from which the problem might be uneasy to infer. If needed, submit actual data files with your report. Small data files are preferred. Big files may sometimes be necessary, but do not send them on the mailing list; rather take special arrangement with the maintainer. .-------. | Hints | `-------' Here are a few hints which might help installing `wdiff' on some systems. Most may be applied by temporary presetting environment variables while calling `./configure'. File `INSTALL' explains this. * This program does not require termcap, but takes advantage of it when it is available. You may want to get and install GNU termcap first from /@prep.ai.mit.edu:pub/gnu/termcap-1.2.tar.gz, or better. * If you have termcap emulation routines in libcurses.a and you do not have libtermcap.a, and until I find a way to do better, please use: ./configure LIBS=-lcurses * If you have both more and less and you prefer more over less, then prefix the call to configure with your pager selection, as in: ./configure PAGER=more .-----. | FAQ | `-----' Finally, here is a kind of FAQ for `wdiff', made up of replies I wrote many times for questions received over email. Q: How is `wdiff' different from `diff -w'? `wdiff' finds word differences, ignoring spaces, tabs and newlines, while `diff -w' finds *line* differences, ignoring spaces and tabs. Also, each program uses its own output format. Q: Why not simply apply `diff' to files split one word per line? You like the way `wdiff' formats its output. And it's speedier too. Q: Why calling an external `diff'? Could not diff be built in `wdiff'? It's not fruitful to rewrite another `diff'. I'd rather see `wdiff' integrated in GNU `diff' than the other way around. When `wdiff' will have matured enough, it *might* be integrated into GNU `diff' distribution, or in GNU `diff' itself. Many user requests for additions to `wdiff' have been postponed until `wdiff' is integrated in `diff'. However, for the time being, the integration project has been put on the back burner. Q: How about `spiff' by Dan Nachbar ? `spiff' is far more general than `wdiff'. On the other end, `wdiff' is a lot faster, needs almost no memory, and can afford handling big files in reasonnable time. Despite its lack of generality, `wdiff' does one of the most usual jobs, so it is quite useful after all. I might try retrofitting some of `spiff' features into `wdiff', but not on short term. Q: How do I get to `wdiff' documentation? There are many ways: 1) Calling just `wdiff', without arguments, will summarize its usage. 2) You can look at the file `wdiff.info' using any ASCII editor, or even print the file as is. 3) If properly installed, you may browse `wdiff.info' from inside GNU Emacs by typing the command: C-u M-x info RET wdiff.info RET . 4) With the standalone Info reader, use `info -f wdiff.info'. You can find the standalone info reader in file texinfo-3.?.tar.gz in /pub/gnu from prep.ai.mit.edu: just unpack it and look into the C subdirectory. 5) If you have TeX, execute the command `make dvi' then process and print `wdiff.dvi' the usual way. 6) Colin Brough contributed a man page, describing `wdiff' at level 0.04. The man page will be distributed and installed along with `wdiff' as long as Colin will want to maintain it. Q: Can we use `wdiff' from within GNU Emacs? Of course. You might be loosing some output features. James Ganong wrote `collatew.el', generalizing the Emacs LISP compare-windows function in the spirit of `wdiff'. Q: How much memory `wdiff' exactly needs? `wdiff' uses a fixed amount of memory. Long lines or long files are no handicap. All the true work is done by `diff' under the scene, and `diff' needs memory itself. GNU `diff' swallows both files in memory first. wdiff-1.2.1/Makefile.am0000644000000000000000000000633312116372456011551 00000000000000## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. SUBDIRS = lib po src doc man ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = # --------- # # ChangeLog # # --------- # EXTRA_DIST += ChangeLog ChangeLog: LC_ALL=en_US.utf8 \ bzr log --gnu-changelog --include-merged --omit-merges > $@.tmp cat $@.old >> $@.tmp mv $@.tmp $@ # -------------- # # helper scripts # # -------------- # EXTRA_DIST += $(top_srcdir)/build-aux/msgitm.pm EXTRA_DIST += $(top_srcdir)/build-aux/print-po.pl ## ----------- ## ## Test suite. ## ## ----------- ## # (copied from Makefile.am in libtool CVS 2007-07-11) # Using `cd' in backquotes may print the directory name, use this instead: lt__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd # The testsuite files are evaluated in the order given here. TESTSUITE = tests/testsuite TESTSUITE_AT = tests/testsuite.at \ tests/cluster.at \ tests/wdiff.at EXTRA_DIST += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) $(srcdir)/tests/package.m4 m4/gnulib-cache.m4 # Be sure to reexport important environment variables: TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" LD="$(LD)" LDFLAGS="$(LDFLAGS)" \ LIBS="$(LIBS)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \ OBJEXT="$(OBJEXT)" EXEEXT="$(EXEEXT)" \ SHELL="$(SHELL)" CONFIG_SHELL="$(SHELL)" \ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" CXXCPP="$(CXXCPP)" \ F77="$(F77)" FFLAGS="$(FFLAGS)" \ FC="$(FC)" FCFLAGS="$(FCFLAGS)" \ GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)" # Use `$(srcdir)' for the benefit of non-GNU makes: this is # how `testsuite' appears in our dependencies. $(srcdir)/$(TESTSUITE): $(srcdir)/tests/package.m4 $(TESTSUITE_AT) Makefile.am cd $(srcdir)/tests && \ $(AUTOTEST) `echo $(TESTSUITE_AT) | sed 's,tests/,,g'` -o testsuite.tmp && \ mv -f testsuite.tmp testsuite $(srcdir)/tests/package.m4: $(srcdir)/configure.ac { \ echo '# Signature of the current package.'; \ echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \ echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \ echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \ echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \ echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \ } > $(srcdir)/tests/package.m4 tests/atconfig: $(top_builddir)/config.status $(SHELL) ./config.status tests/atconfig DISTCLEANFILES = tests/atconfig CD_TESTDIR = abs_srcdir=`$(lt__cd) $(srcdir) && pwd`; cd tests # Hook the test suite into the check rule check-local: tests/atconfig $(srcdir)/$(TESTSUITE) $(bin_SCRIPTS) $(CD_TESTDIR); \ CONFIG_SHELL="$(SHELL)" $(SHELL) $$abs_srcdir/$(TESTSUITE) \ $(TESTSUITEFLAGS) AUTOTEST_PATH="src" # Run the test suite on the *installed* tree. installcheck-local: $(CD_TESTDIR); \ CONFIG_SHELL="$(SHELL)" $(SHELL) $$abs_srcdir/$(TESTSUITE) \ $(TESTSUITEFLAGS) AUTOTEST_PATH="$(exec_prefix)/bin" # We need to remove any file droppings left behind by testsuite clean-local: -$(CD_TESTDIR); \ test -f $$abs_srcdir/$(TESTSUITE) && \ $(SHELL) $$abs_srcdir/$(TESTSUITE) --clean wdiff-1.2.1/COPYING0000644000000000000000000010451311744500575010550 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. 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 them 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 prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. 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. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey 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; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. 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. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 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. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. 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 state 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 3 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, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program 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, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU 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 Lesser General Public License instead of this License. But first, please read . wdiff-1.2.1/configure.ac0000644000000000000000000000615212116377313011777 00000000000000## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. AC_INIT([GNU wdiff], [1.2.1], [wdiff-bugs@gnu.org]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS([config.h]) ## ------------------------ ## ## Autotest initialisation. ## ## ------------------------ ## AC_CONFIG_TESTDIR([tests]) AC_SUBST([AUTOM4TE], [${AUTOM4TE=autom4te}]) AC_SUBST([AUTOTEST], ['$(AUTOM4TE) --language=autotest']) AC_PROG_CC gl_EARLY gl_INIT # GNU help2man creates man pages from --help output; in many cases, this # is sufficient, and obviates the need to maintain man pages separately. # However, this means invoking executables, which we generally cannot do # when cross-compiling, so we test to avoid that (the variable # "cross_compiling" is set by AC_PROG_CC). if test $cross_compiling = no; then AM_MISSING_PROG(HELP2MAN, help2man) else HELP2MAN=: fi AM_GNU_GETTEXT_VERSION([0.18]) AM_GNU_GETTEXT([external], [need-ngettext]) AC_ARG_WITH([default-pager], AC_HELP_STRING([--with-default-pager=PATH], [Use PATH as the pager if the PAGER environment variable isn't set]), [AS_CASE([$withval], [yes], [AC_MSG_ERROR([--with-default-pager=PATH requires a PATH])], [no], [], [AC_DEFINE_UNQUOTED([PAGER_PROGRAM], ["$withval"], [Default pager program])] )]) # Handling of experimental applications AC_ARG_ENABLE([experimental], AC_HELP_STRING([--enable-experimental], [enable experimental applications (mdiff, unify, wdiff2)]), [AS_CASE([$enableval], [yes], [EXPERIMENTAL="mdiff unify wdiff2"], [no], [EXPERIMENTAL=""], [EXPERIMENTAL=$enableval])], [EXPERIMENTAL=""]) set dummy $EXPERIMENTAL; shift EXPERIMENTAL_PROGRAMS="" EXPERIMENTAL_MANS="" EXPERIMENTAL_TEXI="@clear EXPERIMENTAL" for experimental_i do AS_CASE([$experimental_i], [mdiff|unify|wdiff2], [EXPERIMENTAL_PROGRAMS="$EXPERIMENTAL_PROGRAMS $experimental_i\$(EXEEXT)" EXPERIMENTAL_MANS="$EXPERIMENTAL_MANS $experimental_i.1" EXPERIMENTAL_TEXI="@set EXPERIMENTAL"], [AC_MSG_ERROR([unknown experimental $experimental_i])]) done AC_MSG_NOTICE([Enabled experimental applications: $EXPERIMENTAL]) AC_SUBST([EXPERIMENTAL]) AC_SUBST([EXPERIMENTAL_PROGRAMS]) AC_SUBST([EXPERIMENTAL_MANS]) AC_SUBST([EXPERIMENTAL_TEXI]) # Done handling experimental applications # termcap/curses handling AC_ARG_WITH([termcap], AC_HELP_STRING([--with-termcap@<:@=LIB@:>@], [use termcap library LIB, e.g. ncursesw]), [], [with_termcap=auto]) AS_IF([test "x$with_termcap" != xno], [ AC_CHECK_HEADERS([termcap.h termlib.h curses.h ncurses.h term.h]) AS_IF([test "x$with_termcap" = xauto], [ AC_SEARCH_LIBS(tputs, [termcap termlib ncursesw ncurses], [], [with_termcap=no]) ], [ LIBS="-l$with_termcap $LIBS" ]) ]) AS_IF([test "x$with_termcap" != xno], [ AC_DEFINE([HAVE_TPUTS], [1], [Define to 1 if the tputs function is available]) ]) # Done with termcap/curses AC_CONFIG_FILES([ Makefile doc/Makefile doc/flags.texi lib/Makefile lib/po/Makefile.in man/Makefile po/Makefile.in src/Makefile ]) AC_OUTPUT wdiff-1.2.1/src/0000755000000000000000000000000012116513227010350 500000000000000wdiff-1.2.1/src/wdiff.h0000644000000000000000000000260011744500575011546 00000000000000/* Shared definitions for GNU wdiff (the package, not the program). Copyright (C) 1994, 1997, 1998, 2011 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 3 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, see . */ #include #if __STDC__ # define voidstar void * #else # define voidstar char * #endif #include /* Other header files. */ #include #include #include #ifndef errno extern int errno; #endif #include "error.h" #include "xalloc.h" /* Internationalization. */ #include "gettext.h" #define _(str) gettext (str) #define N_(str) gettext_noop (str) /* Debugging the memory allocator. */ #if WITH_DMALLOC # define MALLOC_FUNC_CHECK # include #endif /* Function prototypes */ FILE *readpipe (char *progname, ...); FILE *writepipe (char *progname, ...); wdiff-1.2.1/src/wdiff2.c0000644000000000000000000002351011744500575011626 00000000000000/* wdiff -- trampolin to mdiff for comparing on a word per word basis. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Francois Pinard . 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 3 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, see . */ #include "wdiff.h" #ifndef MDIFF_PROGRAM # define MDIFF_PROGRAM "mdiff" #endif /* Exit codes values. */ #define EXIT_DIFFERENCE 1 /* some differences found */ #define EXIT_ERROR 2 /* any other reason for exit */ #include #include #include const char *program_name; /* name of executing program */ static int quiet = 0; /* if inhibiting mdiff call message */ static char **argument_list = NULL; /* constructed argument list */ static int arguments = 0; /* number of arguments in list */ static int last_is_letters = 0; /* if last argument is option letter(s) */ /*-------------------------------------------. | Add an argument to the list of arguments. | `-------------------------------------------*/ static void add_argument (const char *string) { if (arguments % 16 == 0) argument_list = (char **) xrealloc (argument_list, (arguments + 16) * sizeof (char *)); argument_list[arguments++] = string ? xstrdup (string) : NULL; } /*----------------------------------------------------. | Add a mere option letter to the list of arguments. | `----------------------------------------------------*/ static void add_simple_option (char letter) { if (last_is_letters) { char *string = argument_list[arguments - 1]; int length = strlen (string); string = xrealloc (string, length + 2); string[length] = letter; string[length + 1] = '\0'; argument_list[arguments - 1] = string; } else { char buffer[3]; buffer[0] = '-'; buffer[1] = letter; buffer[2] = '\0'; add_argument (buffer); last_is_letters = 1; } } /*-----------------------------------------------------------------. | Add an option letter with an argument to the list of arguments. | `-----------------------------------------------------------------*/ static void add_option_with_argument (char letter, const char *argument) { char buffer[3]; buffer[0] = '-'; buffer[1] = letter; buffer[2] = '\0'; add_argument (buffer); add_argument (argument); last_is_letters = 0; } /*-----------------------------------. | Prints a more detailed Copyright. | `-----------------------------------*/ static void print_copyright (void) { fputs (_("\ This program is free software: you can redistribute it and/or modify\n\ it under the terms of the GNU General Public License as published by\n\ the Free Software Foundation, either version 3 of the License, or\n\ (at your option) any later version.\n\ \n\ This program is distributed in the hope that it will be useful,\n\ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ GNU General Public License for more details.\n\ \n\ You should have received a copy of the GNU General Public License\n\ along with this program. If not, see .\n"), stdout); } static void print_version (void) { printf ("wdiff (GNU %s) %s\n", PACKAGE, VERSION); fputs (_("\ \n\ Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n"), stdout); fputs (_("\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), stdout); fputs (_("\ \n\ Written by Franc,ois Pinard .\n"), stdout); } /* Option variables. */ struct option const longopts[] = { {"auto-pager", no_argument, NULL, 'a'}, {"avoid-wraps", no_argument, NULL, 'n'}, {"copyright", no_argument, NULL, 'C'}, {"end-delete", required_argument, NULL, 'x'}, {"end-insert", required_argument, NULL, 'z'}, {"help", no_argument, NULL, 'h'}, {"ignore-case", no_argument, NULL, 'i'}, {"less-mode", no_argument, NULL, 'l'}, {"no-common", no_argument, NULL, '3'}, {"no-deleted", no_argument, NULL, '1'}, {"no-init-term", no_argument, NULL, 'K'}, /* backwards compatibility */ {"no-inserted", no_argument, NULL, '2'}, {"quiet", no_argument, NULL, 'q'}, {"printer", no_argument, NULL, 'p'}, {"start-delete", required_argument, NULL, 'w'}, {"start-insert", required_argument, NULL, 'y'}, {"statistics", no_argument, NULL, 's'}, {"terminal", no_argument, NULL, 't'}, {"version", no_argument, NULL, 'v'}, {0, 0, 0, 0} }; /*-----------------------------. | Tell how to use, then exit. | `-----------------------------*/ static void usage (int status) { if (status != 0) fprintf (stderr, _("Try `%s --help' for more information.\n"), program_name); else { /* *INDENT-OFF* */ fputs (_("\ wdiff - Compute word differences by internally launching `mdiff -W'.\n\ This program exists mainly to support the now oldish `wdiff' syntax.\n"), stdout); fputs ("\n", stdout); printf (_("\ Usage: %s [OPTION]... FILE1 FILE2\n"), program_name); fputs ("\n", stdout); fputs (_("\ Mandatory arguments to long options are mandatory for short options too.\n"), stdout); fputs (_(" -C, --copyright display copyright then exit\n"), stdout); fputs (_(" -1, --no-deleted inhibit output of deleted words\n"), stdout); fputs (_(" -2, --no-inserted inhibit output of inserted words\n"), stdout); fputs (_(" -3, --no-common inhibit output of common words\n"), stdout); fputs (_(" -a, --auto-pager automatically calls a pager\n"), stdout); fputs (_(" -h, --help display this help then exit\n"), stdout); fputs (_(" -i, --ignore-case fold character case while comparing\n"), stdout); fputs (_(" -l, --less-mode variation of printer mode for \"less\"\n"), stdout); fputs (_(" -n, --avoid-wraps do not extend fields through newlines\n"), stdout); fputs (_(" -p, --printer overstrike as for printers\n"), stdout); fputs (_(" -q, --quiet inhibit the `mdiff' call message\n"), stdout); fputs (_(" -s, --statistics say how many words deleted, inserted etc.\n"), stdout); fputs (_(" -t, --terminal use termcap as for terminal displays\n"), stdout); fputs (_(" -v, --version display program version then exit\n"), stdout); fputs (_(" -w, --start-delete=STRING string to mark beginning of delete region\n"), stdout); fputs (_(" -x, --end-delete=STRING string to mark end of delete region\n"), stdout); fputs (_(" -y, --start-insert=STRING string to mark beginning of insert region\n"), stdout); fputs (_(" -z, --end-insert=STRING string to mark end of insert region\n"), stdout); fputs ("\n", stdout); fputs (_("This program also tells how `mdiff' could have been called directly.\n"), stdout); fputs ("\n", stdout); fputs (_("Report bugs to .\n"), stdout); /* *INDENT-ON* */ } exit (status); } /*---------------. | Main program. | `---------------*/ int main (int argc, char *const argv[]) { int option_char; /* option character */ program_name = argv[0]; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); add_argument (MDIFF_PROGRAM); add_simple_option ('W'); /* Decode arguments. */ while (option_char = getopt_long (argc, (char **) argv, "123CKachidlnpqstvw:x:y:z:", longopts, NULL), option_char != EOF) switch (option_char) { default: usage (EXIT_ERROR); case '\0': break; case '1': case '2': case '3': add_simple_option (option_char); break; case 'C': print_copyright (); exit (EXIT_SUCCESS); case 'K': /* compatibility option, equal to -t now */ add_simple_option ('t'); break; case 'a': add_simple_option ('A'); break; case 'h': usage (EXIT_SUCCESS); case 'c': /* this was -c prior to wdiff 0.5 */ case 'i': add_simple_option ('i'); break; case 'l': add_simple_option ('k'); break; case 'n': add_simple_option ('m'); break; case 'p': add_simple_option ('o'); break; case 'q': quiet = 1; break; case 's': add_simple_option ('v'); break; case 't': add_simple_option ('z'); break; case 'v': print_version (); exit (EXIT_SUCCESS); case 'w': add_option_with_argument ('Y', optarg); break; case 'x': add_option_with_argument ('Z', optarg); break; case 'y': add_option_with_argument ('Q', optarg); break; case 'z': add_option_with_argument ('R', optarg); break; } if (optind + 2 != argc) { error (0, 0, _("missing file arguments")); usage (EXIT_ERROR); } add_argument (argv[optind]); add_argument (argv[optind + 1]); if (!quiet) { int counter; /* TRANSLATORS: This and the next string are one message. */ fprintf (stderr, _("Launching `%s"), MDIFF_PROGRAM); for (counter = 1; counter < arguments; counter++) fprintf (stderr, " %s", argument_list[counter]); fprintf (stderr, _("'\n")); } add_argument (NULL); execvp (MDIFF_PROGRAM, argument_list); /* Should never return. */ exit (EXIT_ERROR); } wdiff-1.2.1/src/wdiff.c0000644000000000000000000011612512116363376011551 00000000000000/* wdiff -- front end to diff for comparing on a word per word basis. Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Francois Pinard , 1992. 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 3 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, see . */ #include "wdiff.h" /* Exit codes values. */ #define EXIT_DIFFERENCE 1 /* some differences found */ #define EXIT_ERROR 2 /* any other reason for exit */ /* It is mandatory that some `diff' program is selected for use. The following definition may also include the complete path. */ #ifndef DIFF_PROGRAM # define DIFF_PROGRAM "diff" #endif /* One may also, optionally, define a default PAGER_PROGRAM. This might be done using the --with-default-pager=PAGER configure switch. If PAGER_PROGRAM is undefined and neither the WDIFF_PAGER nor the PAGER environment variable is set, none will be used. */ /* We do termcap init ourselves, so pass -X. We might do coloring, so pass -R. */ #define LESS_DEFAULT_OPTS "-X -R" /* Define the separator lines when output is inhibited. */ #define SEPARATOR_LINE \ "======================================================================" /* Library declarations. */ #include #include #if HAVE_TPUTS # if HAVE_TERMCAP_H # include # else # if HAVE_TERMLIB_H # include # else # if HAVE_CURSES_H # include # else # if HAVE_NCURSES_H # include # endif # endif # if HAVE_TERM_H # include # endif # endif # endif #endif #include #include #ifndef RETSIGTYPE # define RETSIGTYPE void #endif #include #include #include #include #include static void complete_input_program (void); /* Declarations. */ /* Option variables. */ struct option const longopts[] = { {"auto-pager", 0, NULL, 'a'}, {"avoid-wraps", 0, NULL, 'n'}, {"copyright", 0, NULL, 'C'}, {"end-delete", 1, NULL, 'x'}, {"end-insert", 1, NULL, 'z'}, {"help", 0, NULL, 'h'}, {"ignore-case", 0, NULL, 'i'}, {"less-mode", 0, NULL, 'l'}, {"no-common", 0, NULL, '3'}, {"no-deleted", 0, NULL, '1'}, {"no-init-term", 0, NULL, 'K'}, /* backwards compatibility */ {"no-inserted", 0, NULL, '2'}, {"printer", 0, NULL, 'p'}, {"start-delete", 1, NULL, 'w'}, {"start-insert", 1, NULL, 'y'}, {"statistics", 0, NULL, 's'}, {"terminal", 0, NULL, 't'}, {"version", 0, NULL, 'v'}, {"diff-input", 0, NULL, 'd'}, {NULL, 0, NULL, 0} }; const char *program_name; /* name of executing program */ int inhibit_left; /* inhibit display of left side words */ int inhibit_right; /* inhibit display of left side words */ int inhibit_common; /* inhibit display of common words */ int diff_input; /* expect (unified) diff as input */ int ignore_case; /* ignore case in comparisons */ int show_statistics; /* if printing summary statistics */ int no_wrapping; /* end/restart strings at end of lines */ int autopager; /* if calling the pager automatically */ int overstrike; /* if using printer overstrikes */ int overstrike_for_less; /* if output aimed to the "less" program */ const char *user_delete_start; /* user specified string for start of delete */ const char *user_delete_end; /* user specified string for end of delete */ const char *user_insert_start; /* user specified string for start of insert */ const char *user_insert_end; /* user specified string for end of insert */ int find_termcap; /* initialize the termcap strings */ const char *term_delete_start; /* termcap string for start of delete */ const char *term_delete_end; /* termcap string for end of delete */ const char *term_insert_start; /* termcap string for start of insert */ const char *term_insert_end; /* termcap string for end of insert */ /* Other variables. */ enum copy_mode { COPY_NORMAL, /* copy text unemphasized */ COPY_DELETED, /* copy text underlined */ COPY_INSERTED /* copy text bolded */ } copy_mode; jmp_buf signal_label; /* where to jump when signal received */ int interrupted; /* set when some signal has been received */ /* Guarantee some value P_tmpdir. */ #ifndef P_tmpdir # define P_tmpdir "/tmp" #endif typedef struct side SIDE; /* all variables for one side */ struct side { const char *filename; /* original input file name */ FILE *file; /* original input file */ int position; /* number of words read so far */ int character; /* one character look ahead */ char *temp_name; /* temporary file name */ FILE *temp_file; /* temporary file */ }; SIDE side_array[2]; /* area for holding side descriptions */ SIDE *left_side = &side_array[0]; SIDE *right_side = &side_array[1]; FILE *input_file; /* stream being produced by diff */ int character; /* for reading input_file */ char directive; /* diff directive character */ int argument[4]; /* four diff directive arguments */ FILE *output_file; /* file to which we write output */ int count_total_left; /* count of total words in left file */ int count_total_right; /* count of total words in right file */ int count_isolated_left; /* count of deleted words in left file */ int count_isolated_right; /* count of added words in right file */ int count_changed_left; /* count of changed words in left file */ int count_changed_right; /* count of changed words in right file */ /* Signal processing. */ /*-----------------. | Signal handler. | `-----------------*/ static RETSIGTYPE signal_handler (int number) { interrupted = 1; signal (number, signal_handler); } /*----------------------------. | Prepare to handle signals. | `----------------------------*/ static void setup_signals (void) { interrupted = 0; /* Intercept willingful requests for stopping. */ signal (SIGINT, signal_handler); signal (SIGPIPE, signal_handler); signal (SIGTERM, signal_handler); } /* Terminal initialization. */ static void initialize_strings (void) { #if HAVE_TPUTS if (find_termcap) { const char *name; /* terminal capability name */ char term_buffer[2048]; /* terminal description */ static char *buffer; /* buffer for capabilities */ char *filler; /* cursor into allocated strings */ int success; /* tgetent results */ name = getenv ("TERM"); if (name == NULL) error (EXIT_ERROR, 0, _("select a terminal through the TERM environment variable")); success = tgetent (term_buffer, name); if (success < 0) error (EXIT_ERROR, 0, _("could not access the termcap data base")); if (success == 0) error (EXIT_ERROR, 0, _("terminal type `%s' is not defined"), name); buffer = (char *) malloc (strlen (term_buffer)); filler = buffer; term_delete_start = tgetstr ("us", &filler); term_delete_end = tgetstr ("ue", &filler); term_insert_start = tgetstr ("so", &filler); term_insert_end = tgetstr ("se", &filler); } #endif /* HAVE_TPUTS */ /* Ensure some default strings. */ if (!overstrike) { if (!term_delete_start && !user_delete_start) user_delete_start = "[-"; if (!term_delete_end && !user_delete_end) user_delete_end = "-]"; if (!term_insert_start && !user_insert_start) user_insert_start = "{+"; if (!term_insert_end && !user_insert_end) user_insert_end = "+}"; } } /* Character input and output. */ #if HAVE_TPUTS /*-----------------------------------------. | Write one character for tputs function. | `-----------------------------------------*/ static int putc_for_tputs (int chr) { return putc (chr, output_file); } #endif /* HAVE_TPUTS */ /*---------------------------. | Indicate start of delete. | `---------------------------*/ static void start_of_delete (void) { /* Avoid any emphasis if it would be useless. */ if (inhibit_common && (inhibit_right || inhibit_left)) return; copy_mode = COPY_DELETED; #if HAVE_TPUTS if (term_delete_start) tputs (term_delete_start, 0, putc_for_tputs); #endif if (user_delete_start) fprintf (output_file, "%s", user_delete_start); } /*-------------------------. | Indicate end of delete. | `-------------------------*/ static void end_of_delete (void) { /* Avoid any emphasis if it would be useless. */ if (inhibit_common && (inhibit_right || inhibit_left)) return; if (user_delete_end) fprintf (output_file, "%s", user_delete_end); #if HAVE_TPUTS if (term_delete_end) tputs (term_delete_end, 0, putc_for_tputs); #endif copy_mode = COPY_NORMAL; } /*---------------------------. | Indicate start of insert. | `---------------------------*/ static void start_of_insert (void) { /* Avoid any emphasis if it would be useless. */ if (inhibit_common && (inhibit_right || inhibit_left)) return; copy_mode = COPY_INSERTED; #if HAVE_TPUTS if (term_insert_start) tputs (term_insert_start, 0, putc_for_tputs); #endif if (user_insert_start) fprintf (output_file, "%s", user_insert_start); } /*-------------------------. | Indicate end of insert. | `-------------------------*/ static void end_of_insert (void) { /* Avoid any emphasis if it would be useless. */ if (inhibit_common && (inhibit_right || inhibit_left)) return; if (user_insert_end) fprintf (output_file, "%s", user_insert_end); #if HAVE_TPUTS if (term_insert_end) tputs (term_insert_end, 0, putc_for_tputs); #endif copy_mode = COPY_NORMAL; } /*--------------------------------. | Skip over white space on SIDE. | `--------------------------------*/ static void skip_whitespace (SIDE * side) { if (interrupted) longjmp (signal_label, 1); while (isspace (side->character)) side->character = getc (side->file); } /*------------------------------------. | Skip over non white space on SIDE. | `------------------------------------*/ static void skip_word (SIDE * side) { if (interrupted) longjmp (signal_label, 1); while (side->character != EOF && !isspace (side->character)) side->character = getc (side->file); side->position++; } /*-------------------------------------. | Copy white space from SIDE to FILE. | `-------------------------------------*/ static void copy_whitespace (SIDE * side, FILE * file) { if (interrupted) longjmp (signal_label, 1); while (isspace (side->character)) { /* While changing lines, ensure we stop any special display prior to, and restore the special display after. When copy_mode is anything else than COPY_NORMAL, file is always output_file. We care underlining whitespace or overstriking it with itself, because "less" understands these things as emphasis requests. */ switch (copy_mode) { case COPY_NORMAL: putc (side->character, file); break; case COPY_DELETED: if (side->character == '\n') { if (no_wrapping && user_delete_end) fprintf (output_file, "%s", user_delete_end); #if HAVE_TPUTS if (term_delete_end) tputs (term_delete_end, 0, putc_for_tputs); #endif putc ('\n', output_file); #if HAVE_TPUTS if (term_delete_start) tputs (term_delete_start, 0, putc_for_tputs); #endif if (no_wrapping && user_delete_start) fprintf (output_file, "%s", user_delete_start); } else if (overstrike_for_less) { putc ('_', output_file); putc ('\b', output_file); putc (side->character, output_file); } else putc (side->character, output_file); break; case COPY_INSERTED: if (side->character == '\n') { if (no_wrapping && user_insert_end) fprintf (output_file, "%s", user_insert_end); #if HAVE_TPUTS if (term_insert_end) tputs (term_insert_end, 0, putc_for_tputs); #endif putc ('\n', output_file); #if HAVE_TPUTS if (term_insert_start) tputs (term_insert_start, 0, putc_for_tputs); #endif if (no_wrapping && user_insert_start) fprintf (output_file, "%s", user_insert_start); } else if (overstrike_for_less) { putc (side->character, output_file); putc ('\b', output_file); putc (side->character, output_file); } else putc (side->character, output_file); break; } /* Advance to next character. */ side->character = getc (side->file); } } /*-----------------------------------------. | Copy non white space from SIDE to FILE. | `-----------------------------------------*/ static void copy_word (SIDE * side, FILE * file) { if (interrupted) longjmp (signal_label, 1); while (side->character != EOF && !isspace (side->character)) { /* In printer mode, act according to copy_mode. If copy_mode is not COPY_NORMAL, we know that file is necessarily output_file. */ if (overstrike) switch (copy_mode) { case COPY_NORMAL: putc (side->character, file); break; case COPY_DELETED: putc ('_', output_file); /* Avoid underlining an underscore. */ if (side->character != '_') { putc ('\b', output_file); putc (side->character, output_file); } break; case COPY_INSERTED: putc (side->character, output_file); putc ('\b', output_file); putc (side->character, output_file); break; } else putc (side->character, file); side->character = getc (side->file); } side->position++; } /*-------------------------------------------------------------------------. | Create a template filename suitable for mkstemp given the temporary | | directory settings of the system. The method used here closely follows | | the method used in glibc's tmpfile implementation. | `-------------------------------------------------------------------------*/ static char * create_template_filename () { struct stat stat_buffer; /* for checking if file is directory */ const char *dir; size_t dirlen; char *tmpl; dir = getenv ("TMPDIR"); if (dir && (stat (dir, &stat_buffer) == 0) && ((stat_buffer.st_mode & S_IFMT) == S_IFDIR)) /* nothing */ ; else if ((stat (P_tmpdir, &stat_buffer) == 0) && ((stat_buffer.st_mode & S_IFMT) == S_IFDIR)) dir = P_tmpdir; else if ((stat ("/tmp", &stat_buffer) == 0) && ((stat_buffer.st_mode & S_IFMT) == S_IFDIR)) dir = "/tmp"; else { errno = ENOENT; return NULL; } dirlen = strlen (dir); while (dirlen > 1 && dir[dirlen - 1] == '/') dirlen--; /* remove trailing slashes */ /* ensure we have room for "${dir}/wdiff.XXXXXX\0" */ tmpl = xmalloc (dirlen + 1 + 12 + 1); sprintf (tmpl, "%.*s/wdiff.XXXXXX", (int) dirlen, dir); return tmpl; } /*--------------------------------------------------. | Create a temporary file for one side of the diff. | `--------------------------------------------------*/ static void create_temporary_side (SIDE * side) { int fd; /* for file descriptors returned by mkstemp */ /* Select a file name, use it for opening a temporary file and unlink it right away. We do not need the file name itself anymore. */ if ((side->temp_name = create_template_filename ()) == NULL) error (EXIT_ERROR, errno, _("no suitable temporary directory exists")); if ((fd = mkstemp (side->temp_name)) == -1) error (EXIT_ERROR, errno, "%s", side->temp_name); side->file = fdopen (fd, "w+"); if (side->file == NULL) error (EXIT_ERROR, errno, "%s", side->temp_name); if (unlink (side->temp_name) != 0) error (EXIT_ERROR, errno, "%s", side->temp_name); } /*--------------------------------------------------------. | Read unified diff and produce two output files from it. | `--------------------------------------------------------*/ static void split_diff (const char *path) { FILE *input; int character; int start_of_line = 1; int output_to = 3; if (path == NULL) { input = stdin; } else { input = fopen (path, "r"); if (input == NULL) error (EXIT_ERROR, errno, "%s", path); } create_temporary_side (left_side); create_temporary_side (right_side); while ((character = getc (input)) != EOF) { if (start_of_line) { start_of_line = 0; switch (character) { case '-': output_to = 1; continue; case '+': output_to = 2; continue; case ' ': output_to = 3; continue; default: output_to = 3; break; } } if (output_to & 1) putc (character, left_side->file); if (output_to & 2) putc (character, right_side->file); start_of_line = (character == '\n' || character == '\r'); } rewind (left_side->file); rewind (right_side->file); } /*-------------------------------------------------------------------------. | For a given SIDE, turn original input file in another one, in which each | | word is on one line. | `-------------------------------------------------------------------------*/ static void split_file_into_words (SIDE * side) { struct stat stat_buffer; /* for checking if file is directory */ int fd; /* for file descriptors returned by mkstemp */ FILE *input; /* used when copying from non-seekable input */ /* Open files. */ if (!diff_input) { if (side->filename == NULL) { side->file = stdin; } else { /* Check and diagnose if the file name is a directory. Or else, prepare the file for reading. */ if (stat (side->filename, &stat_buffer) != 0) error (EXIT_ERROR, errno, "%s", side->filename); if ((stat_buffer.st_mode & S_IFMT) == S_IFDIR) error (EXIT_ERROR, 0, _("directories not supported")); side->file = fopen (side->filename, "r"); if (side->file == NULL) error (EXIT_ERROR, errno, "%s", side->filename); } if (fseek (side->file, 0L, SEEK_CUR) != 0) { /* Non-seekable input, e.g. stdin or shell process substitution. Copy the whole input to a temporary local file. Once done, prepare it for reading. */ input = side->file; create_temporary_side (side); while (side->character = getc (input), side->character != EOF) putc (side->character, side->file); rewind (side->file); } } side->character = getc (side->file); side->position = 0; if ((side->temp_name = create_template_filename ()) == NULL) error (EXIT_ERROR, errno, _("no suitable temporary directory exists")); if ((fd = mkstemp (side->temp_name)) == -1) error (EXIT_ERROR, errno, "%s", side->temp_name); side->temp_file = fdopen (fd, "w"); if (side->temp_file == NULL) error (EXIT_ERROR, errno, "%s", side->temp_name); /* Complete splitting input file into words on output. */ while (side->character != EOF) { if (interrupted) longjmp (signal_label, 1); skip_whitespace (side); if (side->character == EOF) break; copy_word (side, side->temp_file); putc ('\n', side->temp_file); } fclose (side->temp_file); } /*-------------------------------------------------------------------. | Decode one directive line from INPUT_FILE. The format should be: | | | | ARG0 [ , ARG1 ] LETTER ARG2 [ , ARG3 ] \n | | | | By default, ARG1 is assumed to have the value of ARG0, and ARG3 is | | assumed to have the value of ARG2. Return 0 if any error found. | `-------------------------------------------------------------------*/ static int decode_directive_line (void) { int value; /* last scanned value */ int state; /* ordinal of number being read */ int error; /* if error seen */ error = 0; state = 0; value = 0; while (!error && state < 4) { /* Read the next number. ARG0 and ARG2 are mandatory. */ if (isdigit (character)) { value = 0; while (isdigit (character)) { value = 10 * value + character - '0'; character = getc (input_file); } } else if (state != 1 && state != 3) error = 1; /* Assign the proper value. */ argument[state] = value; /* Skip the following character. */ switch (state) { case 0: case 2: if (character == ',') character = getc (input_file); break; case 1: if (character == 'a' || character == 'd' || character == 'c') { directive = character; character = getc (input_file); } else error = 1; break; case 3: if (character != '\n') error = 1; break; } state++; } /* Complete reading of the line and return success value. */ while (character != EOF && character != '\n') character = getc (input_file); if (character == '\n') character = getc (input_file); return !error; } /*----------------------------------------------. | Skip SIDE until some word ORDINAL, included. | `----------------------------------------------*/ static void skip_until_ordinal (SIDE * side, int ordinal) { while (side->position < ordinal) { skip_whitespace (side); skip_word (side); } } /*----------------------------------------------. | Copy SIDE until some word ORDINAL, included. | `----------------------------------------------*/ static void copy_until_ordinal (SIDE * side, int ordinal) { while (side->position < ordinal) { copy_whitespace (side, output_file); copy_word (side, output_file); } } /*-----------------------------------------------------. | Study diff output and use it to drive reformatting. | `-----------------------------------------------------*/ static void reformat_diff_output (void) { int resync_left; /* word position for left resynchronisation */ int resync_right; /* word position for rigth resynchronisation */ /* Rewind input files. */ rewind (left_side->file); left_side->character = getc (left_side->file); left_side->position = 0; rewind (right_side->file); right_side->character = getc (right_side->file); right_side->position = 0; /* Process diff output. */ while (1) { if (interrupted) longjmp (signal_label, 1); /* Skip any line irrelevant to this program. */ while (character != EOF && !isdigit (character)) { while (character != EOF && character != '\n') character = getc (input_file); if (character == '\n') character = getc (input_file); } /* Get out the loop if end of file. */ if (character == EOF) break; /* Read, decode and process one directive line. */ if (decode_directive_line ()) { /* Accumulate statistics about isolated or changed word counts. Decide the required position on both files to resynchronize them, just before obeying the directive. Then, reposition both files first, showing any needed common code along the road. Be careful to copy common code from the left side if only deleted code is to be shown. */ switch (directive) { case 'a': count_isolated_right += argument[3] - argument[2] + 1; resync_left = argument[0]; resync_right = argument[2] - 1; break; case 'd': count_isolated_left += argument[1] - argument[0] + 1; resync_left = argument[0] - 1; resync_right = argument[2]; break; case 'c': count_changed_left += argument[1] - argument[0] + 1; count_changed_right += argument[3] - argument[2] + 1; resync_left = argument[0] - 1; resync_right = argument[2] - 1; break; default: abort (); } if (!inhibit_left) { if (!inhibit_common && inhibit_right) copy_until_ordinal (left_side, resync_left); else skip_until_ordinal (left_side, resync_left); } if (!inhibit_right) { if (inhibit_common) skip_until_ordinal (right_side, resync_right); else copy_until_ordinal (right_side, resync_right); } if (!inhibit_common && inhibit_left && inhibit_right) copy_until_ordinal (right_side, resync_right); /* Use separator lines to disambiguate the output. */ if (inhibit_left && inhibit_right) { if (!inhibit_common) fprintf (output_file, "\n%s\n", SEPARATOR_LINE); } else if (inhibit_common) fprintf (output_file, "\n%s\n", SEPARATOR_LINE); /* Show any deleted code. */ if ((directive == 'd' || directive == 'c') && !inhibit_left) { copy_whitespace (left_side, output_file); start_of_delete (); copy_word (left_side, output_file); copy_until_ordinal (left_side, argument[1]); end_of_delete (); } /* Show any inserted code, or ensure skipping over it in case the right file is used merely to show common words. */ if (directive == 'a' || directive == 'c') if (inhibit_right) { if (!inhibit_common && inhibit_left) skip_until_ordinal (right_side, argument[3]); } else { copy_whitespace (right_side, output_file); start_of_insert (); copy_word (right_side, output_file); copy_until_ordinal (right_side, argument[3]); end_of_insert (); } } } complete_input_program (); input_file = 0; /* Copy remainder of input. Copy from left side if the user wanted to see only the common code and deleted words. */ if (inhibit_common) { if (!inhibit_left || !inhibit_right) fprintf (output_file, "\n%s\n", SEPARATOR_LINE); } else if (!inhibit_left && inhibit_right) { copy_until_ordinal (left_side, count_total_left); copy_whitespace (left_side, output_file); } else { copy_until_ordinal (right_side, count_total_right); copy_whitespace (right_side, output_file); } /* Close input files. */ fclose (left_side->file); fclose (right_side->file); } /* Launch and complete various programs. */ /*-------------------------. | Lauch the diff program. | `-------------------------*/ static void launch_input_program (void) { /* Launch the diff program. */ if (ignore_case) input_file = readpipe (DIFF_PROGRAM, "-i", left_side->temp_name, right_side->temp_name, NULL); else input_file = readpipe (DIFF_PROGRAM, left_side->temp_name, right_side->temp_name, NULL); if (!input_file) error (EXIT_ERROR, errno, "%s", DIFF_PROGRAM); character = getc (input_file); } /*----------------------------. | Complete the diff program. | `----------------------------*/ static void complete_input_program (void) { int status; fclose (input_file); wait (&status); if (WIFEXITED (status)) { status = WEXITSTATUS (status); if (status == 0 || status == 1) return; /* else assume the child printed an error message and exit below */ } else if (WIFSIGNALED (status)) { fprintf (stderr, _("%s: input program killed by signal %d\n"), program_name, (int) WTERMSIG (status)); } exit (EXIT_ERROR); } /*---------------------------------. | Launch the output pager if any. | `---------------------------------*/ static void launch_output_program (void) { char *program; /* name of the pager */ /* Check if a output program should be called, and which one. Avoid all paging if only statistics are needed. */ if (autopager && isatty (fileno (stdout)) && !(inhibit_left && inhibit_right && inhibit_common)) { program = getenv ("WDIFF_PAGER"); if (program == NULL) program = getenv ("PAGER"); #ifdef PAGER_PROGRAM if (program == NULL) program = PAGER_PROGRAM; #endif } else program = NULL; /* Use stdout as default output. */ output_file = stdout; /* If we should use a pager, launch it. */ if (program && *program) { char *lessenv; lessenv = getenv ("LESS"); if (lessenv == NULL) { setenv ("LESS", LESS_DEFAULT_OPTS, 0); } else { if (asprintf (&lessenv, "%s %s", LESS_DEFAULT_OPTS, lessenv) == -1) { xalloc_die (); return; } else { setenv ("LESS", lessenv, 1); } } output_file = writepipe (program, NULL); if (!output_file) error (EXIT_ERROR, errno, "%s", program); } } /*-----------------------------. | Complete the pager program. | `-----------------------------*/ static void complete_output_program (void) { /* Complete any pending emphasis mode. This would be necessary only if some signal interrupts the normal operation of the program. */ switch (copy_mode) { case COPY_DELETED: end_of_delete (); break; case COPY_INSERTED: end_of_insert (); break; case COPY_NORMAL: break; default: abort (); } /* Let the user play at will inside the pager, until s/he exits, before proceeding any further. */ if (output_file && output_file != stdout) { int status; fclose (output_file); wait (&status); if (WIFSIGNALED (status)) { fprintf (stderr, _("%s: output program killed by signal %d\n"), program_name, (int) WTERMSIG (status)); exit (EXIT_ERROR); } } } /*-------------------------------. | Print accumulated statistics. | `-------------------------------*/ static void print_statistics (void) { int count_common_left; /* words unchanged in left file */ int count_common_right; /* words unchanged in right file */ count_common_left = count_total_left - count_isolated_left - count_changed_left; count_common_right = count_total_right - count_isolated_right - count_changed_right; printf (ngettext ("%s: %d word", "%s: %d words", count_total_left), left_side->filename, count_total_left); if (count_total_left > 0) { printf (ngettext (" %d %.0f%% common", " %d %.0f%% common", count_common_left), count_common_left, count_common_left * 100. / count_total_left); printf (ngettext (" %d %.0f%% deleted", " %d %.0f%% deleted", count_isolated_left), count_isolated_left, count_isolated_left * 100. / count_total_left); printf (ngettext (" %d %.0f%% changed", " %d %.0f%% changed", count_changed_left), count_changed_left, count_changed_left * 100. / count_total_left); } printf ("\n"); printf (ngettext ("%s: %d word", "%s: %d words", count_total_right), right_side->filename, count_total_right); if (count_total_right > 0) { printf (ngettext (" %d %.0f%% common", " %d %.0f%% common", count_common_right), count_common_right, count_common_right * 100. / count_total_right); printf (ngettext (" %d %.0f%% inserted", " %d %.0f%% inserted", count_isolated_right), count_isolated_right, count_isolated_right * 100. / count_total_right); printf (ngettext (" %d %.0f%% changed", " %d %.0f%% changed", count_changed_right), count_changed_right, count_changed_right * 100. / count_total_right); } printf ("\n"); } /* Main control. */ /*-----------------------------------. | Prints a more detailed Copyright. | `-----------------------------------*/ static void print_copyright (void) { fputs (_("\ This program is free software: you can redistribute it and/or modify\n\ it under the terms of the GNU General Public License as published by\n\ the Free Software Foundation, either version 3 of the License, or\n\ (at your option) any later version.\n\ \n\ This program is distributed in the hope that it will be useful,\n\ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ GNU General Public License for more details.\n\ \n\ You should have received a copy of the GNU General Public License\n\ along with this program. If not, see .\n"), stdout); } /*-----------------------------. | Tell how to use, then exit. | `-----------------------------*/ static void usage (int status) { if (status != 0) fprintf (stderr, _("Try `%s --help' for more information.\n"), program_name); else { /* *INDENT-OFF* */ fputs (_("\ wdiff - Compares words in two files and report differences.\n"), stdout); fputs ("\n", stdout); printf (_("\ Usage: %s [OPTION]... FILE1 FILE2\n\ or: %s -d [OPTION]... [FILE]\n"), program_name, program_name); fputs ("\n", stdout); fputs (_("\ Mandatory arguments to long options are mandatory for short options too.\n"), stdout); fputs (_(" -C, --copyright display copyright then exit\n"), stdout); fputs (_(" -1, --no-deleted inhibit output of deleted words\n"), stdout); fputs (_(" -2, --no-inserted inhibit output of inserted words\n"), stdout); fputs (_(" -3, --no-common inhibit output of common words\n"), stdout); fputs (_(" -a, --auto-pager automatically calls a pager\n"), stdout); fputs (_(" -d, --diff-input use single unified diff as input\n"), stdout); fputs (_(" -h, --help display this help then exit\n"), stdout); fputs (_(" -i, --ignore-case fold character case while comparing\n"), stdout); fputs (_(" -l, --less-mode variation of printer mode for \"less\"\n"), stdout); fputs (_(" -n, --avoid-wraps do not extend fields through newlines\n"), stdout); fputs (_(" -p, --printer overstrike as for printers\n"), stdout); fputs (_(" -s, --statistics say how many words deleted, inserted etc.\n"), stdout); fputs (_(" -t, --terminal use termcap as for terminal displays\n"), stdout); fputs (_(" -v, --version display program version then exit\n"), stdout); fputs (_(" -w, --start-delete=STRING string to mark beginning of delete region\n"), stdout); fputs (_(" -x, --end-delete=STRING string to mark end of delete region\n"), stdout); fputs (_(" -y, --start-insert=STRING string to mark beginning of insert region\n"), stdout); fputs (_(" -z, --end-insert=STRING string to mark end of insert region\n"), stdout); fputs ("\n", stdout); fputs (_("Report bugs to .\n"), stdout); /* *INDENT-ON* */ } exit (status); } /*---------------. | Main program. | `---------------*/ int main (int argc, char *const argv[]) { int option_char; /* option character */ /* Decode arguments. */ program_name = argv[0]; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); inhibit_left = 0; inhibit_right = 0; inhibit_common = 0; diff_input = 0; ignore_case = 0; show_statistics = 0; no_wrapping = 0; autopager = 0; overstrike = 0; overstrike_for_less = 0; user_delete_start = NULL; user_delete_end = NULL; user_insert_start = NULL; user_insert_end = NULL; find_termcap = -1; /* undecided yet */ term_delete_start = NULL; term_delete_end = NULL; term_insert_start = NULL; term_insert_end = NULL; copy_mode = COPY_NORMAL; count_total_left = 0; count_total_right = 0; count_isolated_left = 0; count_isolated_right = 0; count_changed_left = 0; count_changed_right = 0; while (option_char = getopt_long (argc, (char **) argv, "123CKadhilnpstvw:x:y:z:", longopts, NULL), option_char != EOF) switch (option_char) { case '1': inhibit_left = 1; break; case '2': inhibit_right = 1; break; case '3': inhibit_common = 1; break; case 'C': print_copyright (); exit (EXIT_SUCCESS); case 'a': autopager = 1; break; case 'd': diff_input = 1; break; case 'h': usage (EXIT_SUCCESS); case 'i': ignore_case = 1; break; case 'l': if (find_termcap < 0) find_termcap = 0; overstrike = 1; overstrike_for_less = 1; break; case 'n': no_wrapping = 1; break; case 'p': overstrike = 1; break; case 's': show_statistics = 1; break; case 'K': /* compatibility option, equal to -t now */ /* fall through */ case 't': #if HAVE_TPUTS if (find_termcap < 0) find_termcap = 1; break; #else error (EXIT_ERROR, 0, _("cannot use -t, termcap not available")); #endif case 'v': printf ("wdiff (GNU %s) %s\n", PACKAGE, VERSION); fputs (_("\ \n\ Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n\ Foundation, Inc.\n"), stdout); fputs (_("\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), stdout); fputs (_("\ \n\ Written by Franc,ois Pinard .\n"), stdout); exit (EXIT_SUCCESS); case 'w': user_delete_start = optarg; break; case 'x': user_delete_end = optarg; break; case 'y': user_insert_start = optarg; break; case 'z': user_insert_end = optarg; break; default: usage (EXIT_ERROR); } /* If find_termcap still undecided, make it true only if autopager is set while stdout is directed to a terminal. This decision might be reversed later, if the pager happens to be "less". */ if (find_termcap < 0) find_termcap = autopager && isatty (fileno (stdout)); /* Setup file names and signals, then do it all. */ if (diff_input) { if (optind + 1 < argc) { error (0, 0, _("too many file arguments")); usage (EXIT_ERROR); } if (optind == argc || strcmp (argv[optind], "") == 0 || strcmp (argv[optind], "-") == 0) split_diff (NULL); else split_diff (argv[optind]); } else { if (optind + 2 > argc) { error (0, 0, _("missing file arguments")); usage (EXIT_ERROR); } if (optind + 2 < argc) { error (0, 0, _("too many file arguments")); usage (EXIT_ERROR); } if (strcmp (argv[optind], "") == 0 || strcmp (argv[optind], "-") == 0) left_side->filename = NULL; else left_side->filename = argv[optind]; optind++; left_side->temp_name = NULL; if (strcmp (argv[optind], "") == 0 || strcmp (argv[optind], "-") == 0) right_side->filename = NULL; else right_side->filename = argv[optind]; optind++; right_side->temp_name = NULL; if (left_side->filename == NULL && right_side->filename == NULL) error (EXIT_ERROR, 0, _("only one file may be standard input")); } setup_signals (); input_file = NULL; output_file = NULL; if (!setjmp (signal_label)) { split_file_into_words (left_side); count_total_left = left_side->position; split_file_into_words (right_side); count_total_right = right_side->position; launch_input_program (); launch_output_program (); initialize_strings (); reformat_diff_output (); } /* Clean up. Beware that input_file and output_file might not exist, if a signal occurred early in the program. */ if (input_file) complete_input_program (); if (left_side->temp_name) unlink (left_side->temp_name); if (right_side->temp_name) unlink (right_side->temp_name); if (output_file) complete_output_program (); if (interrupted) exit (EXIT_ERROR); if (show_statistics) print_statistics (); if (count_isolated_left || count_isolated_right || count_changed_left || count_changed_right) exit (EXIT_DIFFERENCE); exit (EXIT_SUCCESS); } wdiff-1.2.1/src/Makefile.am0000644000000000000000000000136411744500575012340 00000000000000## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. bin_PROGRAMS = wdiff $(EXPERIMENTAL_PROGRAMS) EXTRA_PROGRAMS = mdiff unify wdiff2 unify_SOURCES = unify.c wdiff.h wdiff_SOURCES = wdiff.c pipes.c wdiff.h mdiff_SOURCES = mdiff.c pipes.c wdiff.h wdiff2_SOURCES = wdiff2.c wdiff.h unify_LDADD = ../lib/libgnu.a $(LIBINTL) wdiff_LDADD = ../lib/libgnu.a $(LIBINTL) mdiff_LDADD = ../lib/libgnu.a $(LIBINTL) wdiff2_LDADD = ../lib/libgnu.a $(LIBINTL) AM_CPPFLAGS = -I$(top_srcdir)/lib DEFS += -DLOCALEDIR=\"$(localedir)\" ../lib/libgnu.a: test -f $@ || $(MAKE) -C ../lib wdiff-1.2.1/src/Makefile.in0000644000000000000000000013015312116513166012342 00000000000000# Makefile.in generated by automake 1.13.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 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 = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = wdiff$(EXEEXT) $(EXPERIMENTAL_PROGRAMS) EXTRA_PROGRAMS = mdiff$(EXEEXT) unify$(EXEEXT) wdiff2$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/getdelim.m4 \ $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/iswblank.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readlink.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/time_h.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \ $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_mdiff_OBJECTS = mdiff.$(OBJEXT) pipes.$(OBJEXT) mdiff_OBJECTS = $(am_mdiff_OBJECTS) am__DEPENDENCIES_1 = mdiff_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) am_unify_OBJECTS = unify.$(OBJEXT) unify_OBJECTS = $(am_unify_OBJECTS) unify_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) am_wdiff_OBJECTS = wdiff.$(OBJEXT) pipes.$(OBJEXT) wdiff_OBJECTS = $(am_wdiff_OBJECTS) wdiff_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) am_wdiff2_OBJECTS = wdiff2.$(OBJEXT) wdiff2_OBJECTS = $(am_wdiff2_OBJECTS) wdiff2_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(mdiff_SOURCES) $(unify_SOURCES) $(wdiff_SOURCES) \ $(wdiff2_SOURCES) DIST_SOURCES = $(mdiff_SOURCES) $(unify_SOURCES) $(wdiff_SOURCES) \ $(wdiff2_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOM4TE = @AUTOM4TE@ AUTOMAKE = @AUTOMAKE@ AUTOTEST = @AUTOTEST@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ -DLOCALEDIR=\"$(localedir)\" DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ EXPERIMENTAL = @EXPERIMENTAL@ EXPERIMENTAL_MANS = @EXPERIMENTAL_MANS@ EXPERIMENTAL_PROGRAMS = @EXPERIMENTAL_PROGRAMS@ EXPERIMENTAL_TEXI = @EXPERIMENTAL_TEXI@ FLOAT_H = @FLOAT_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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 = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ unify_SOURCES = unify.c wdiff.h wdiff_SOURCES = wdiff.c pipes.c wdiff.h mdiff_SOURCES = mdiff.c pipes.c wdiff.h wdiff2_SOURCES = wdiff2.c wdiff.h unify_LDADD = ../lib/libgnu.a $(LIBINTL) wdiff_LDADD = ../lib/libgnu.a $(LIBINTL) mdiff_LDADD = ../lib/libgnu.a $(LIBINTL) wdiff2_LDADD = ../lib/libgnu.a $(LIBINTL) AM_CPPFLAGS = -I$(top_srcdir)/lib all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) mdiff$(EXEEXT): $(mdiff_OBJECTS) $(mdiff_DEPENDENCIES) $(EXTRA_mdiff_DEPENDENCIES) @rm -f mdiff$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mdiff_OBJECTS) $(mdiff_LDADD) $(LIBS) unify$(EXEEXT): $(unify_OBJECTS) $(unify_DEPENDENCIES) $(EXTRA_unify_DEPENDENCIES) @rm -f unify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unify_OBJECTS) $(unify_LDADD) $(LIBS) wdiff$(EXEEXT): $(wdiff_OBJECTS) $(wdiff_DEPENDENCIES) $(EXTRA_wdiff_DEPENDENCIES) @rm -f wdiff$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wdiff_OBJECTS) $(wdiff_LDADD) $(LIBS) wdiff2$(EXEEXT): $(wdiff2_OBJECTS) $(wdiff2_DEPENDENCIES) $(EXTRA_wdiff2_DEPENDENCIES) @rm -f wdiff2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wdiff2_OBJECTS) $(wdiff2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdiff2.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS ../lib/libgnu.a: test -f $@ || $(MAKE) -C ../lib # 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: wdiff-1.2.1/src/unify.c0000644000000000000000000004434511744500575011610 00000000000000/* unify -- Change a diff to/from a context diff from/to a unified diff. Copyright (C) 1994, 1997, 1998 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 3 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, see . */ /* From the public domain version 1.1, as found on 1992-12-22 at ftp://ftp.uu.net/usenet/comp.sources.misc/volume25/unidiff/part01.Z. Originally written by Wayne Davison . */ #include "wdiff.h" #include #include #include /* FIXME: Programs should not have such limits. */ #define NAME_LENGTH 255 #define BUFFER_LENGTH 2048 /* The name this program was run with. */ const char *program_name; /* If nonzero, display usage information and exit. */ static int show_help = 0; /* If nonzero, print the version on standard output and exit. */ static int show_version = 0; enum type { TYPE_UNDECIDED, TYPE_UNIDIFF, TYPE_CDIFF }; static enum type output_type = TYPE_UNDECIDED; static int force_old_style = 0; /* old-style diff, no matter what */ static int echo_comments = 0; /* echo comments to stderr */ static int strip_comments = 0; /* strip comment lines */ static int patch_format = 0; /* generate patch format */ static int use_equals = 0; /* use '=' not ' ' in unified diffs */ /* Common definitions. */ enum state { FIND_NEXT, PARSE_UNIDIFF, UNI_LINES, PARSE_CDIFF, PARSE_OLD, CHECK_OLD, OLD_LINES, PARSE_NEW, NEW_LINES }; static enum state state = FIND_NEXT; struct line_object { struct line_object *next; char type; int number; char string[1]; }; struct line_object root, *head = &root, *hold = &root, *line; long old_first = 0, old_last = -1; long new_first = 0, new_last = 0; long old_start, old_end, old_line; long new_start, new_end, new_line; long line_number = 0; static enum type input_type = TYPE_UNDECIDED; static int found_index = 0; static char name[NAME_LENGTH + 1] = { '\0' }; static char buffer[BUFFER_LENGTH]; /*---------------------------------------------------------------. | Decode integer at CURSOR into RESULT, leave CURSOR past it. | `---------------------------------------------------------------*/ #define SCAN_INTEGER(Cursor, Result) \ do \ { \ Result = atol (Cursor); \ while (*Cursor <= '9' && *Cursor >= '0') \ Cursor++; \ } \ while (0) /*--------------------------------------------------------------------. | Check if two strings are equal, given a maximum comparison length. | `--------------------------------------------------------------------*/ static inline int string_equal (const char *string1, const char *string2, int length) { return !strncmp (string1, string2, length); } /*---. | ? | `---*/ static void add_line (char type, long number, char *string) { line = (struct line_object *) xmalloc (sizeof (struct line_object) + strlen (string)); line->type = type; line->number = number; strcpy (line->string, string); line->next = hold->next; hold->next = line; hold = line; } /*---. | ? | `---*/ static void ensure_name (void) { char *cursor = name; if (found_index) return; if (!*name) error (0, 0, _("could not find a name for the diff at line %ld"), line_number); else if (patch_format) { if (cursor[0] == '.' && cursor[1] == '/') cursor += 2; printf ("Index: %s\n", cursor); } } /*---. | ? | `---*/ static void generate_output (void) { if (old_last < 0) return; if (output_type == TYPE_UNIDIFF) { long i, j; i = old_first ? old_last - old_first + 1 : 0; j = new_first ? new_last - new_first + 1 : 0; printf ("@@ -%ld,%ld +%ld,%ld @@\n", old_first, i, new_first, j); for (line = root.next; line; line = hold) { printf ("%c%s", use_equals && line->type == ' ' ? '=' : line->type, line->string); hold = line->next; free (line); } } else /* if output_type == TYPE_CDIFF */ { struct line_object *scan; int found_plus = 1; char character; printf ("***************\n*** %ld", old_first); if (old_first == old_last) printf (" ****\n"); else printf (",%ld ****\n", old_last); for (line = root.next; line; line = line->next) if (line->type == '-') break; if (line) { found_plus = 0; character = ' '; for (line = root.next; line; line = line->next) { switch (line->type) { case '-': if (character != ' ') break; scan = line; while (scan = scan->next, (scan != NULL && scan->type == '-')) ; if (scan && scan->type == '+') { do { scan->type = '!'; } while (scan = scan->next, (scan && scan->type == '+')); character = '!'; } else character = '-'; break; case '+': case '!': found_plus = 1; continue; case ' ': character = ' '; break; } printf ("%c %s", character, line->string); } } if (new_first == new_last) printf ("--- %ld ----\n", new_first); else printf ("--- %ld,%ld ----\n", new_first, new_last); if (found_plus) for (line = root.next; line; line = line->next) if (line->type != '-') printf ("%c %s", line->type, line->string); for (line = root.next; line; line = hold) { hold = line->next; free (line); } } root.next = NULL; head = &root; hold = &root; old_first = 0; new_first = 0; old_last = -1; new_last = 0; } /*-----------------------------------------------. | Explain how to use the program, then get out. | `-----------------------------------------------*/ static void usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("try `%s --help' for more information\n"), program_name); else { /* *INDENT-OFF* */ fputs (_("\ unify - Transforms context diffs into unidiffs, or vice-versa.\n"), stdout); fputs ("\n", stdout); printf (_("\ Usage: %s [OPTION]... [FILE]\n"), program_name); fputs ("\n", stdout); fputs (_(" -c, --context-diffs force output to context diffs\n"), stdout); fputs (_(" -e, --echo-comments echo comments to standard error\n"), stdout); fputs (_(" -o, --old-diffs output old-style diffs, no matter what\n"), stdout); fputs (_(" -p, --patch-format generate patch format\n"), stdout); fputs (_(" -P same as -p\n"), stdout); fputs (_(" -s, --strip-comments strip comment lines\n"), stdout); fputs (_(" -u, --unidiffs force output to unidiffs\n"), stdout); fputs (_(" -U same as -p and -u\n"), stdout); fputs (_(" -=, --use-equals replace spaces by equal signs in unidiffs\n"), stdout); fputs (_(" --help display this help then exit\n"), stdout); fputs (_(" --version display program version then exit\n"), stdout); fputs ("\n", stdout); fputs (_("If FILE is not specified, read standard input.\n"), stdout); fputs ("\n", stdout); fputs (_("Report bugs to .\n"), stdout); /* *INDENT-ON* */ } exit (status); } /*----------------------------------------------------------------------. | Main program. Decode ARGC arguments passed through the ARGV array of | | strings, then launch execution. | `----------------------------------------------------------------------*/ /* Long options equivalences. */ static const struct option long_options[] = { {"context-diffs", no_argument, NULL, 'c'}, {"echo-comments", no_argument, NULL, 'e'}, {"help", no_argument, &show_help, 1}, {"old-diffs", no_argument, NULL, 'o'}, {"patch-format", no_argument, NULL, 'p'}, {"strip-comments", no_argument, NULL, 's'}, {"unidiffs", no_argument, NULL, 'u'}, {"use-equals", no_argument, NULL, '='}, {"version", no_argument, &show_version, 1}, {0, 0, 0, 0}, }; int main (int argc, char *const *argv) { int option_char; /* option character */ FILE *file = stdin; char previous_start = ' '; char star_in_cdiff; /* if '*' seen in a new-style context diff */ char type; program_name = argv[0]; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* Decode command options. */ while (option_char = getopt_long (argc, (char **) argv, "=ceopPsUu", long_options, NULL), option_char != EOF) switch (option_char) { default: usage (EXIT_FAILURE); case '\0': break; case '=': use_equals = 1; break; case 'c': output_type = TYPE_CDIFF; break; case 'e': echo_comments = 1; break; case 'o': force_old_style = 1; break; case 'p': case 'P': patch_format = 1; break; case 's': strip_comments = 1; break; case 'U': patch_format = 1; /* Fall through. */ case 'u': /* force unified output */ output_type = TYPE_UNIDIFF; break; } if (optind < argc) { if (file = fopen (argv[optind], "r"), file == NULL) error (EXIT_FAILURE, errno, _("unable to open `%s'"), argv[optind]); optind++; } if (optind < argc) { error (0, 0, _("only one filename allowed")); usage (EXIT_FAILURE); } /* Process trivial options. */ if (show_version) { printf ("unify (GNU %s) %s\n", PACKAGE, VERSION); fputs (_("\ \n\ Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n"), stdout); fputs (_("\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), stdout); fputs (_("\ \n\ Written by Wayne Davison .\n"), stdout); exit (EXIT_SUCCESS); } if (show_help) usage (EXIT_SUCCESS); /* Read and digest the input file. */ while (fgets (buffer, sizeof buffer, file)) { line_number++; reprocess: switch (state) { case FIND_NEXT: if (input_type != TYPE_CDIFF && string_equal (buffer, "@@ -", 4)) { input_type = TYPE_UNIDIFF; if (output_type == TYPE_UNDECIDED) output_type = TYPE_CDIFF; ensure_name (); state = PARSE_UNIDIFF; goto reprocess; } if (input_type != TYPE_UNIDIFF && string_equal (buffer, "********", 8)) { input_type = TYPE_CDIFF; if (output_type == TYPE_UNDECIDED) output_type = TYPE_UNIDIFF; ensure_name (); state = PARSE_OLD; break; } if (string_equal (buffer, "Index:", 6)) { found_index = 1; printf ("%s", buffer); } else if (string_equal (buffer, "Prereq: ", 8)) printf ("%s", buffer); else if (string_equal (buffer, "*** ", 4) || string_equal (buffer, "--- ", 4) || string_equal (buffer, "+++ ", 4)) { if (!found_index) { char *cursor; int length; for (cursor = buffer + 4, length = 0; *cursor > ' ' && length < NAME_LENGTH; cursor++, length++) ; if (!*name || length < strlen (name)) { strncpy (name, buffer + 4, length); name[length] = '\0'; } } if (!patch_format) { if (output_type == TYPE_UNIDIFF && (*buffer == '+' || *buffer == '-' && previous_start != '*') || output_type == TYPE_CDIFF && (*buffer == '*' || *buffer == '-' && previous_start == '*')) printf ("%s", buffer); else if (*buffer == '*' || *buffer == '+') printf ("---%s", buffer + 3); else if (*buffer == '-' && previous_start == '*') printf ("+++%s", buffer + 3); else printf ("***%s", buffer + 3); previous_start = *buffer; } } else if (patch_format && (string_equal (buffer, "Only in ", 8) || string_equal (buffer, "Common subdir", 13) || string_equal (buffer, "diff -", 6) || string_equal (buffer, "Binary files", 12))) { if (echo_comments) fprintf (stderr, "%s%s", strip_comments ? "" : "!!! ", buffer); } else { if (echo_comments) fprintf (stderr, "%s", buffer); if (!strip_comments) printf ("%s", buffer); } break; case PARSE_UNIDIFF: { char *cursor; if (!string_equal (buffer, "@@ -", 4)) { found_index = 0; *name = '\0'; state = FIND_NEXT; goto reprocess; } cursor = buffer + 4; SCAN_INTEGER (cursor, old_start); if (*cursor++ == ',') { SCAN_INTEGER (cursor, old_end); cursor++; } else old_end = 1; if (*cursor++ != '+') goto bad_header; SCAN_INTEGER (cursor, new_start); if (*cursor++ == ',') { SCAN_INTEGER (cursor, new_end); cursor++; } else new_end = 1; if (*cursor != '@') bad_header: error (EXIT_FAILURE, 0, _("invalid unified diff header at line %ld"), line_number); old_end = (old_start ? old_start + old_end - 1 : 0); new_end = (new_start ? new_start + new_end - 1 : 0); old_first = old_start; new_first = new_start; if (old_start) old_line = old_start - 1; else old_line = old_last = 0; if (new_start) new_line = new_start - 1; else new_line = new_last = 0; state = UNI_LINES; break; } case UNI_LINES: switch (*buffer) { case ' ': case '=': *buffer = ' '; old_last = ++old_line; new_last = ++new_line; break; case '-': old_last = ++old_line; break; case '+': new_last = ++new_line; break; default: error (EXIT_FAILURE, 0, _("malformed unified diff at line %ld"), line_number); } add_line (*buffer, 0L, buffer + 1); if (old_line == old_end && new_line == new_end) { generate_output (); state = PARSE_UNIDIFF; } break; case PARSE_CDIFF: if (!string_equal (buffer, "********", 8)) { generate_output (); found_index = 0; *name = '\0'; state = FIND_NEXT; goto reprocess; } state = PARSE_OLD; break; case PARSE_OLD: star_in_cdiff = ' '; old_start = -1; if (sscanf (buffer, "*** %ld,%ld %c", &old_start, &old_end, &star_in_cdiff) < 2) { if (old_start < 0) error (EXIT_FAILURE, 0, _("context diff missing `old' header at line %ld"), line_number); old_end = old_start; star_in_cdiff = ' '; } else if (force_old_style) star_in_cdiff = ' '; if (old_last >= 0) { if (old_start > old_last) generate_output (); else { star_in_cdiff = ' '; while (head->next && head->next->number != old_start) head = head->next; } } old_line = old_start - 1; new_line = 0; if (!old_first) old_first = old_start; if (!old_start) state = PARSE_NEW; else state = CHECK_OLD; break; case CHECK_OLD: if (string_equal (buffer, "--- ", 4)) state = PARSE_NEW; else { state = OLD_LINES; hold = head; } goto reprocess; case OLD_LINES: if (buffer[0] == '\n') strcpy (buffer, " \n"); if (buffer[1] == '\n') strcpy (buffer + 1, " \n"); if (buffer[1] != ' ') error (EXIT_FAILURE, 0, _("malformed context diff at line %ld"), line_number); switch (*buffer) { case ' ': type = ' '; new_line++; old_line++; break; case '-': case '!': type = '-'; old_line++; break; default: error (EXIT_FAILURE, 0, _("malformed context diff at line %ld"), line_number); } if (old_line > old_last) { add_line (type, 0L, buffer + 2); old_last = old_line; new_last = new_line; } else { do { hold = hold->next; } while (hold->type == '+'); if (type != ' ') { hold->type = type; hold->number = 0; } } if (old_line == old_end) state = PARSE_NEW; break; case PARSE_NEW: if (*buffer == '\n') break; new_start = -1; if (sscanf (buffer, "--- %ld,%ld", &new_start, &new_end) != 2) { if (new_start < 0) error (EXIT_FAILURE, 0, _("context diff missing `new' header at line %ld"), line_number); new_end = new_start; } new_last = new_line; old_line = old_start ? old_start - 1 : 0; new_line = new_start ? new_start - 1 : 0; new_last += new_line; hold = head; if (!new_first) { new_first = new_start; while (hold->next && hold->next->type == '-') { hold = hold->next; hold->number = ++old_line; } } if (star_in_cdiff == '*' && new_last == new_end) { state = PARSE_CDIFF; break; } state = NEW_LINES; break; case NEW_LINES: if (buffer[0] == '\n') strcpy (buffer, " \n"); if (buffer[1] == '\n') strcpy (buffer + 1, " \n"); if (buffer[1] != ' ') error (EXIT_FAILURE, 0, _("malformed context diff at line %ld"), line_number); switch (*buffer) { case ' ': type = ' '; new_line++; old_line++; break; case '+': case '!': type = '+'; new_line++; break; default: error (EXIT_FAILURE, 0, _("malformed context diff at line %ld"), line_number); } if (old_line > old_last) { old_last = old_line; add_line (type, old_line, buffer + 2); new_last++; } else if (type != ' ') { add_line (type, 0L, buffer + 2); new_last++; } else { hold = hold->next; hold->number = old_line; while (hold->next && !hold->next->number && hold->next->type != ' ') { hold = hold->next; if (hold->type == '-') hold->number = ++old_line; } } if (old_line == old_end && new_line == new_end) state = PARSE_CDIFF; break; } } /* Produce output and exit. */ generate_output (); exit (EXIT_SUCCESS); } wdiff-1.2.1/src/pipes.c0000644000000000000000000000462011744500575011566 00000000000000/* Open a pipe to read from or write to a program without intermediary sh. Copyright (C) 1992, 1997, 2011 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 3 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, see . */ /* Written by David MacKenzie, rewritten by Martin von Gagern. */ #include "wdiff.h" #include #include #include static int openpipe (int dir, char *progname, va_list ap) { int fds[2]; char *args[100]; int argno = 0; /* Copy arguments into `args'. */ args[argno++] = progname; while ((args[argno++] = va_arg (ap, char *)) != NULL) ; if (pipe (fds) == -1) return 0; switch (fork ()) { case 0: /* Child. Write to pipe. */ close (fds[1 - dir]); /* Not needed. */ if (dup2 (fds[dir], dir) == -1) { error (0, errno, _("error redirecting stream")); _exit (2); } execvp (args[0], args); error (0, errno, _("failed to execute %s"), progname); _exit (2); /* 2 for `cmp'. */ case -1: /* Error. */ return 0; default: /* Parent. Read from pipe. */ close (fds[dir]); /* Not needed. */ return fds[1 - dir]; } } /* Open a pipe to read from a program without intermediary sh. Checks PATH. Sample use: stream = readpipe ("progname", "arg1", "arg2", (char *) 0); Return 0 on error. */ FILE * readpipe (char *progname, ...) { va_list ap; int fd; va_start (ap, progname); fd = openpipe (1, progname, ap); va_end (ap); return fdopen (fd, "r"); } /* Open a pipe to write to a program without intermediary sh. Checks PATH. Sample use: stream = writepipe ("progname", "arg1", "arg2", (char *) 0); Return 0 on error. */ FILE * writepipe (char *progname, ...) { va_list ap; int fd; va_start (ap, progname); fd = openpipe (0, progname, ap); va_end (ap); return fdopen (fd, "w"); } wdiff-1.2.1/src/mdiff.c0000644000000000000000000036012211744500575011535 00000000000000/* Find similar sequences in multiple files and report differences. Copyright (C) 1992, 1997, 1998, 1999, 2011 Free Software Foundation, Inc. Francois Pinard , 1997. 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 3 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, see . */ #include "wdiff.h" /* Define to 1 to compile in a debugging option. */ #define DEBUGGING 1 /* Define to the printed name of standard input. */ #define STDIN_PRINTED_NAME "" /* Define to 1 for requesting the capability of doing full comparisons, then not necessarily relying on checksums (both methods are available). If 0 instead, always rely on checksums and pack them with item types into the item structure: this yields faster code and disallows paranoid mode. */ #define SAFER_SLOWER 0 /* One may also, optionally, define a default PAGER_PROGRAM. This might be done using the --with-default-pager=PAGER configure switch. If PAGER_PROGRAM is undefined and neither the WDIFF_PAGER nor the PAGER environment variable is set, none will be used. */ /* We do termcap init ourselves, so pass -X. We might do coloring, so pass -R. */ #define LESS_DEFAULT_OPTS "-X -R" /*-----------------------. | Library declarations. | `-----------------------*/ #if DEBUGGING # include #else # define assert (Expr) #endif #include #include char *strstr (); #if HAVE_TPUTS # if HAVE_TERMCAP_H # include # else # if HAVE_TERMLIB_H # include # else # if HAVE_CURSES_H # include # else # if HAVE_NCURSES_H # include # endif # endif # if HAVE_TERM_H # include # endif # endif # endif #endif #include #include #include #include #include #include #include "regex.h" #define CHAR_SET_SIZE 256 #define MASK(Length) (~(~0 << (Length))) /*---------------------. | Local declarations. | `---------------------*/ /* Exit codes values. */ #define EXIT_DIFFERENCE 1 /* some differences found */ #define EXIT_ERROR 2 /* any other reason for exit */ /* Define pseudo short options for long options without short options. */ #define GTYPE_GROUP_FORMAT_OPTION 10 #define HORIZON_LINES_OPTION 11 #define LEFT_COLUMN_OPTION 12 #define LINE_FORMAT_OPTION 13 #define LTYPE_LINE_FORMAT_OPTION 14 #define SUPPRESS_COMMON_LINES_OPTION 15 /* The name this program was run with. */ const char *program_name; /* If nonzero, display usage information and exit. */ static int show_help = 0; /* If nonzero, print the version on standard output and exit. */ static int show_version = 0; /* Other variables. */ FILE *output_file; /* file or pipe to which we write output */ int exit_status = EXIT_SUCCESS; /* status at end of execution */ /* Options variables. */ #define OPTION_STRING \ "0123ABC::D:F:GHI:J:KL:NO:PQ:RS:TU::VWX:Y:Z:abc::dehijklmnopqrs:tu::vw:xyz" /* BC: D:F: HI: L:N P S:TU: X: abc dehi l n pqrs:tu vw:xy */ /* The line above gives GNU diff options, for reference. */ /* Long options equivalences. */ static const struct option long_options[] = { {"auto-pager", no_argument, NULL, 'A'}, {"avoid-wraps", no_argument, NULL, 'm'}, {"brief", no_argument, NULL, 'q'}, {"context", optional_argument, NULL, 'c'}, {"debugging", no_argument, NULL, '0'}, {"ed", no_argument, NULL, 'e'}, {"exclude-from", required_argument, NULL, 'X'}, {"exclude", required_argument, NULL, 'x'}, {"expand-tabs", no_argument, NULL, 't'}, {"GTYPE-group-format", required_argument, NULL, GTYPE_GROUP_FORMAT_OPTION}, {"help", no_argument, &show_help, 1}, {"horizon-lines", required_argument, NULL, HORIZON_LINES_OPTION}, {"ifdef", required_argument, NULL, 'D'}, {"ignore-all-space", no_argument, NULL, 'w'}, {"ignore-blank-lines", no_argument, NULL, 'B'}, {"ignore-case", no_argument, NULL, 'i'}, {"ignore-matching-lines", required_argument, NULL, 'I'}, {"ignore-space-change", no_argument, NULL, 'b'}, {"initial-tab", no_argument, NULL, 'T'}, {"item-regexp", required_argument, NULL, 'O'}, {"label", required_argument, NULL, 'L'}, {"left-column", no_argument, NULL, LEFT_COLUMN_OPTION}, {"less-mode", no_argument, NULL, 'k'}, {"line-format", required_argument, NULL, LINE_FORMAT_OPTION}, {"LTYPE-line-format", required_argument, NULL, LTYPE_LINE_FORMAT_OPTION}, {"minimal", no_argument, NULL, 'd'}, {"minimum-size", required_argument, NULL, 'J'}, {"new-file", no_argument, NULL, 'N'}, {"no-common", no_argument, NULL, '3'}, {"no-deleted", no_argument, NULL, '1'}, {"no-init-term", no_argument, NULL, 'K'}, /* backwards compatibility */ {"no-inserted", no_argument, NULL, '2'}, {"ignore-delimiters", no_argument, NULL, 'j'}, {"paginate", no_argument, NULL, 'l'}, {"printer", no_argument, NULL, 'o'}, {"rcs", no_argument, NULL, 'n'}, {"recursive", no_argument, NULL, 'r'}, {"relist-files", no_argument, NULL, 'G'}, {"report-identical-files", no_argument, NULL, 's'}, {"show-c-function", no_argument, NULL, 'p'}, {"show-function-line", required_argument, NULL, 'F'}, {"show-links", no_argument, NULL, 'R'}, {"side-by-side", no_argument, NULL, 'y'}, {"speed-large-files", no_argument, NULL, 'H'}, {"starting-file", required_argument, NULL, 'S'}, {"string", optional_argument, NULL, 'Z'}, {"suppress-common-lines", no_argument, NULL, SUPPRESS_COMMON_LINES_OPTION}, {"terminal", no_argument, NULL, 'z'}, {"text", no_argument, NULL, 'a'}, {"tolerance", required_argument, NULL, 't'}, {"unidirectional-new-file", no_argument, NULL, 'P'}, {"unified", optional_argument, NULL, 'u'}, {"verbose", no_argument, NULL, 'v'}, {"version", no_argument, &show_version, 1}, {"width", required_argument, NULL, 'w'}, {"word-mode", required_argument, NULL, 'W'}, {0, 0, 0, 0}, }; /*--------------------. | Available options. | `--------------------*/ /* If calling the pager automatically. */ static int autopager = 0; /* End/restart strings at end of lines. */ static int avoid_wraps = 0; /* If nonzero, output quite verbose detail of operations. */ static int debugging = 0; /* Initialize the termcap strings. */ static int find_termcap = -1; /* undecided yet */ /* Ignore all white space. */ static int ignore_all_space = 0; /* Ignore changes whose lines are all blank. */ static int ignore_blank_lines = 0; /* Consider upper-case and lower-case to be the same. */ static int ignore_case = 0; /* If nonzero, segregate matchable only items out of normal items. */ static int ignore_delimiters = 0; /* Ignore changes whose lines all match regular expression. */ static struct re_pattern_buffer **ignore_regexp_array = NULL; static int ignore_regexps = 0; /* Ignore changes in the amount of white space. */ static int ignore_space_change = 0; /* Make tabs line up by prepending a tab. */ static int initial_tab = 0; /* Try hard to find a smaller set of changes. Unimplemented. */ static int minimal = 0; /* Minimum size of a cluster, not counting ignored items. */ static int minimum_size = -1; /* undecided yet */ /* If using printer overstrikes. */ static int overstrike = 0; /* If output aimed to the "less" program (overstrike even whitespace). */ static int overstrike_for_less = 0; /* Pass the output through `pr' to paginate it. */ static int paginate = 0; /* List all input files with annotations. */ static int relist_files = 0; /* Give file and line references in annotated listings. */ static int show_links = 0; /* Assume large files and many scattered small changes. Unimplemented. */ static int speed_large_files = 0; /* If nonzero, show progress of operations. */ static int verbose = 0; /* Compare words, use REGEXP to define item. */ static int word_mode = 0; static struct re_pattern_buffer *item_regexp = NULL; /*---------------. | diff options. | `---------------*/ /* Treat all files as text. */ static int text = 0; /* Output regular context diffs. */ static int context = 0; /* Output unified context diffs or unidiffs. */ static int unified = 0; /* Use LABEL instead of file name. */ static const char *label = NULL; /* Show which C function each change is in. */ static int show_c_function = 0; /* Show the most recent line matching RE. */ static const char *show_function_line = NULL; /* Output only whether files differ. */ static int brief = 0; /* Output an ed script. */ static int ed = 0; /* Output an RCS format diff. */ static int rcs = 0; /* Output in two columns. */ static int side_by_side = 0; /* Output at most NUM characters per line. */ static int width = 130; /* Output only the left column of common lines. */ static int left_column = 0; /* Do not output common lines. */ static int suppress_common_lines = 0; /* Output merged file to show `#ifdef NAME' diffs. */ static const char *ifdef = NULL; /* GTYPE input groups with GFMT. */ static const char *gtype_group_format = NULL; /* All input lines with LFMT. */ static const char *line_format = NULL; /* LTYPE input lines with LFMT. */ static const char *ltype_line_format = NULL; /* Expand tabs to spaces in output. */ static int expand_tabs = 0; /* Recursively compare any subdirectories found. */ static int recursive = 0; /* Treat absent files as empty. */ static int new_file = 0; /* Treat absent first files as empty. */ static int unidirectional_new_file = 0; /* Report when two files are the same. */ static int report_identical_files = 0; /* Exclude files that match PAT. */ static const char *exclude = NULL; /* Exclude files that match any pattern in FILE. */ static const char *exclude_from = NULL; /* Start with FILE when comparing directories. */ static const char *starting_file = NULL; /* Keep NUM lines of the common prefix and suffix. */ static int horizon_lines = 2; /*----------------------. | mdiff draft options. | `----------------------*/ /* Maximum number of non-matching items for cluster members. */ static int tolerance = 0; /* Regular expressions. */ /*-------------------------------------------------------------------. | Compile the regex represented by STRING, diagnose and abort if any | | error. Returns the compiled regex structure. | `-------------------------------------------------------------------*/ static struct re_pattern_buffer * alloc_and_compile_regex (const char *string) { struct re_pattern_buffer *pattern; /* newly allocated structure */ const char *message; /* error message returned by regex.c */ pattern = (struct re_pattern_buffer *) xmalloc (sizeof (struct re_pattern_buffer)); memset (pattern, 0, sizeof (struct re_pattern_buffer)); pattern->buffer = NULL; pattern->allocated = 0; #if 0 /* FIXME */ pattern->translate = ignore_case ? (char *) folded_chars : NULL; #endif pattern->fastmap = xmalloc ((size_t) CHAR_SET_SIZE); message = re_compile_pattern (string, (int) strlen (string), pattern); if (message) error (EXIT_ERROR, 0, _("%s (for regexp `%s')"), message, string); /* The fastmap should be compiled before `re_match'. This would not be necessary if `re_search' was called first. */ re_compile_fastmap (pattern); #if WITH_REGEX /* Do not waste extra allocated space. */ if (pattern->allocated > pattern->used) { pattern->buffer = xrealloc (pattern->buffer, (size_t) pattern->used); pattern->allocated = pattern->used; } #endif return pattern; } /* Items. */ /* Each item has a type which is meaningful to the clustering process. NORMAL items and DELIMS items fully participate in cluster construction, yet only NORMAL items are worth participating into building the minimum size count, merely DELIMS items do not. WHITE items, even if they do exist in input files, are a little like if they were just not there: they are often skipped over. SENTINEL items do not correspond to any real input item, they are used to mark file boundaries, and may not compare equally to any other item. The names NORMAL, DELIMS, WHITE and SENTINEL are a bit generic and are used mainly to trigger the imagination of the reader. Practice may be quite different. For example, actual white items may well be classified as DELIMS or NORMAL, items having only delimiters may be seen as NORMAL, items making up a block comment may be considered as WHITE. Moreover, SENTINEL items could be introduced at function boundaries, say, if we wanted to limit cluster members to a single function, etc. */ enum type { NORMAL, /* meaningful, countable items */ DELIMS, /* items having only delimiters */ WHITE, /* white items */ SENTINEL /* file boundaries */ }; /* Comparison work is done on checksums of items, rather than input items themselves. The following array maintains one entry for each item, whether a real item or a sentinel. Checksums, which are meaningful only for NORMAL or DELIMS items, are computed so they ignore parts of the item which are not really meaningful for the purpose of comparisons. If SAFER_SLOWER has been selected, checksums may be avoided and pointers used instead. For pointers to occupy the full space they might need, the type bits are kept apart but tightly packed. Otherwise, the TYPE bits are part of the structured item, eating out some chekcsum space. */ #define BITS_PER_CHAR 8 #define BITS_PER_TYPE 2 #define BITS_PER_WORD (sizeof (unsigned) * BITS_PER_CHAR) #define TYPES_PER_WORD (BITS_PER_WORD / BITS_PER_TYPE) #if SAFER_SLOWER # define ITEM union item union item { unsigned checksum; char *pointer; }; static union item *item_array = NULL; static unsigned *type_array = NULL; static int items = 0; static inline enum type item_type (ITEM * item) { int position = item - item_array; int shift = position % TYPES_PER_WORD * BITS_PER_TYPE; unsigned *pointer = type_array + position / TYPES_PER_WORD; return (enum type) (MASK (BITS_PER_TYPE) & *pointer >> shift); } static inline void set_item_type (ITEM * item, enum type type) { int position = item - item_array; int shift = position % TYPES_PER_WORD * BITS_PER_TYPE; unsigned *pointer = type_array + position / TYPES_PER_WORD; *pointer &= ~MASK (BITS_PER_TYPE) << shift; *pointer |= type << shift; } #else /* not SAFER_SLOWER */ # define ITEM struct item struct item { enum type type:BITS_PER_TYPE; unsigned checksum:BITS_PER_WORD - BITS_PER_TYPE; }; static struct item *item_array = NULL; static int items = 0; static inline enum type item_type (ITEM * item) { return item->type; } static inline void set_item_type (ITEM * item, enum type type) { item->type = type; } #endif /* not SAFER_SLOWER */ #if DEBUGGING /*---------------------. | Dump a given INPUT. | `---------------------*/ static void dump_item (ITEM * item) { static const char *item_type_string[4] = { "", "delim", "white", "SENTIN" }; fprintf (stderr, "(%ld)\t%s\t%08x\n", (long) (item - item_array), item_type_string[item_type (item)], item->checksum); } /*------------------. | Dump all items. | `------------------*/ static void dump_all_items (void) { int counter; fputs ("\f\n", stderr); for (counter = 0; counter < items; counter++) dump_item (item_array + counter); } #endif /* DEBUGGING */ /*-------------------------------------------------------------------. | Move item pointer forward or backward, skipping over white items. | `-------------------------------------------------------------------*/ #define FORWARD_ITEM(Pointer) \ do { Pointer++; } while (item_type (Pointer) == WHITE) #define BACKWARD_ITEM(Pointer) \ do { Pointer--; } while (item_type (Pointer) == WHITE) /*------------------------------------------------------------------. | Sort helper. Compare two item indices. Lower indices go first. | `------------------------------------------------------------------*/ static int compare_for_positions (const void *void_first, const void *void_second) { #define value1 *((int *) void_first) #define value2 *((int *) void_second) return value1 - value2; #undef value1 #undef value2 } /*-------------------------------------------------------------------------. | Sort helper. Compare two item indices. Items having identical | | checksums should be brought together. Whenever two checksums are equal, | | items are then ordered by the checksum of the following items, and this | | way going forward until a difference is found. | `-------------------------------------------------------------------------*/ static int compare_for_checksum_runs (const void *void_first, const void *void_second) { #define value1 *((int *) void_first) #define value2 *((int *) void_second) ITEM *item1 = item_array + value1; ITEM *item2 = item_array + value2; int result; while (1) { /* Order checksums. */ result = item1->checksum - item2->checksum; if (result) return result; /* Seek forward for a difference. */ FORWARD_ITEM (item1); FORWARD_ITEM (item2); /* Sentinels are never equal (unless really the same). They go after all checksums, and compare so to stabilise the sort. */ if (item_type (item1) == SENTINEL) return item_type (item2) == SENTINEL ? value1 - value2 : 1; if (item_type (item2) == SENTINEL) return -1; } #undef value1 #undef value2 } /*-----------------. | Add a new item. | `-----------------*/ static inline void new_item (enum type type, int checksum) { ITEM *item; if (items % (64 * TYPES_PER_WORD) == 0) { item_array = (ITEM *) xrealloc (item_array, (items + 64 * TYPES_PER_WORD) * sizeof (ITEM)); #if SAFER_SLOWER type_array = (unsigned *) xrealloc (type_array, (items / TYPES_PER_WORD + 64) * sizeof (unsigned)); #endif } item = item_array + items++; set_item_type (item, type); item->checksum = checksum; } /*---------------------. | Add a new sentinel. | `---------------------*/ static void new_sentinel (void) { new_item (SENTINEL, 0); } /*------------------------------------------------------------------------. | Find how many identical normal items follow, given two start items. | | Ensure matchable items correspond to each other, but skip over white | | items. The starting items may not be sentinels nor white items. Fuzzy | | items, if any, ought to be embedded and correspond to each other. | `------------------------------------------------------------------------*/ static int identical_size (int index1, int index2) { ITEM *item1 = item_array + index1; ITEM *item2 = item_array + index2; int normal_count = 0; int mismatch_count = 0; while (1) { if (item1->checksum == item2->checksum #if 0 /* Just assume that identical checksums imply identical types. */ && item_type (item1) == item_type (item2) #endif ) { if (item_type (item1) == NORMAL) normal_count++; } else if (normal_count > 0 && mismatch_count < tolerance) { if (item_type (item1) == NORMAL && item_type (item2) == NORMAL) normal_count++; mismatch_count++; } else break; FORWARD_ITEM (item1); FORWARD_ITEM (item2); if (item_type (item1) == SENTINEL || item_type (item2) == SENTINEL) break; } return normal_count; } /*-----------------------------------------------------------------------. | Count normal items from START to FINISH (excluded). However, if there | | are MAXIMUM or more normal input items, return a negative number. | `-----------------------------------------------------------------------*/ static int item_distance (int start, int finish, int maximum) { int counter = 0; ITEM *item; assert (start < finish); assert (maximum > 0); for (item = item_array + start; item < item_array + finish; item++) if (item_type (item) == NORMAL) { counter++; if (counter == maximum) return -1; } return counter; } /* Files. */ /* All input files use a single continuous item counting scheme. To revert item numbers back to actual file and item references, the following array maintains the cumulated number items seen prior to the beginning of each file, for each file given as argument to the program. To ease some algorithms, a few sentinel items exist: one before the first file, one between each file, and one after the last file. Each file counts all sentinels preceding it. */ struct input { const char *file_name; /* name of input file */ struct stat stat_buffer; /* stat information for the file */ char nick_name[4]; /* short name of the file */ FILE *file; /* file being read */ char *memory_copy; /* buffer containing the file, or NULL */ /* Reading the file, one line or one character at a time. */ char *line; /* line from file */ char *cursor; /* cursor into line, or NULL at end of file */ char *limit; /* limit value for cursor */ size_t line_allocated; /* allocated length of line */ /* Rescanning of the file, one item at a time. */ int first_item; /* index of first item in this file */ int item_limit; /* one past last item index in this file */ int item; /* index of next item to consider */ /* Merging views. */ int *indirect_cursor; /* cursor into indirect_array */ int *indirect_limit; /* one past limit value of indirect_cursor */ /* Output control. */ short listing_allowed; /* if difference output allowed */ const char *user_start; /* user string before difference */ const char *user_stop; /* user string after difference */ const char *term_start; /* terminal string before difference */ const char *term_stop; /* terminal string after difference */ }; static struct input *input_array = NULL; static int inputs = 0; int common_listing_allowed; /* if common output allowed */ /* Convenience macros. */ #define left (input_array + 0) #define right (input_array + 1) #define INPUT_MEMBER(Input) \ (member_array + *(Input)->indirect_cursor) #define INPUT_CLUSTER(Input) \ (cluster_array + member_array[*(Input)->indirect_cursor].cluster_number) #if DEBUGGING /*---------------------. | Dump a given INPUT. | `---------------------*/ static void dump_input (struct input *input) { fprintf (stderr, "%s1,%d\t%7d\t%s\n", input->nick_name, input->item_limit - input->first_item, input->first_item, input->file_name); } /*------------------. | Dump all inputs. | `------------------*/ static void dump_all_inputs (void) { int counter; fputs ("\f\n", stderr); for (counter = 0; counter < inputs; counter++) dump_input (input_array + counter); } #endif /* DEBUGGING */ /*---------------------------------------------------------------------. | Swallow the whole INPUT into a contiguous region of memory. In the | | INPUT structure, file name and stat buffer are already initialised. | `---------------------------------------------------------------------*/ /* Define to reallocation increment when swallowing input. */ #define SWALLOW_BUFFER_STEP 20000 static void swallow_input (struct input *input) { int handle; /* file descriptor number */ size_t allocated_length; /* allocated length of memory buffer */ size_t length; /* total length read so far */ int read_length; /* number of character gotten on last read */ /* Standard input is already opened. In all other cases, open the file from its name. */ if (strcmp (input->file_name, STDIN_PRINTED_NAME) == 0) handle = fileno (stdin); else if (handle = open (input->file_name, O_RDONLY), handle < 0) error (EXIT_ERROR, errno, "%s", input->file_name); /* If the file is a plain, regular file, allocate the memory buffer all at once and swallow the file in one blow. In other cases, read the file repeatedly in smaller chunks until we have it all, reallocating memory once in a while, as we go. */ #if MSDOS /* On MSDOS, we cannot predict in memory size from file size, because of end of line conversions. */ #else if (S_ISREG (input->stat_buffer.st_mode)) { input->memory_copy = (char *) xmalloc ((size_t) input->stat_buffer.st_size); if (read (handle, input->memory_copy, (size_t) input->stat_buffer.st_size) != input->stat_buffer.st_size) error (EXIT_ERROR, errno, "%s", input->file_name); } else #endif { input->memory_copy = xmalloc ((size_t) SWALLOW_BUFFER_STEP); allocated_length = SWALLOW_BUFFER_STEP; length = 0; while (read_length = read (handle, input->memory_copy + length, allocated_length - length), read_length > 0) { length += read_length; if (length == allocated_length) { allocated_length += SWALLOW_BUFFER_STEP; input->memory_copy = (char *) xrealloc (input->memory_copy, allocated_length); } } if (read_length < 0) error (EXIT_ERROR, errno, "%s", input->file_name); } /* Close the file, but only if it was not the standard input. */ if (handle != fileno (stdin)) close (handle); } /*-------------------------------------------. | Register a file NAME to be later studied. | `-------------------------------------------*/ static void new_input (const char *name) { static int stdin_swallowed = 0; struct input *input; /* Add a new input file descriptor, read in stdin right away. */ if (inputs % 16 == 0) input_array = (struct input *) xrealloc (input_array, (inputs + 16) * sizeof (struct input)); input = input_array + inputs++; if (strcmp (name, "") == 0 || strcmp (name, "-") == 0) if (stdin_swallowed) error (EXIT_ERROR, 0, _("only one file may be standard input")); else { input->file_name = STDIN_PRINTED_NAME; if (fstat (fileno (stdin), &input->stat_buffer) != 0) error (EXIT_ERROR, errno, "%s", input->file_name); swallow_input (input); stdin_swallowed = 1; } else { input->file_name = name; if (stat (input->file_name, &input->stat_buffer) != 0) error (EXIT_ERROR, errno, "%s", input->file_name); if ((input->stat_buffer.st_mode & S_IFMT) == S_IFDIR) error (EXIT_ERROR, 0, _("directories not supported")); input->memory_copy = NULL; } } /*-------------------------------. | Prepare INPUT for re-reading. | `-------------------------------*/ static void open_input (struct input *input) { if (input->memory_copy) input->limit = input->memory_copy; else { if (input->file = fopen (input->file_name, "r"), !input->file) error (EXIT_ERROR, errno, "%s", input->file_name); input->line = NULL; } input->line_allocated = 0; } static void close_input (struct input *input) { if (input->line_allocated > 0) free (input->line); if (!input->memory_copy) fclose (input->file); } /*-------------------------------------------------------------------------. | Prepare INPUT for next line, then available from INPUT->LINE through | | INPUT->LIMIT (excluded). INPUT->CURSOR will point to first character of | | the line, or will be NULL at end of file. | `-------------------------------------------------------------------------*/ static void input_line (struct input *input) { if (input->memory_copy) { const char *limit = input->memory_copy + input->stat_buffer.st_size; char *cursor; input->line = input->limit; for (cursor = input->line; cursor < limit && *cursor != '\n'; cursor++) ; if (cursor < limit) { cursor++; input->cursor = input->line; } else if (cursor == input->line) input->cursor = NULL; else input->cursor = input->line; input->limit = cursor; } else { int length = getline (&input->line, &input->line_allocated, input->file); if (length < 0) input->cursor = NULL; else { input->cursor = input->line; input->limit = input->line + length; } } } /*-------------------------------------------------------------------------. | Prepare INPUT for next character, then available through *INPUT->CURSOR, | | unless INPUT->CURSOR is NULL for indicating end of file. | `-------------------------------------------------------------------------*/ static void input_character_helper (struct input *input) { int counter; /* Read in a new line, but skip ignorable ones. FIXME: This is just not right. Ignorable lines may need copying! */ do { input_line (input); /* Possibly check if the line should be ignored. */ for (counter = 0; counter < ignore_regexps; counter++) if (re_match (ignore_regexp_array[counter], input->line, input->limit - input->line, 0, NULL) > 0) break; } while (counter < ignore_regexps); assert (!input->cursor || input->cursor < input->limit); } static inline void input_character (struct input *input) { assert (input->cursor); input->cursor++; if (input->cursor == input->limit) input_character_helper (input); } /*------------------------------------------------------------. | Construct descriptors for all items of a given INPUT file. | `------------------------------------------------------------*/ static void study_input (struct input *input) { #if SAVE_AND_SLOW # define ADJUST_CHECKSUM(Character) \ checksum = (checksum << 5) + (checksum >> (BITS_PER_WORD - 5)) \ + (Character & 0xFF) #else # define ADJUST_CHECKSUM(Character) \ checksum = (checksum << 5) + \ (checksum >> (BITS_PER_WORD - BITS_PER_TYPE - 5)) \ + (Character & 0xFF) #endif int item_count; /* number of items read */ char *buffer = NULL; /* line buffer */ int length = 0; /* actual line length in buffer */ /* Read the file and checksum all items. */ if (verbose) fprintf (stderr, _("Reading %s"), input->file_name); open_input (input); input->first_item = items; item_count = 0; /* Read all lines. */ while (input_line (input), input->cursor) { int counter; /* Possibly check if the line should be ignored. */ for (counter = 0; counter < ignore_regexps; counter++) if (re_match (ignore_regexp_array[counter], input->line, input->limit - input->line, 0, NULL) > 0) break; if (counter < ignore_regexps) { if (!word_mode) new_item (WHITE, 0); continue; } /* The line is not being ignored. */ /* We prefer `cursor < buffer + length' over `*cursor' in the loop tests, so embedded NULs can be handled. */ if (word_mode) { char *cursor = input->line; unsigned checksum; /* FIXME: Might be simplified out of the line loop. */ while (cursor < input->limit) { while (cursor < input->limit && isspace (*cursor)) cursor++; if (cursor < input->limit) { checksum = 0; while (cursor < input->limit && !isspace (*cursor)) { ADJUST_CHECKSUM (*cursor); cursor++; } new_item (NORMAL, checksum); item_count++; } } } else { char *cursor; unsigned checksum = 0; int line_has_delims = 0; int line_has_alnums = 0; for (cursor = input->line; cursor < input->limit; cursor++) if (isspace (*cursor)) { if (!ignore_all_space) { if (ignore_space_change) { ADJUST_CHECKSUM (' '); while (cursor + 1 < buffer + length && isspace (cursor[1])) cursor++; } else ADJUST_CHECKSUM (*cursor); } } else if (isalpha (*cursor)) { line_has_alnums = 1; if (ignore_case && islower (*cursor)) { char character = toupper (*cursor); ADJUST_CHECKSUM (character); } else ADJUST_CHECKSUM (*cursor); } else if (isdigit (*cursor)) { line_has_alnums = 1; ADJUST_CHECKSUM (*cursor); } else { line_has_delims = 1; ADJUST_CHECKSUM (*cursor); } /* Register the checksum. */ if (line_has_alnums) new_item (NORMAL, checksum); else if (line_has_delims) new_item (ignore_delimiters ? DELIMS : NORMAL, checksum); else if (ignore_blank_lines) new_item (WHITE, checksum); else new_item (ignore_delimiters ? DELIMS : NORMAL, checksum); item_count++; } } input->item_limit = items; /* Cleanup. */ close_input (input); if (verbose) fprintf (stderr, ngettext (", %d item\n", ", %d items\n", item_count), item_count); #undef ADJUST_CHECKSUM } /*------------------------. | Study all input files. | `------------------------*/ /* If all input files fit in MAXIMUM_TOTAL_BUFFER, they are all swallowed in memory at once. Otherwise, they are read from disk one line at a time. A fixed value is far than ideal: we should consider how much real memory space is available, and I do not know how to do this portably. */ #define MAXIMUM_TOTAL_BUFFER 500000 static void study_all_inputs (void) { struct input *input; int total_size; /* Compute nick names for all files. */ if (inputs == 2) { /* If only two input files, just mimick `diff' output. */ strcpy (input_array[0].nick_name, "-"); strcpy (input_array[1].nick_name, "+"); } else { int name_length = 1; int file_limit = 26; /* Choose nick names as sequences of lower case letters. */ while (inputs > file_limit) { name_length++; file_limit *= 26; } for (input = input_array; input < input_array + inputs; input++) { int value = input - input_array; char *cursor = input->nick_name + name_length; *cursor-- = '\0'; while (cursor >= input->nick_name) { *cursor-- = value % 26 + 'a'; value /= 26; } } } /* Swallow all files not already copied in memory, if room permits. */ total_size = 0; for (input = input_array; input < input_array + inputs; input++) total_size += input->stat_buffer.st_size; if (total_size <= MAXIMUM_TOTAL_BUFFER) for (input = input_array; input < input_array + inputs; input++) if (!input->memory_copy) swallow_input (input); /* Compute all checksums. */ new_sentinel (); for (input = input_array; input < input_array + inputs; input++) { study_input (input); new_sentinel (); } if (verbose) { fprintf (stderr, _("Read summary:")); fprintf (stderr, ngettext (" %d file,", " %d files,", inputs), inputs); fprintf (stderr, ngettext (" %d item\n", " %d items\n", items - inputs - 1), items - inputs - 1); } #if DEBUGGING if (debugging) { dump_all_items (); dump_all_inputs (); } #endif } /* Item references. */ struct reference { struct input *input; /* input file for reference */ int number; /* item number for reference */ }; /*-------------------------------------------------------------------------. | Explicit a reference for internal item NUMBER. The first sentinel has | | line 0, other sentinels have one more than number of lines in the file. | `-------------------------------------------------------------------------*/ static struct reference get_reference (int number) { struct input *input; struct reference result; assert (number < items); /* FIXME: if we are studying many files, linear searches become a bit crude, binary searches would be better in such cases. */ for (input = input_array; number >= input->item_limit + 1; input++) ; result.input = input; result.number = number - input->first_item + 1; return result; } /*------------------------------------------------------------------------. | Produce a short string referencing an internal item NUMBER. The result | | is statically allocated into a ring of little buffers. | `------------------------------------------------------------------------*/ static char * reference_string (int number) { #define RING_LENGTH 4 struct reference reference; static char buffer[RING_LENGTH][20]; static int next = RING_LENGTH - 1; if (next == RING_LENGTH - 1) next = 0; else next++; reference = get_reference (number); if (number == reference.input->item_limit) sprintf (buffer[next], "%s.EOF", reference.input->nick_name); else sprintf (buffer[next], "%s%d", reference.input->nick_name, reference.number); return buffer[next]; #undef RING_LENGTH } #if DEBUGGING /*-------------------------------------------------------------------------. | Dump a reference to a given item in compilation error format. Ensure at | | least one space, and in fact, enough to align diagnostics as we go. | `-------------------------------------------------------------------------*/ static void dump_reference (int item) { struct reference reference; char buffer[20]; static int last_width = 0; int width; reference = get_reference (item); sprintf (buffer, "%d", reference.number); fprintf (stderr, "%s:%s: ", reference.input->file_name, buffer); width = strlen (reference.input->file_name) + strlen (buffer); if (width < last_width) while (width++ < last_width) putc (' ', stderr); else last_width = width; } #endif /* DEBUGGING */ /* Clusters and members. */ /* A cluster represents one set of items which is repeated at two or more places in the input files, while each repetition is called a cluster member. The member size is an item count which excludes white items. */ struct cluster { short first_member; /* index in member_array array */ short item_count; /* size of each member */ }; static struct cluster *cluster_array = NULL; int clusters = 0; /* A cluster member starts at some item number and runs for a given number of items. Ignorable items may be embedded in a cluster member, so cluster members of a single cluster may have different lengths, but a cluster member never starts nor end with an white item. Sentinels are never part of any cluster. By construction, all cluster members of a same cluster are next to each other. */ struct member { short cluster_number; /* ordinal of cluster, counted from 0 */ int first_item; /* number of first item for this member */ }; static struct member *member_array = NULL; static int members = 0; /* Convenience macros. */ #define MEMBER_LIMIT(Cluster) \ (member_array + ((Cluster) + 1)->first_member) #define MEMBERS(Cluster) \ (((Cluster) + 1)->first_member - (Cluster)->first_member) /*---------------------------------------------------------------------. | Find how many input items are part of a given cluster MEMBER. The | | returned count includes embedded items having less significance, but | | exclude last white items. | `---------------------------------------------------------------------*/ static int real_member_size (struct member *member) { int number = cluster_array[member->cluster_number].item_count; ITEM *item = item_array + member->first_item; ITEM *last_item; /* Skip over NUMBER normal items. */ while (number > 0) switch (item_type (item)) { case NORMAL: number--; /* Fall through. */ case DELIMS: case WHITE: item++; break; case SENTINEL: /* Cannot happen. */ abort (); } /* Skip over supplementary matchable or white items, return the item count as for the last normal or matchable item. */ last_item = item; while (1) switch (item_type (item)) { case NORMAL: case SENTINEL: return last_item - item_array - member->first_item; case DELIMS: last_item = item++; break; case WHITE: item++; break; } } #if DEBUGGING /*-----------------------. | Dump a given CLUSTER. | `-----------------------*/ static void dump_cluster (struct cluster *cluster) { int counter; struct member *member; fprintf (stderr, "{%ld},%d", (long) (cluster - cluster_array), cluster->item_count); for (counter = cluster->first_member; counter < (cluster + 1)->first_member; counter++) { member = member_array + counter; fprintf (stderr, "%c[%d] %s,%d", counter == cluster->first_member ? '\t' : ' ', counter, reference_string (member->first_item), real_member_size (member)); } putc ('\n', stderr); } /*--------------------. | Dump all clusters. | `--------------------*/ static void dump_all_clusters (void) { int counter; fputs ("\f\n", stderr); for (counter = 0; counter < clusters; counter++) dump_cluster (cluster_array + counter); } /*----------------------. | Dump a given MEMBER. | `----------------------*/ static void dump_member (struct member *member) { fprintf (stderr, " [%ld]\t{%d}\t%s,%d+\n", (long) (member - member_array), member->cluster_number, reference_string (member->first_item), cluster_array[member->cluster_number].item_count); } /*-------------------. | Dump all members. | `-------------------*/ static void dump_all_members (void) { int counter; fputs ("\f\n", stderr); for (counter = 0; counter < members; counter++) dump_member (member_array + counter); } #endif /* DEBUGGING */ /*----------------------------------------------------------------------. | Sort helper. Compare two member indices, using the original input | | order. When two members have the same start, put the longest first. | `----------------------------------------------------------------------*/ static int compare_for_member_start (const void *void_first, const void *void_second) { #define value1 *((int *) void_first) #define value2 *((int *) void_second) int result; struct member *member1 = member_array + value1; struct member *member2 = member_array + value2; result = member1->first_item - member2->first_item; if (result) return result; return (cluster_array[member2->cluster_number].item_count - cluster_array[member1->cluster_number].item_count); #undef value1 #undef value2 } /*---------------------------------------------------------------------. | Add a new cluster, for which each member has COUNT non-white items. | `---------------------------------------------------------------------*/ static inline void new_cluster (int count) { struct cluster *cluster; if (clusters % 8 == 0) cluster_array = (struct cluster *) xrealloc (cluster_array, (clusters + 8) * sizeof (struct cluster)); cluster = cluster_array + clusters++; cluster->first_member = members; cluster->item_count = count; } /*---------------------------. | Add a new cluster member. | `---------------------------*/ static inline void new_member (int item) { struct member *member; if (members % 8 == 0) member_array = (struct member *) xrealloc (member_array, (members + 8) * sizeof (struct member)); member = member_array + members++; member->cluster_number = clusters - 1; member->first_item = item; } /*------------------------------------. | Output a cluster explanation line. | `------------------------------------*/ static void explain_member (char prefix, struct member *quote) { struct cluster *cluster = cluster_array + quote->cluster_number; struct member *member; int counter; struct reference reference; putc (prefix, output_file); for (member = member_array + cluster->first_member; member < MEMBER_LIMIT (cluster); member++) { reference = get_reference (member->first_item); fprintf (output_file, member == quote ? " %s%d,%d" : " (%s%d,%d)", reference.input->nick_name, reference.number, real_member_size (member)); } putc ('\n', output_file); } /*----------------------. | Search for clusters. | `----------------------*/ static void prepare_clusters (void) { /* The array of indirect items have similar contents next to each other. */ int *indirect_item_array = xmalloc (items * sizeof (int)); int indirect_items = 0; /* number of entries in indirect_item_array */ int *cluster_set; /* index for first member in set of clusters */ int *member_set; /* index for first member in current cluster */ /* For a given index, SIZE_ARRAY[index] describes the common item size between item CLUSTER_SET[index] and CLUSTER_SET[index + 1]. */ int *size_array = NULL; int allocated_sizes = 0; /* allocated entries for size_array */ int sizes; /* number of entries in size_array */ int *size; /* cursor in size_array */ /* Here is a bag of starts indices for members of the same cluster (having all CLUSTER_SIZE worth items). These indices are values selected out of INDIRECT_ITEM_ARRAY, between FIRST and LAST (included). */ int *sorter_array = NULL; /* for ensuring members are in nice order */ int sorters; /* number of members in sorter_array */ int *sorter; /* cursor into sorter_array */ int *cursor; /* cursor into sorter_array */ ITEM *item; /* cursor in item_array */ int cluster_size; /* size of current cluster */ int size_value; /* current size, or previous cluster size */ int counter; /* all purpose counter */ int checksum; /* possible common cheksum of previous items */ /* Sort indices. */ #if DEBUGGING if (debugging) fprintf (stderr, _("Sorting")); #endif for (counter = 0; counter < items; counter++) if (item_type (item_array + counter) == NORMAL || item_type (item_array + counter) == DELIMS) indirect_item_array[indirect_items++] = counter; if (indirect_items < items) indirect_item_array = (int *) xrealloc (indirect_item_array, indirect_items * sizeof (int)); qsort (indirect_item_array, indirect_items, sizeof (int), compare_for_checksum_runs); /* Find all clusters. */ #if DEBUGGING if (debugging) fprintf (stderr, _(", clustering")); #endif for (cluster_set = indirect_item_array; cluster_set + 1 < indirect_item_array + indirect_items; cluster_set += sizes + 1) { /* Find all members beginning with the same run of checksums. These will be later distributed among a few clusters of various sizes, and so, are common to the incoming set of clusters. */ sizes = 0; while (cluster_set + sizes + 1 < indirect_item_array + indirect_items) { size_value = identical_size (cluster_set[sizes], cluster_set[sizes + 1]); if (size_value < minimum_size) break; if (sizes == allocated_sizes) { allocated_sizes += 32; size_array = (int *) xrealloc (size_array, allocated_sizes * sizeof (int)); sorter_array = (int *) xrealloc (sorter_array, (allocated_sizes + 1) * sizeof (int)); } size_array[sizes++] = size_value; } /* This test is not necessary for the algorithm to work, but this fairly common case might be worth a bit of speedup. Maybe! */ if (sizes == 0) continue; /* Output all clusters of the set from the tallest to the shortest. Here, size refers to number of items in members, and not to the number of members in a cluster. (In fact, it is very expectable that shortest clusters have more members.) */ cluster_size = 0; while (1) { /* Discover the maximum cluster size not yet processed. */ size_value = cluster_size; cluster_size = 0; for (size = size_array; size < size_array + sizes; size++) if ((size_value == 0 || *size < size_value) && *size > cluster_size) cluster_size = *size; /* If the cluster size did not decrease, we cannot do more. */ if (cluster_size == 0) break; /* Consider all consecutive members having at least the cluster size in common: they form a cluster. But any gap in the sequence represents a change of cluster: same length, but different contents. */ size = size_array; while (1) { /* Find all members for one cluster. However, after having skipped over the gap, just break out if nothing remains. */ while (size < size_array + sizes && *size < cluster_size) size++; if (size == size_array + sizes) break; member_set = cluster_set + (size - size_array); sorters = 1; while (size < size_array + sizes && *size >= cluster_size) { sorters++; size++; } /* No cluster may be a proper subset of another. That is, if all putative members are preceded by identical items, then they are indeed part of a bigger cluster, which has already been or will later be caught. In such case, just avoid retaining them here. This also prevents quadratic behaviour which, I presume, would be heavy on computation. This test may be defeated by tolerant matches. Maybe tolerant matches will just go away. Surely, tolerant matches later require subset member elimination. */ item = item_array + member_set[0]; BACKWARD_ITEM (item); if (item_type (item) != SENTINEL) { checksum = item->checksum; for (counter = 1; counter < sorters; counter++) { item = item_array + member_set[counter]; BACKWARD_ITEM (item); if (item_type (item) == SENTINEL || item->checksum != checksum) break; } if (counter == sorters) continue; } /* Skip any cluster member overlapping with the previous member of the same cluster. If doing so, chop the size of the first member just before the overlap point: this should later trigger a cluster having this reduced size. */ memcpy (sorter_array, member_set, sorters * sizeof (int)); qsort (sorter_array, sorters, sizeof (int), compare_for_positions); cursor = sorter_array; for (counter = 1; counter < sorters; counter++) { size_value = item_distance (*cursor, sorter_array[counter], cluster_size); if (size_value < 0) *++cursor = sorter_array[counter]; else { int counter2; for (counter2 = 0; counter2 < sizes; counter2++) if (cluster_set[counter2] == *cursor || cluster_set[counter2] == sorter_array[counter]) { assert (size_value < size_array[counter2]); size_array[counter2] = size_value; break; } assert (counter2 < sizes); } } sorters = cursor - sorter_array + 1; /* Create the cluster only if at least two members remain. */ if (sorters >= 2) { new_cluster (cluster_size); for (counter = 0; counter < sorters; counter++) new_member (sorter_array[counter]); } } } } /* Add a sentinel cluster at the end. */ new_cluster (0); clusters--; /* Cleanup. */ free (indirect_item_array); free (size_array); #if DEBUGGING if (debugging) { fprintf (stderr, _(", done\n")); dump_all_clusters (); } #endif } /*------------------------------------------------------------. | Check if a MEMBER is active in some file other than INPUT. | `------------------------------------------------------------*/ static int active_elsewhere (struct member *member, struct input *input) { struct cluster *cluster = cluster_array + member->cluster_number; /* FIXME: maybe it is sufficient to test first and last member only? */ for (member = member_array + cluster->first_member; member < MEMBER_LIMIT (cluster); member++) if (member->first_item < input->first_item || member->first_item + real_member_size (member) > input->item_limit) return 1; return 0; } /* Indirect members. */ /* The following array gives indices into the array of cluster members, member_array above, in such a way that the succession of indices points to members in the original textual order of input files. */ static int *indirect_array; static int indirects; /*----------------------------------------. | Compute the array of indirect members. | `----------------------------------------*/ static void prepare_indirects (void) { int counter; struct member *member; struct input *input; int duplicated_items; #if DEBUGGING if (debugging) fprintf (stderr, _("Sorting members")); #endif indirect_array = xmalloc (members * sizeof (int)); for (counter = 0; counter < members; counter++) indirect_array[counter] = counter; if (members > 1) qsort (indirect_array, members, sizeof (int), compare_for_member_start); indirects = members; #if DEBUGGING if (debugging) { fprintf (stderr, _(", done\n")); fputs ("\f\n", stderr); for (counter = 0; counter < indirects; counter++) { member = member_array + indirect_array[counter]; dump_reference (member->first_item); dump_member (member_array + indirect_array[counter]); if (counter < indirects - 1 && (member_array[indirect_array[counter + 1]].first_item < member->first_item + real_member_size (member))) { dump_reference (member->first_item); fprintf (stderr, "Overlapping with next member\n"); } } } #endif if (verbose) { fprintf (stderr, _("Work summary:")); fprintf (stderr, ngettext (" %d cluster,", " %d clusters,", clusters), clusters); fprintf (stderr, ngettext (" %d member\n", " %d members\n", members), members); } } /* Mergings. */ /* A merging is an indication for advancing in one given input file, by catching up all items (differences) until a cluster member, and then skipping over that member. Mergings are ordered so to maintain parallel advancement between files. A merging group is a fragment in the sequence of consecutive mergings, all mergings in a group have members from the same cluster. A merging group is then variable in length, a flag in the merging sequence signals the beginning of a new group. However, some cluster members might have to be considered as differences preceding the more genuine member of a group, because they represent cross matches which are not easily represented in a parallel sequence. Another flag signals such members, which then escape the rule that all members of a group share the same cluster. */ struct merging { unsigned group_flag:1; /* beginning of a new merge group */ unsigned cross_flag:1; /* member isolated by cross matches */ unsigned input_number:14; /* input file designator */ unsigned member_number:16; /* member designator */ }; static struct merging *merging_array = NULL; static int mergings = 0; #if DEBUGGING /*--------------------. | Dump all mergings. | `--------------------*/ static void dump_all_mergings (void) { struct merging *merging; struct reference reference; fputs ("\f\n", stderr); for (merging = merging_array; merging < merging_array + mergings; merging++) { if (merging->group_flag) { if (merging > merging_array) putc ('\n', stderr); fprintf (stderr, "<%ld>", (long) (merging - merging_array)); } reference = get_reference (member_array[merging->member_number].first_item); fprintf (stderr, "\t[%d]%c%s%d", merging->member_number, merging->cross_flag ? 'X' : ' ', reference.input->nick_name, reference.number); assert (reference.input == input_array + merging->input_number); } putc ('\n', stderr); } #endif /* DEBUGGING */ /*------------------------------------------------------------------. | After having output PREFIX, explain the merging group starting at | | MERGING and extending until LIMIT. | `------------------------------------------------------------------*/ static void explain_group (char prefix, struct merging *merging, struct merging *limit) { struct cluster *cluster = cluster_array + member_array[merging->member_number].cluster_number; int counter; struct input *input; struct member *member; struct merging *cursor; struct reference reference; putc (prefix, output_file); for (counter = cluster->first_member; counter < (cluster + 1)->first_member; counter++) { member = member_array + counter; reference = get_reference (member->first_item); for (cursor = merging; cursor < limit && cursor->member_number != counter; cursor++) ; fprintf (output_file, cursor < limit ? " %s%d,%d" : " (%s%d,%d)", reference.input->nick_name, reference.number, real_member_size (member)); } putc ('\n', output_file); } /*--------------------. | Add a new merging. | `--------------------*/ static void new_merging (int group, int cross, struct input *input, struct member *member) { struct merging *merging = merging_array + mergings++; merging->group_flag = group; merging->cross_flag = cross; merging->input_number = input - input_array; merging->member_number = member - member_array; } /*------------------------------. | Decide the merging sequence. | `------------------------------*/ void prepare_mergings (void) { int *cursor; struct input *input0; struct input *input; struct member *member; struct cluster *cluster; /* current cluster candidate */ int cost; /* cost associate with current candidate */ struct cluster *best_cluster; /* best cluster candidate for hunk */ int best_cost; /* cost associated with best cluster */ int group_flag; /* set if next merging starts group */ /* Remove member overlaps. */ if (members > 0) { int counter; /* When members overlap, retain only the shortest ones (for now). */ indirects = 0; for (counter = 0; counter < members - 1; counter++) { member = member_array + indirect_array[counter]; if (member->first_item + real_member_size (member) <= member_array[indirect_array[counter + 1]].first_item) indirect_array[indirects++] = indirect_array[counter]; else /* Invalidate this member. */ member->cluster_number = -1; } indirect_array[indirects++] = indirect_array[counter]; } /* Once indirects sorted and ready, this array is logically split into segments, one per input file, which segments might be later scanned in parallel a few times. All required state variables for resuming the scan are held into the last few fields of the input structure. */ cursor = indirect_array; for (input = input_array; input < input_array + inputs; input++) { input->item = input->first_item; input->indirect_cursor = cursor; while (cursor < indirect_array + indirects && member_array[*cursor].first_item < input->item_limit) cursor++; input->indirect_limit = cursor; } /* Allocate an array for discovered mergings. */ merging_array = xmalloc (indirects * sizeof (struct merging)); mergings = 0; /* Repetitively consider the incoming cluster members for all inputs, and select at each iteration the cluster members causing least differences. This may indirectly trigger bigger differences into later iterations. Some thought should be given to global optimisation. FIXME. */ while (1) { #if DEBUGGING if (debugging) { fprintf (stderr, "\nCHOOSING NEXT CLUSTER\n"); for (input = input_array; input < input_array + inputs; input++) if (input->indirect_cursor < input->indirect_limit) { fprintf (stderr, "%s:\t", reference_string (input->item)); dump_member (INPUT_MEMBER (input)); } else fprintf (stderr, "%s:\tNone\n", reference_string (input->item)); putc ('\n', stderr); } #endif best_cluster = NULL; for (input0 = input_array; input0 < input_array + inputs; input0++) if (input0->indirect_cursor < input0->indirect_limit) { cluster = INPUT_CLUSTER (input0); #if DEBUGGING if (debugging) { fprintf (stderr, "%s:\t", reference_string (input0->item)); dump_cluster (cluster); } #endif /* Skip this input if we have already evaluated the cluster. */ for (input = input_array; input < input0; input++) if (input->indirect_cursor < input->indirect_limit && INPUT_CLUSTER (input) == cluster) break; if (input < input0) continue; /* Evaluate the cost of the cluster. This will be the total number of difference items needed in the listing for getting to the point of printing the cluster. For computing it, check all members of the evaluated cluster, retaining only one member per file, in fact, exactly the first which has not been listed yet. */ cost = 0; input = input_array; member = member_array + cluster->first_member; while (member < MEMBER_LIMIT (cluster)) { /* Just ignore invalidated members. */ if (member->cluster_number < 0) { member++; continue; } /* Find the proper file. */ while (member->first_item >= input->item_limit) input++; /* Ignore a member that would have been already listed. */ if (member->first_item < input->item) { member++; continue; } /* Accumulate cost for this member. */ #if DEBUGGING if (debugging) fprintf (stderr, " Cost += %d [%s..%s)\n", member->first_item - input->item, reference_string (input->item), reference_string (member->first_item)); #endif cost += (member++)->first_item - input->item; /* Skip other members that would appear later in same file. */ while (member < MEMBER_LIMIT (cluster) && member->first_item < input->item_limit) member++; } /* Retain the best cluster so far. */ #if DEBUGGING if (debugging) { if (best_cluster) fprintf (stderr, " {%ld}=%d <-> {%ld}=%d\n", (long) (best_cluster - cluster_array), best_cost, (long) (cluster - cluster_array), cost); else fprintf (stderr, " {%ld}=%d\n", (long) (cluster - cluster_array), cost); } #endif if (!best_cluster || cost < best_cost) { best_cluster = cluster; best_cost = cost; } } /* Get out if everything has been done. */ if (!best_cluster) break; #if DEBUGGING if (debugging) { fprintf (stderr, "\nCHOICE\t"); dump_cluster (best_cluster); putc ('\n', stderr); } #endif /* Save found mergings, while moving all items pointers to after the members of the best cluster. */ input = input_array; group_flag = 1; member = member_array + best_cluster->first_member; while (member < MEMBER_LIMIT (best_cluster)) { /* Just ignore invalidated members. */ if (member->cluster_number < 0) { member++; continue; } /* Find the proper file. */ #if DEBUGGING if (debugging) { putc ('v', stderr); dump_member (member); } #endif while (member->first_item >= input->item_limit) input++; /* Ignore a member that would have been already listed. */ if (member->first_item < input->item) { member++; continue; } /* Skip all crossed members while adding them as crossed mergings. */ while (INPUT_MEMBER (input) != member) { new_merging (group_flag, 1, input, INPUT_MEMBER (input)); group_flag = 0; input->indirect_cursor++; } assert (input->indirect_cursor < input->indirect_limit); assert (INPUT_MEMBER (input)->first_item < input->item_limit); /* Skip the selected member while adding it as a direct merging. */ new_merging (group_flag, 0, input, member); group_flag = 0; input->item = member->first_item + real_member_size (member); input->indirect_cursor++; /* Skip other members that would appear later in same file. */ while (member < MEMBER_LIMIT (best_cluster) && member->first_item < input->item_limit) member++; } } #if DEBUGGING if (debugging) dump_all_mergings (); #endif assert (mergings == indirects); if (verbose) { fprintf (stderr, _("Work summary:")); fprintf (stderr, ngettext (" %d cluster,", " %d clusters,", clusters), clusters); fprintf (stderr, ngettext (" %d member,", " %d members,", members), members); fprintf (stderr, ngettext (" %d overlap\n", " %d overlaps\n", members - indirects), members - indirects); } } /* Terminal and pager support. */ /* How to start underlining. */ const char *termcap_start_underline = NULL; /* How to stop underlining. */ const char *termcap_stop_underline = NULL; /* How to start bolding. */ const char *termcap_start_bold = NULL; /* How to stop bolding. */ const char *termcap_stop_bold = NULL; enum emphasis { STRAIGHT, /* no emphasis */ UNDERLINED, /* underlined text */ BOLD /* bold text */ }; /* Current output emphasis. */ enum emphasis current_emphasis = STRAIGHT; /*-----------------------------. | Select strings for marking. | `-----------------------------*/ static void initialize_strings (void) { struct input *input; #if HAVE_TPUTS if (find_termcap) { const char *name; /* terminal capability name */ char term_buffer[2048]; /* terminal description */ static char *buffer; /* buffer for capabilities */ char *filler; /* cursor into allocated strings */ int success; /* tgetent results */ name = getenv ("TERM"); if (name == NULL) error (EXIT_ERROR, 0, _("select a terminal through the TERM environment variable")); success = tgetent (term_buffer, name); if (success < 0) error (EXIT_ERROR, 0, _("could not access the termcap data base")); if (success == 0) error (EXIT_ERROR, 0, _("terminal type `%s' is not defined"), name); buffer = (char *) malloc (strlen (term_buffer)); filler = buffer; termcap_start_underline = tgetstr ("us", &filler); termcap_stop_underline = tgetstr ("ue", &filler); termcap_start_bold = tgetstr ("so", &filler); termcap_stop_bold = tgetstr ("se", &filler); } #endif /* HAVE_TPUTS */ /* Ensure some default strings. For all input files except last, prefer underline. For last input file, prefer bold. */ for (input = input_array; input < input_array + inputs - 1; input++) { input->term_start = termcap_start_underline; input->term_stop = termcap_stop_underline; if (!overstrike) { if (!termcap_start_underline && !input->user_start) input->user_start = "[-"; if (!termcap_stop_underline && !input->user_stop) input->user_stop = "-]"; } } input->term_start = termcap_start_bold; input->term_stop = termcap_stop_bold; if (!overstrike) { if (!termcap_start_bold && !input->user_start) input->user_start = "{+"; if (!termcap_stop_bold && !input->user_stop) input->user_stop = "+}"; } } #if HAVE_TPUTS /*-----------------------------------------. | Write one character for tputs function. | `-----------------------------------------*/ static int putc_for_tputs (int character) { return putc (character, output_file); } #endif /* HAVE_TPUTS */ /*-----------------------. | Set current EMPHASIS. | `-----------------------*/ static void set_emphasis (enum emphasis emphasis) { #if HAVE_TPUTS switch (current_emphasis) { case STRAIGHT: switch (emphasis) { case STRAIGHT: /* Done. */ break; case UNDERLINED: if (termcap_start_underline) tputs (termcap_start_underline, 0, putc_for_tputs); break; case BOLD: if (termcap_start_bold) tputs (termcap_start_bold, 0, putc_for_tputs); break; } break; case UNDERLINED: switch (emphasis) { case STRAIGHT: if (termcap_stop_underline) tputs (termcap_stop_underline, 0, putc_for_tputs); break; case UNDERLINED: /* Done. */ break; case BOLD: if (termcap_stop_underline) tputs (termcap_stop_underline, 0, putc_for_tputs); if (termcap_start_bold) tputs (termcap_start_bold, 0, putc_for_tputs); break; } break; case BOLD: switch (emphasis) { case STRAIGHT: if (termcap_stop_bold) tputs (termcap_stop_bold, 0, putc_for_tputs); break; case UNDERLINED: if (termcap_stop_bold) tputs (termcap_stop_bold, 0, putc_for_tputs); if (termcap_start_underline) tputs (termcap_start_underline, 0, putc_for_tputs); break; case BOLD: /* Done. */ break; } break; } #endif /* HAVE_TPUTS */ current_emphasis = emphasis; } /*---------------------------------------------------------. | Push a new EMPHASIS, or pop it out back to what it was. | `---------------------------------------------------------*/ #define EMPHASIS_STACK_LENGTH 1 static enum emphasis emphasis_array[EMPHASIS_STACK_LENGTH]; static int emphasises = 0; static void push_emphasis (enum emphasis emphasis) { assert (emphasises < EMPHASIS_STACK_LENGTH); emphasis_array[emphasises++] = current_emphasis; set_emphasis (emphasis); } static void pop_emphasis (void) { assert (emphasises > 0); set_emphasis (emphasis_array[--emphasises]); } /*--------------------------------------------------------------------------. | Output a STRING having LENGTH characters, subject to the current | | emphasis. If EXPAND is nonzero, expand TABs. For expansion to work | | properly, this routine should always be called while copying input data. | `--------------------------------------------------------------------------*/ static void output_characters (const char *string, int length, int expand) { static unsigned column = 0; const char *cursor; int counter; if (overstrike || expand) for (cursor = string; cursor < string + length; cursor++) switch (*cursor) { /* Underlining or overstriking whitespace surely looks strange, but "less" does understand such things as emphasis requests. */ case '\n': case '\r': case '\v': case '\f': putc (*cursor, output_file); column = 0; break; case '\b': putc ('\b', output_file); if (column > 0) column--; break; case '\t': if (expand) do { if (overstrike) switch (current_emphasis) { case STRAIGHT: putc (' ', output_file); break; case UNDERLINED: putc ('_', output_file); if (overstrike_for_less) { putc ('\b', output_file); putc (' ', output_file); } break; case BOLD: putc (*cursor, output_file); if (overstrike_for_less) { putc ('\b', output_file); putc (' ', output_file); } break; } else putc (' ', output_file); column++; } while (column % 8 != 0); else putc ('\t', output_file); break; case ' ': if (overstrike) switch (current_emphasis) { case STRAIGHT: putc (' ', output_file); break; case UNDERLINED: putc ('_', output_file); if (overstrike_for_less) { putc ('\b', output_file); putc (' ', output_file); } break; case BOLD: putc (' ', output_file); if (overstrike_for_less) { putc ('\b', output_file); putc (' ', output_file); } break; } else putc (' ', output_file); column++; break; case '_': if (overstrike_for_less && current_emphasis == UNDERLINED) { /* Overstriking an underline would make it bold in "less". */ putc ('_', output_file); column++; break; } /* Fall through. */ default: if (overstrike) switch (current_emphasis) { case STRAIGHT: putc (*cursor, output_file); break; case UNDERLINED: putc ('_', output_file); putc ('\b', output_file); putc (*cursor, output_file); break; case BOLD: putc (*cursor, output_file); putc ('\b', output_file); putc (*cursor, output_file); break; } else putc (*cursor, output_file); column++; break; } else fwrite (string, length, 1, output_file); } /*------------------------------------------------------------------------. | While copying INPUT, select EMPHASIS, with preferred type for printer. | `------------------------------------------------------------------------*/ static void start_of_emphasis (struct input *input, enum emphasis emphasis) { assert (current_emphasis == STRAIGHT); /* Avoid any emphasis if it would be useless. */ #if FIXME if (!common_listing_allowed && (!right->listing_allowed || !left->listing_allowed)) return; #endif #if HAVE_TPUTS if (input->term_start) tputs (input->term_start, 0, putc_for_tputs); #endif if (input->user_start) fprintf (output_file, "%s", input->user_start); current_emphasis = emphasis; } /*-----------------------------------------------. | Indicate end of emphasis while copying INPUT. | `-----------------------------------------------*/ static void end_of_emphasis (struct input *input) { assert (current_emphasis != STRAIGHT); /* Avoid any emphasis if it would be useless. */ #if FIXME if (!common_listing_allowed && (!right->listing_allowed || !left->listing_allowed)) return; #endif if (input->user_stop) fprintf (output_file, "%s", input->user_stop); #if HAVE_TPUTS if (input->term_stop) tputs (input->term_stop, 0, putc_for_tputs); #endif current_emphasis = STRAIGHT; } /*-------------------------------------------------------------------. | Launch the output pager if any. If INPUT is not NULL, do it for a | | specific input file. | `-------------------------------------------------------------------*/ static void launch_output_program (struct input *input) { if (paginate) { if (input) output_file = writepipe ("pr", "-f", "-h", input->file_name, NULL); else output_file = writepipe ("pr", "-f", NULL); } else { char *program; /* name of the pager */ char *basename; /* basename of the pager */ /* Check if a output program should be called, and which one. Avoid all paging if only statistics are needed. */ if (autopager && isatty (fileno (stdout)) #if FIXME && (left->listing_allowed || right->listing_allowed || common_listing_allowed) #endif ) { program = getenv ("WDIFF_PAGER"); if (program == NULL) program = getenv ("PAGER"); #ifdef PAGER_PROGRAM if (program == NULL) program = PAGER_PROGRAM; #endif } else program = NULL; /* Use stdout as default output. */ #if DEBUGGING output_file = debugging ? stderr : stdout; #else output_file = stdout; #endif /* If we should use a pager, launch it. */ if (program && *program) { char *lessenv; lessenv = getenv ("LESS"); if (lessenv == NULL) { setenv ("LESS", LESS_DEFAULT_OPTS, 0); } else { if (asprintf (&lessenv, "%s %s", LESS_DEFAULT_OPTS, lessenv) == -1) { xalloc_die (); return; } else { setenv ("LESS", lessenv, 1); } } output_file = writepipe (program, NULL); if (!output_file) error (EXIT_ERROR, errno, "%s", program); } } } /*-----------------------------. | Complete the pager program. | `-----------------------------*/ static void complete_output_program (void) { /* Let the user play at will inside the pager, until s/he exits, before proceeding any further. */ if (output_file && output_file != stdout) { fclose (output_file); wait (NULL); } } /* Other listing services. */ enum margin_mode { EMPTY_MARGIN, /* nothing in left margin */ LOCATION_IN_MARGIN, /* number of next item */ FILLER_IN_MARGIN, /* bars for the length of nick name */ FILE_IN_MARGIN /* nick name for file */ }; /*-------------------------------------------. | For file INPUT, produce a kind of MARGIN. | `-------------------------------------------*/ static void make_margin (struct input *input, enum margin_mode margin) { char buffer[15]; char *cursor; switch (margin) { case EMPTY_MARGIN: return; case LOCATION_IN_MARGIN: sprintf (buffer, "%s%d", input->nick_name, input->item - input->first_item + 1); break; case FILLER_IN_MARGIN: cursor = buffer + strlen (input->nick_name); *cursor-- = '\0'; while (cursor > buffer) *cursor-- = '|'; break; case FILE_IN_MARGIN: strcpy (buffer, input->nick_name); break; } if (word_mode) { push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); putc (initial_tab ? '\t' : ' ', output_file); } else { push_emphasis (STRAIGHT); output_characters (buffer, strlen (buffer), 0); putc (initial_tab ? '\t' : ' ', output_file); pop_emphasis (); } } /*-------------------------. | Skip a line from INPUT. | `-------------------------*/ static void skip_line_item (struct input *input) { input_line (input); assert (input->cursor); input->item++; } /*-------------------------. | Copy a line from INPUT. | `-------------------------*/ static void copy_line_item (struct input *input, enum margin_mode margin) { input_line (input); assert (input->cursor); make_margin (input, margin); output_characters (input->line, input->limit - input->line, expand_tabs); input->item++; } /*---------------------------------. | Skip over white space on INPUT. | `---------------------------------*/ static void skip_whitespace (struct input *input) { assert (input->cursor); while (input->cursor && isspace (*input->cursor)) input_character (input); /* FIXME: Maybe worth following columns for TAB expansion, maybe not? */ } /*-----------------------------------------------------------------. | Copy white space from INPUT to FILE, ensuring a kind of MARGIN. | `-----------------------------------------------------------------*/ static void copy_whitespace (struct input *input, enum margin_mode margin) { char *string = input->cursor; assert (input->cursor); while (input->cursor && isspace (*input->cursor)) if (++input->cursor == input->limit) { if (input->cursor[-1] == '\n') { output_characters (string, input->cursor - string - 1, expand_tabs); /* While changing lines, ensure we stop any special display prior to, and restore the special display after. */ if (avoid_wraps && input->user_stop) fprintf (output_file, "%s", input->user_stop); #if HAVE_TPUTS if (input->term_stop) tputs (input->term_stop, 0, putc_for_tputs); #endif output_characters (input->cursor - 1, 1, expand_tabs); make_margin (input, margin); #if HAVE_TPUTS if (input->term_start) tputs (input->term_start, 0, putc_for_tputs); #endif if (avoid_wraps && input->user_start) fprintf (output_file, "%s", input->user_start); } else output_characters (string, input->cursor - string, expand_tabs); input_character_helper (input); string = input->cursor; } if (string && input->cursor > string) output_characters (string, input->cursor - string, expand_tabs); } /*-------------------------------------. | Skip over non-white space on INPUT. | `-------------------------------------*/ static void skip_word_item (struct input *input) { assert (input->cursor && !isspace (*input->cursor)); while (input->cursor && !isspace (*input->cursor)) input_character (input); /* FIXME: Maybe worth following columns for TAB expansion, maybe not? */ input->item++; } /*------------------------------------------. | Copy non white space from INPUT to FILE. | `------------------------------------------*/ static void copy_word_item (struct input *input) { char *string = input->cursor; assert (input->cursor && !isspace (*input->cursor)); while (input->cursor && !isspace (*input->cursor)) input->cursor++; output_characters (string, input->cursor - string, expand_tabs); if (input->cursor == input->limit) input_character_helper (input); input->item++; } /*------------------------------------------. | Skip a difference from INPUT up to ITEM. | `------------------------------------------*/ static void skip_until (struct input *input, int item) { assert (input->item <= item); if (word_mode) while (input->item < item) { skip_whitespace (input); skip_word_item (input); } else while (input->item < item) skip_line_item (input); } /*------------------------------------------------------------------. | Copy a difference from INPUT up to ITEM, using a kind of MARGIN. | `------------------------------------------------------------------*/ static void copy_until (struct input *input, int item, enum margin_mode margin) { assert (input->item <= item); if (word_mode) while (input->item < item) { copy_whitespace (input, margin); copy_word_item (input); } else while (input->item < item) copy_line_item (input, margin); } /*------------------------------------. | From INPUT, skip a cluster MEMBER. | `------------------------------------*/ static void skip_member_proper (struct input *input, struct member *member) { assert (input->item == member->first_item); skip_until (input, member->first_item + real_member_size (member)); } /*------------------------------------. | From INPUT, copy a cluster MEMBER. | `------------------------------------*/ static void copy_member_proper (struct input *input, struct member *member) { assert (input->item == member->first_item); copy_until (input, member->first_item + real_member_size (member), FILLER_IN_MARGIN); } /* Listing control. */ /*------------------------------------------. | Relist all input files with annotations. | `------------------------------------------*/ static void relist_annotated_files (void) { /* The array of actives holds all members being concurrently listed. If there is no overlapping members, the array will never hold more than one member. The index in this array is also the column position of the vertical line bracing the member, in the annotated listing. For preserving verticality of lines after the termination of some members, NULL members in the array stand for embedded white columns. */ struct active { struct member *member; /* active member, or NULL */ int remaining; /* count of remaining lines to list */ }; struct active *active_array = NULL; int actives = 0; int allocated_actives = 0; int other_count = 0; /* how many actives in other files */ enum margin_mode margin_mode = show_links ? LOCATION_IN_MARGIN : EMPTY_MARGIN; struct input *input = NULL; int *cursor; int counter; FILE *file; ITEM *item; struct active *active; struct member *member; struct cluster *cluster; int ordinal; struct reference reference; char buffer[20]; #if DEBUGGING if (debugging) fputs ("\f\n", stderr); #endif /* Prepare terminal. */ if (!paginate) { launch_output_program (input); initialize_strings (); } /* Prepare to scan all members. */ if (indirects > 0) { cursor = indirect_array; member = member_array + *cursor; } else cursor = NULL; /* Process all files. */ for (input = input_array; input < input_array + inputs; input++) { /* Prepare terminal. */ if (paginate) { launch_output_program (input); if (input == input_array) initialize_strings (); } else { if (input > input_array) fputs ("\f\n", output_file); fprintf (output_file, "@@@ %s\n", input->file_name); } /* Prepare for file. */ open_input (input); input->item = input->first_item; /* Process all items. */ if (word_mode && input->item < input->item_limit) { make_margin (input, margin_mode); input_line (input); } while (input->item < input->item_limit) { if (word_mode) copy_whitespace (input, margin_mode); item = item_array + input->item; /* See if we are starting any member. */ while (cursor && member->first_item == input->item) { cluster = cluster_array + member->cluster_number; ordinal = member - member_array - cluster->first_member - 1; /* Obtain some active slot for the new member. */ if (actives) { /* Set ACTIVE to the rightmost not-in-use active, or after all actives if they are all in use. */ active = active_array + actives; for (counter = 0; counter < actives; counter++) if (!active_array[counter].member) active = active_array + counter; /* Output vertical bars as needed for all prior actives. */ if (!word_mode) for (counter = 0; active_array + counter < active; counter++) if (active_array[counter].member) putc ('|', output_file); else putc (' ', output_file); /* Ensure active will be allocated if necessary. */ if (active == active_array + actives) active = NULL; } else active = NULL; /* Allocate and initialise the active. */ if (!active) { if (actives == allocated_actives) { allocated_actives += 8; active_array = (struct active *) xrealloc (active_array, allocated_actives * (sizeof (struct active))); } active = active_array + actives++; } active->member = member; active->remaining = cluster_array[member->cluster_number].item_count; /* Print a pointer to the previous member of same cluster. */ if (ordinal >= 0) { reference = get_reference (member_array [cluster->first_member + ordinal].first_item); if (word_mode) { if (show_links) { sprintf (buffer, "[%c%s%d", (char) (active - active_array + 'A'), reference.input->nick_name, reference.number); push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); putc (' ', output_file); } } else { fprintf (output_file, ".-> [%d/%d] ", ordinal + 1, MEMBERS (cluster)); sprintf (buffer, "%s%d", reference.input->nick_name, reference.number); push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); if (reference.input != input) fprintf (output_file, " (%s)", reference.input->file_name); putc ('\n', output_file); } } else if (word_mode) { if (show_links) { sprintf (buffer, "[%c", (char) (active - active_array + 'A')); push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); putc (' ', output_file); } } else fputs (".-\n", output_file); /* Bold text appearing in other files. */ if (active_elsewhere (member, input)) if (other_count++ == 0) set_emphasis (BOLD); /* Advance cursor. */ if (++cursor < indirect_array + indirects) member = member_array + *cursor; else cursor = NULL; } /* List the item itself. */ if (word_mode) copy_word_item (input); else { for (counter = 0; counter < actives; counter++) if (active_array[counter].member) putc ('|', output_file); else putc (' ', output_file); if (counter < 7) { sprintf (buffer, "%s%d", input->nick_name, input->item - input->first_item + 1); for (counter += strlen (buffer); counter < 7; counter++) putc (' ', output_file); push_emphasis (UNDERLINED); output_characters (buffer + counter - 7, strlen (buffer + counter - 7), 0); pop_emphasis (); } if (initial_tab) putc ('\t', output_file); else putc (' ', output_file); copy_line_item (input, EMPTY_MARGIN); } /* See if we are ending any member. */ if (!actives) continue; active = active_array + actives; while (--active >= active_array) if (item_type (item) == NORMAL && --active->remaining == 0) { cluster = cluster_array + active->member->cluster_number; ordinal = active->member - member_array - cluster->first_member + 1; /* Print a pointer to the next member of same cluster. */ if (!word_mode) { for (counter = 0; active_array + counter < active; counter++) if (active_array[counter].member) putc ('|', output_file); else putc (' ', output_file); } if (ordinal < MEMBERS (cluster)) { reference = get_reference (member_array [cluster->first_member + ordinal].first_item); if (word_mode) { if (show_links) { putc (' ', output_file); sprintf (buffer, "%s%d%c]", reference.input->nick_name, reference.number, (char) (active - active_array + 'A')); push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); } } else { fprintf (output_file, "`-> [%d/%d] ", ordinal + 1, MEMBERS (cluster)); sprintf (buffer, "%s%d", reference.input->nick_name, reference.number); push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); if (reference.input != input) fprintf (output_file, " (%s)", reference.input->file_name); putc ('\n', output_file); } } else if (word_mode) { if (show_links) { putc (' ', output_file); sprintf (buffer, "%c]", (char) (active - active_array + 'A')); push_emphasis (UNDERLINED); output_characters (buffer, strlen (buffer), 0); pop_emphasis (); } } else fputs ("`-\n", output_file); /* Do not bold text not appearing in any other file. */ if (active_elsewhere (active->member, input)) if (--other_count == 0) set_emphasis (STRAIGHT); /* Remove as many active members as we can. */ active->member = NULL; if (active == active_array + actives - 1) while (actives > 0 && !active_array[actives - 1].member) actives--; } } /* Finish file. */ assert (actives == 0); assert (other_count == 0); close_input (input); if (paginate) complete_output_program (); } if (!paginate) complete_output_program (); } /*--------------------------------------------------------------------. | Make a merged listing of input files. If UNIFIED, produce unified | | context diffs instead of plain context diffs. If CROSSED, identify | | crossed blocks. | `--------------------------------------------------------------------*/ static void relist_merged_lines (int unified, int crossed) { int counter; struct input *input; struct member *member; struct cluster *chosen_cluster; struct reference reference; struct merging *merging; struct merging *group_limit; struct merging *cursor; int listed; /* Prepare terminal. */ launch_output_program (NULL); initialize_strings (); /* FIXME: Merging requires all input files to be opened in parallel. This is not realistic when there are really many input files: in such cases, one has no other choice than to avoid merged listings and resort to the full relisting option instead. */ for (input = input_array; input < input_array + inputs; input++) { open_input (input); input->item = input->first_item; } /* Process all merging groups, one at a time. */ #if DEBUGGING if (debugging) fputs ("\f\n", stderr); #endif for (merging = merging_array; merging < merging_array + mergings; merging = group_limit) { /* Find the extent of the merging group, and count genuine mergings. */ counter = 0; if (!merging->cross_flag) counter++; for (cursor = merging + 1; cursor < merging_array + mergings && !cursor->group_flag; cursor++) if (!cursor->cross_flag) counter++; group_limit = cursor; /* Prepare for a new hunk. Hmph! Not really yet... */ /* Output differences, which are items before members. Also consider any crossed member as a difference and output it on the same blow. */ for (cursor = merging; cursor < group_limit; cursor++) { input = input_array + cursor->input_number; member = member_array + cursor->member_number; copy_until (input, member->first_item, FILE_IN_MARGIN); if (cursor->cross_flag) { explain_group ('/', cursor, cursor + 1); copy_member_proper (input, member); explain_group ('\\', cursor, cursor + 1); } } /* Describe members, which we are about to skip. */ explain_group ('/', merging, group_limit); listed = 0; for (cursor = merging; cursor < group_limit; cursor++) if (!cursor->cross_flag) { input = input_array + cursor->input_number; member = member_array + cursor->member_number; if (listed) skip_member_proper (input, member); else { copy_member_proper (input, member); listed = 1; } } explain_group ('\\', merging, group_limit); } /* Copy remaining differences and clean up. */ for (input = input_array; input < input_array + inputs; input++) { copy_until (input, input->item_limit, FILE_IN_MARGIN); close_input (input); } } /*-----------------------------------------------------. | Study diff output and use it to drive reformatting. | `-----------------------------------------------------*/ /* Define the separator lines when output is inhibited. */ #define SEPARATOR_LINE \ "======================================================================" static void relist_merged_words (void) { int counter; struct input *input; struct member *member; struct cluster *chosen_cluster; struct reference reference; struct merging *merging; struct merging *group_limit; struct merging *cursor; int listed; int count_total_left; /* count of total words in left file */ int count_total_right; /* count of total words in right file */ int count_isolated_left; /* count of deleted words in left file */ int count_isolated_right; /* count of added words in right file */ int count_changed_left; /* count of changed words in left file */ int count_changed_right; /* count of changed words in right file */ /* Prepare terminal. */ launch_output_program (NULL); initialize_strings (); /* Rewind input files. */ for (input = input_array; input < input_array + inputs; input++) { open_input (input); input->item = input->first_item; input_line (input); } count_total_left = left->item_limit - left->first_item; count_total_right = right->item_limit - right->first_item; count_isolated_left = 0; count_isolated_right = 0; count_changed_left = 0; count_changed_right = 0; /* Process all merging groups, one at a time. */ for (merging = merging_array; merging < merging_array + mergings; merging = group_limit) { /* Find the extent of the merging group, and count genuine mergings. */ counter = 0; if (!merging->cross_flag) counter++; for (cursor = merging + 1; cursor < merging_array + mergings && !cursor->group_flag; cursor++) if (!cursor->cross_flag) counter++; group_limit = cursor; /* Output differences, which are items before members. Also consider any crossed member as a difference and output it on the same blow. */ for (cursor = merging; cursor < group_limit; cursor++) { input = input_array + cursor->input_number; member = member_array + cursor->member_number; if (input->listing_allowed) { if (input->item < member->first_item || cursor->cross_flag) { if (input == left) copy_whitespace (input, EMPTY_MARGIN); else skip_whitespace (input); if (input == input_array + inputs - 1) start_of_emphasis (input, BOLD); else start_of_emphasis (input, UNDERLINED); if (input->item < member->first_item) { copy_word_item (input); copy_until (input, member->first_item, FILE_IN_MARGIN); } if (cursor->cross_flag) copy_member_proper (input, member); end_of_emphasis (input); } } else { skip_until (input, member->first_item); if (cursor->cross_flag) skip_member_proper (input, member); } } /* Use separator lines to disambiguate the output. */ if (common_listing_allowed) { if (!left->listing_allowed && !right->listing_allowed) fprintf (output_file, "\n%s\n", SEPARATOR_LINE); } else fprintf (output_file, "\n%s\n", SEPARATOR_LINE); /* Describe members, which we are about to skip. */ listed = 0; for (cursor = merging; cursor < group_limit; cursor++) if (!cursor->cross_flag) { input = input_array + cursor->input_number; member = member_array + cursor->member_number; if (listed) skip_member_proper (input, member); else { copy_member_proper (input, member); listed = 1; } } } /* Copy remaining differences and clean up. Copy from left side if the user wanted to see only the common code and deleted words. */ if (!common_listing_allowed && (left->listing_allowed || right->listing_allowed)) fprintf (output_file, "\n%s\n", SEPARATOR_LINE); for (input = input_array; input < input_array + inputs; input++) { if (input->listing_allowed) { if (input->item < input->item_limit) { if (input == left) copy_whitespace (input, EMPTY_MARGIN); else skip_whitespace (input); if (input == input_array + inputs - 1) start_of_emphasis (input, BOLD); else start_of_emphasis (input, UNDERLINED); copy_word_item (input); copy_until (input, input->item_limit, FILE_IN_MARGIN); end_of_emphasis (input); } copy_whitespace (input, EMPTY_MARGIN); } close_input (input); } /* Print merging statistics. */ if (verbose) { int count_common_left; /* words unchanged in left file */ int count_common_right; /* words unchanged in right file */ count_common_left = count_total_left - count_isolated_left - count_changed_left; count_common_right = count_total_right - count_isolated_right - count_changed_right; printf (ngettext ("%s: %d word", "%s: %d words", count_total_left), left->file_name, count_total_left); if (count_total_left > 0) { printf (ngettext (" %d %.0f%% common", " %d %.0f%% common", count_common_left), count_common_left, count_common_left * 100. / count_total_left); printf (ngettext (" %d %.0f%% deleted", " %d %.0f%% deleted", count_isolated_left), count_isolated_left, count_isolated_left * 100. / count_total_left); printf (ngettext (" %d %.0f%% changed", " %d %.0f%% changed", count_changed_left), count_changed_left, count_changed_left * 100. / count_total_left); } printf ("\n"); printf (ngettext ("%s: %d word", "%s: %d words", count_total_right), right->file_name, count_total_right); if (count_total_right > 0) { printf (ngettext (" %d %.0f%% common", " %d %.0f%% common", count_common_right), count_common_right, count_common_right * 100. / count_total_right); printf (ngettext (" %d %.0f%% inserted", " %d %.0f%% inserted", count_isolated_right), count_isolated_right, count_isolated_right * 100. / count_total_right); printf (ngettext (" %d %.0f%% changed", " %d %.0f%% changed", count_changed_right), count_changed_right, count_changed_right * 100. / count_total_right); } printf ("\n"); } /* Set exit status. */ if (count_isolated_left || count_isolated_right || count_changed_left || count_changed_right) exit_status = EXIT_DIFFERENCE; /* Reset the terminal. */ complete_output_program (); } /* Main control. */ /*-----------------------------------------------. | Explain how to use the program, then get out. | `-----------------------------------------------*/ static void usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), program_name); else { /* *INDENT-OFF* */ fputs (_("\ mdiff - Studies multiple files and searches for similar sequences, it then\n\ produces possibly detailed lists of differences and similarities.\n"), stdout); fputs ("\n", stdout); printf (_("\ Usage: %s [OPTION]... [FILE]...\n"), program_name); fputs (_("\nOperation modes:\n"), stdout); fputs (_(" -h (ignored)\n"), stdout); fputs (_(" -v, --verbose report a few statistics on stderr\n"), stdout); fputs (_(" --help display this help then exit\n"), stdout); fputs (_(" --version display program version then exit\n"), stdout); fputs (_("\nFormatting output:\n"), stdout); fputs (_(" -T, --initial-tab produce TAB instead of initial space\n"), stdout); fputs (_(" -l, --paginate paginate output through `pr'\n"), stdout); fputs (_(" -S, --string[=STRING] take note of another user STRING\n"), stdout); fputs (_(" -V, --show-links give file and line references in annotations\n"), stdout); fputs (_(" -t, --expand-tabs expand tabs to spaces in the output\n"), stdout); #if DEBUGGING fputs (_("\nDebugging:\n"), stdout); fputs (_(" -0, --debugging output many details about what is going on\n"), stdout); #endif fputs (_("\nWord mode options:\n"), stdout); fputs (_(" -1, --no-deleted inhibit output of deleted words\n"), stdout); fputs (_(" -2, --no-inserted inhibit output of inserted words\n"), stdout); fputs (_(" -3, --no-common inhibit output of common words\n"), stdout); fputs (_(" -A, --auto-pager automatically calls a pager\n"), stdout); fputs (_(" -k, --less-mode variation of printer mode for \"less\"\n"), stdout); fputs (_(" -m, --avoid-wraps do not extend fields through newlines\n"), stdout); fputs (_(" -o, --printer overstrike as for printers\n"), stdout); fputs (_(" -z, --terminal use termcap as for terminal displays\n"), stdout); fputs (_(" -O, --item-regexp=REGEXP compare items as defined by REGEXP\n"), stdout); fputs (_(" -W, --word-mode compare words instead of lines\n"), stdout); /*** fputs (_("\nComparing files:\n"), stdout); fputs (_("* -H, --speed-large-files go faster, for when numerous small changes\n"), stdout); fputs (_("* -a, --text report line differences (text file default)\n"), stdout); fputs (_("* -d, --minimal try harder for a smaller set of changes\n"), stdout); fputs (_("* -q, --brief only says if files differ (binary default)\n"), stdout); fputs (_("* --horizon-lines=LINES keep LINES lines in common prefixes/suffixes\n"), stdout); ***/ /*** fputs (_("\nComparing directories:\n"), stdout); fputs (_("* -N, --new-file consider missing files to be empty\n"), stdout); fputs (_("* -P, --unidirectional-new-file consider missing old files to be empty\n"), stdout); fputs (_("* -S, --starting-file=FILE resume directory comparison with FILE\n"), stdout); fputs (_("* -X, --exclude-from=FILE ignore files matching patterns from FILE\n"), stdout); fputs (_("* -r, --recursive recursively compare subdirectories\n"), stdout); fputs (_("* -s, --report-identical-files report when two files are the same\n"), stdout); fputs (_("* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n"), stdout); ***/ /*** fputs (_("\nIgnoring text:\n"), stdout); fputs (_(" -B, --ignore-blank-lines ignore blank lines\n"), stdout); fputs (_("* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n"), stdout); fputs (_(" -b, --ignore-space-change ignore amount of white space\n"), stdout); fputs (_(" -i, --ignore-case ignore case differences\n"), stdout); fputs (_(" -w, --ignore-all-space ignore white space\n"), stdout); fputs (_("\nClustering:\n"), stdout); fputs (_(" -G, --relist-files list all input files with annotations\n"), stdout); fputs (_(" -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n"), stdout); fputs (_(" -j, --ignore-delimiters do not count items having only delimiters\n"), stdout); ***/ /*** fputs (_("\nDetailed output formats:\n"), stdout); fputs (_("* -D, --ifdef=NAME output `#ifdef NAME' format\n"), stdout); fputs (_("* --changed-group-format=FORMAT use FORMAT for changed lines\n"), stdout); fputs (_("* --new-group-format=FORMAT use FORMAT for inserted lines\n"), stdout); fputs (_("* --new-line-format=FORMAT use FORMAT for inserted line\n"), stdout); fputs (_("* --old-group-format=FORMAT use FORMAT for deleted lines\n"), stdout); fputs (_("* --old-line-format=FORMAT use FORMAT for deleted line\n"), stdout); fputs (_("* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n"), stdout); fputs (_("* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n"), stdout); fputs (_("* --line-format=FORMAT --{old,new,unchanged}-line-format\n"), stdout); ***/ /*** fputs (_("\nScript-like formats:\n"), stdout); fputs (_(" (none of -CDUcefnuy) output normal diffs\n"), stdout); fputs (_("* -e, --ed output a valid `ed' script\n"), stdout); fputs (_("* -f, --forward-ed mix between -e and -n (not very useful)\n"), stdout); fputs (_("* -n, --rcs output RCS format (internally used by RCS)\n"), stdout); ***/ /*** fputs (_("\nContext and unified formats:\n"), stdout); fputs (_("* -F, --show-function-line=REGEXP show previous context matching REGEXP\n"), stdout); fputs (_("* -p, --show-c-function show which C function for each change\n"), stdout); ***/ /*** fputs (_("* -C, --context=LINES as -c, also select context size in lines\n"), stdout); fputs (_("* -L, --label=LABEL use from/to LABEL instead of file name (twice)\n"), stdout); fputs (_("* -U, --unified=LINES as -u, also select context size in lines\n"), stdout); fputs (_("* -c, --context output context diffs (default 3 context lines)\n"), stdout); fputs (_("* -u, --unified output unidiffs (default 3 context lines)\n"), stdout); fputs (_("* -LINES (obsolete: select context size in lines)\n"), stdout); ***/ /*** fputs (_("\nSide by side format:\n"), stdout); fputs (_("* -W, --width=COLUMNS use width of COLUMNS\n"), stdout); fputs (_("* -y, --side-by-side use side by side output format\n"), stdout); fputs (_("* --left-column print only left column line when common\n"), stdout); fputs (_("* --sdiff-merge-assist (internally used by `sdiff')\n"), stdout); fputs (_("* --suppress-common-lines do not print common lines\n"), stdout); ***/ /*** fputs (_("\n\ FORMAT is made up of characters standing for themselves, except:\n\ %%%% a single %%\n\ %%c'C' quoted character C\n\ %%c'\\O' character having value O, from 1 to 3 octal digits\n\ %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E FORMAT\n\ %%FN use SPECIF specification F to print VARIABLE value N\n\ %%< [group] old, each line through --old-line-format\n\ %%> [group] new, each line through --new-line-format\n\ %%= [group] unchanged, each line through --unchanged-line-format\n\ %%l [line] without its possible trailing newline\n\ %%L [line] with its possible trailing newline\n"), stdout); ***/ /*** fputs (_("\n\ SPECIF is [-][W[.D]]{doxX} as in C printf\n"), stdout); ***/ /*** fputs (_("\n\ VARIABLE is {eflmn} for old group or {EFLMN} for new group\n\ {eE} line number just before group\n\ {fF} first line number of group\n\ {lL} last line number of group\n\ {mM} line number just after group\n\ {nN} number of lines in the group\n"), stdout); ***/ /*** fputs (_("\nStandard diff options:\n"), stdout); fputs (_(" -i, --ignore-case consider upper- and lower-case to be the same\n"), stdout); fputs (_(" -w, --ignore-all-space ignore all white space\n"), stdout); fputs (_(" -b, --ignore-space-change ignore changes in the amount of white space\n"), stdout); fputs (_(" -B, --ignore-blank-lines ignore changes whose lines are all blank\n"), stdout); fputs (_(" -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n"), stdout); fputs (_(" -a, --text treat all files as text\n"), stdout); fputs (_("\ -c, --context[=NUMBER] output regular context diffs,\n\ changing to NUMBER lines of context\n"), stdout); fputs (_("\ -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n\ with NUMBER lines of context\n"), stdout); fputs (_(" -C, --context=NUM output NUM lines of copied context\n"), stdout); fputs (_(" -U, --unified=NUM output NUM lines of unified context\n"), stdout); fputs (_(" -L, --label=LABEL use LABEL instead of file name\n"), stdout); fputs (_(" -p, --show-c-function show which C function each change is in\n"), stdout); fputs (_(" -F, --show-function-line=RE show the most recent line matching RE\n"), stdout); fputs (_(" -q, --brief output only whether files differ\n"), stdout); fputs (_(" -e, --ed output an ed script\n"), stdout); fputs (_(" -n, --rcs output an RCS format diff\n"), stdout); fputs (_(" -y, --side-by-side output in two columns\n"), stdout); fputs (_(" -w, --width=NUM output at most NUM (default 130) characters per line\n"), stdout); fputs (_(" --left-column output only the left column of common lines\n"), stdout); fputs (_(" --suppress-common-lines do not output common lines\n"), stdout); fputs (_(" -D, --ifdef=NAME output merged file to show `#ifdef NAME' diffs\n"), stdout); fputs (_(" --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n"), stdout); fputs (_(" --line-format=LFMT all input lines with LFMT\n"), stdout); fputs (_(" --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n"), stdout); fputs (_(" -l, --paginate pass the output through `pr' to paginate it\n"), stdout); fputs (_(" -t, --expand-tabs expand tabs to spaces in output\n"), stdout); fputs (_(" -T, --initial-tab make tabs line up by prepending a tab\n"), stdout); fputs (_(" -r, --recursive recursively compare any subdirectories found\n"), stdout); fputs (_(" -N, --new-file treat absent files as empty\n"), stdout); fputs (_(" -P, --unidirectional-new-file treat absent first files as empty\n"), stdout); fputs (_(" -s, --report-identical-files report when two files are the same\n"), stdout); fputs (_(" -x, --exclude=PAT exclude files that match PAT\n"), stdout); fputs (_(" -X, --exclude-from=FILE exclude files that match any pattern in FILE\n"), stdout); fputs (_(" -S, --starting-file=FILE start with FILE when comparing directories\n"), stdout); fputs (_(" --horizon-lines=NUM keep NUM lines of the common prefix and suffix\n"), stdout); fputs (_(" -d, --minimal try hard to find a smaller set of changes\n"), stdout); fputs (_(" -H, --speed-large-files assume large files and many scattered small changes\n"), stdout); ***/ /*** fputs (_("\ \n\ By default, context diffs have an horizon of two lines.\n"), stdout); ***/ /*** fputs (_("\ \n\ LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n\ GFMT may contain:\n\ %< lines from FILE1\n\ %> lines from FILE2\n\ %= lines common to FILE1 and FILE2\n\ %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n\ LETTERs are as follows for new group, lower case for old group:\n\ F first line number\n\ L last line number\n\ N number of lines = L-F+1\n\ E F-1\n\ M L+1\n"), stdout); fputs (_("\ LFMT may contain:\n\ %L contents of line\n\ %l contents of line, excluding any trailing newline\n\ %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n\ Either GFMT or LFMT may contain:\n\ %% %\n\ %c'C' the single character C\n\ %c'\\OOO' the character with octal code OOO\n"), stdout); ***/ /*** fputs (_("\nOld mdiff options:\n"), stdout); fputs (_("* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a cluster\n"), stdout); ***/ fputs ("\n", stdout); fputs (_("With no FILE, or when FILE is -, read standard input.\n"), stdout); fputs ("\n", stdout); fputs (_("Report bugs to .\n"), stdout); /* *INDENT-ON* */ } exit (status); } /*----------------------------------------------------------------------. | Main program. Decode ARGC arguments passed through the ARGV array of | | strings, then launch execution. | `----------------------------------------------------------------------*/ #define UNIMPLEMENTED(Option) \ error (0, 0, _("ignoring option %s (not implemented)"), (Option)) int main (int argc, char *const *argv) { int option_char; /* option character */ struct input *input; /* cursor in input array */ int inhibit_left = 0; int inhibit_right = 0; int inhibit_common = 0; const char *delete_start = NULL; const char *delete_stop = NULL; const char *insert_start = NULL; const char *insert_stop = NULL; program_name = argv[0]; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* Decode command options. */ while (option_char = getopt_long (argc, (char **) argv, OPTION_STRING, long_options, NULL), option_char != EOF) switch (option_char) { default: usage (EXIT_ERROR); case '\0': break; case '0': #if DEBUGGING debugging = 1; verbose = 1; #else UNIMPLEMENTED ("--debugging"); #endif break; case '1': inhibit_left = 1; break; case '2': inhibit_right = 1; break; case '3': inhibit_common = 1; break; case 'A': autopager = 1; break; case 'B': ignore_blank_lines = 1; break; case 'D': ifdef = optarg; UNIMPLEMENTED ("--ifdef"); break; case 'F': show_function_line = optarg; UNIMPLEMENTED ("--show-function-line"); break; case 'G': relist_files = 1; break; case 'H': speed_large_files = 1; UNIMPLEMENTED ("--speed-large-files"); break; case 'I': if (ignore_regexps % 8 == 0) ignore_regexp_array = (struct re_pattern_buffer **) xrealloc (ignore_regexp_array, ((ignore_regexps + 8) * sizeof (struct re_pattern_buffer *))); ignore_regexp_array[ignore_regexps++] = alloc_and_compile_regex (optarg); break; case 'J': minimum_size = atoi (optarg); break; case 'L': label = optarg; UNIMPLEMENTED ("--label"); break; case 'N': new_file = 1; UNIMPLEMENTED ("--new-file"); break; case 'O': UNIMPLEMENTED ("--compare-words"); item_regexp = alloc_and_compile_regex (optarg); break; case 'P': unidirectional_new_file = 1; UNIMPLEMENTED ("--unidirectional-new-file"); break; case 'Q': insert_start = optarg; break; case 'R': insert_stop = optarg; break; case 'S': starting_file = optarg; UNIMPLEMENTED ("--starting-file"); break; case 'T': initial_tab = 1; break; case 'V': show_links = 1; break; case 'W': word_mode = 1; break; case 'X': exclude_from = optarg; UNIMPLEMENTED ("--exclude-from"); break; case 'Y': delete_start = optarg; break; case 'Z': delete_stop = optarg; break; case 'a': text = 1; UNIMPLEMENTED ("--text"); break; case 'b': ignore_space_change = 1; ignore_blank_lines = 1; break; case 'C': case 'c': UNIMPLEMENTED ("--context"); if (optarg) horizon_lines = atoi (optarg); context = 1; break; case 'd': minimal = 1; UNIMPLEMENTED ("--minimal"); break; case 'e': ed = 1; UNIMPLEMENTED ("--ed"); break; #if FIXME case 'h': UNIMPLEMENTED ("-h"); break; #endif case 'i': ignore_case = 1; break; case 'j': ignore_delimiters = 1; break; case 'k': if (find_termcap < 0) find_termcap = 0; overstrike = 1; overstrike_for_less = 1; break; case 'l': paginate = 1; break; case 'm': avoid_wraps = 1; break; case 'n': rcs = 1; UNIMPLEMENTED ("--rcs"); break; case 'o': overstrike = 1; break; case 'p': show_c_function = 1; UNIMPLEMENTED ("--show-c-function"); break; case 'q': brief = 1; UNIMPLEMENTED ("--brief"); break; case 'r': recursive = 1; UNIMPLEMENTED ("--recursive"); break; #if FIXME case 's': report_identical_files = 1; UNIMPLEMENTED ("--report-identical-files"); break; #endif case 't': /* mdiff draft */ UNIMPLEMENTED ("--tolerance"); tolerance = atoi (optarg); break; #if FIXME case 't': expand_tabs = 1; UNIMPLEMENTED ("--expand-tabs"); break; #endif case 'U': case 'u': UNIMPLEMENTED ("--unified"); if (optarg) horizon_lines = atoi (optarg); unified = 1; break; case 'v': verbose = 1; break; case 'w': ignore_all_space = 1; break; #if FIXME case 'w': width = atoi (optarg); UNIMPLEMENTED ("--width"); break; #endif case 'x': exclude = optarg; UNIMPLEMENTED ("--exclude"); break; case 'y': side_by_side = 1; UNIMPLEMENTED ("--side-by-side"); break; case 'K': /* compatibility option, equal to -t now */ /* fall through */ case 'z': #if HAVE_TPUTS if (find_termcap < 0) find_termcap = 1; break; #else error (EXIT_ERROR, 0, _("cannot use -z, termcap not available")); #endif case GTYPE_GROUP_FORMAT_OPTION: gtype_group_format = optarg; UNIMPLEMENTED ("--gtype-group-format"); break; case HORIZON_LINES_OPTION: horizon_lines = atoi (optarg); UNIMPLEMENTED ("--horizon-lines"); break; case LEFT_COLUMN_OPTION: left_column = 1; UNIMPLEMENTED ("--left-column"); break; case LINE_FORMAT_OPTION: line_format = optarg; UNIMPLEMENTED ("--line-format"); break; case LTYPE_LINE_FORMAT_OPTION: ltype_line_format = optarg; UNIMPLEMENTED ("--ltype-line-format"); break; case SUPPRESS_COMMON_LINES_OPTION: suppress_common_lines = 1; UNIMPLEMENTED ("--suppress-common-lines"); break; } if (minimum_size < 0) minimum_size = relist_files ? (word_mode ? 10 : 5) : 1; if (!relist_files && word_mode && argc - optind != 2) { error (0, 0, _("word merging for two files only (so far)")); usage (EXIT_ERROR); } /* If find_termcap still undecided, make it true only if autopager is set while stdout is directed to a terminal. This decision might be reversed later, if the pager happens to be "less". */ if (find_termcap < 0) find_termcap = autopager && isatty (fileno (stdout)); /* Process trivial options. */ if (show_version) { printf ("mdiff (GNU %s) %s\n", PACKAGE, VERSION); fputs (_("\ \n\ Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n"), stdout); fputs (_("\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), stdout); fputs (_("\ \n\ Written by Franc,ois Pinard .\n"), stdout); exit (EXIT_SUCCESS); } if (show_help) usage (EXIT_SUCCESS); /* Register all input files. */ if (optind == argc) new_input ("-"); else while (optind < argc) new_input (argv[optind++]); /* Save some option values. */ if (inputs == 2) { left->listing_allowed = !inhibit_left; left->user_start = delete_start; left->user_stop = delete_stop; right->listing_allowed = !inhibit_right; right->user_start = insert_start; right->user_stop = insert_stop; common_listing_allowed = !inhibit_common; } else { if (inhibit_left || inhibit_right || inhibit_common || delete_start || delete_stop || insert_start || insert_stop) error (0, 0, _("options -123RSYZ meaningful only when two inputs")); } /* Do all the crunching. */ study_all_inputs (); prepare_clusters (); prepare_indirects (); if (!relist_files) prepare_mergings (); /* Output results. */ output_file = stdout; if (relist_files) relist_annotated_files (); else if (context) relist_merged_lines (0, 1); else if (unified) relist_merged_lines (1, 1); else if (word_mode) relist_merged_words (); /* Clean up. */ exit (exit_status); } wdiff-1.2.1/po/0000755000000000000000000000000012116513226010176 500000000000000wdiff-1.2.1/po/gl.gmo0000644000000000000000000003566012116513226011236 00000000000000o ` ]a K 9 ?E    8 1 5: ;p ' % ' )" ?L = > < CF 9 9 @ $?;d?+G <T9>9 #D9hA7CC`@/>GT->2 ;<?xGAGBA(=&V'} / I \ j%uEKd&"B@ 6 $$,-Q-&.6$K'p""l&#07!Qs%?<B(]!K!9="?w"""""9#2J#<}#@#*#&&$,M$*z$F$F$D3%Bx%N%B &9M&J&(&?&@;'-|'Q'@'B=(F(:($)C')Ik)6)P)P=*U*1*G+S^+9+I+:6,Aq,D,S,RL-Q-P-B._.|..%..3.2'/Z/^/ }/ /9//U/40G02P0 000SN1x154)Q4P{4 4#4P5b5;v5<5959)64c6>66'6!7)>74h7(7'77 q8/8,8"8@99S9,9!949:B/:Ir::<s;cZ.,_Tjh`AigbNGB!4/ S-><nH#l+@K%m Of?F16L C]Q;PV9W("ka87I=Edo*X:3 )UM2YeJ&R'[^5 $ \0D Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -p, --patch-format generate patch format -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region %d file, %d files, %d item %d items %d member %d members %d member, %d members,%s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2013-01-05 17:52+0200 Last-Translator: Leandro Regueiro Language-Team: Galician Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Depuración: Saída de formatado: Modos de operación: Opcións do modo palabra: Escrito por François Pinard . Escrito por Wayne Davison . --help Mostra esta mensaxe de axuda e sae --version mostrar a versión do programa e saír %d %.0f%% cambiada %d %.0f%% cambiadas %d %.0f%% común %d %.0f%% comúns %d %.0f%% eliminada %d %.0f%% eliminadas %d %.0f%% inserida %d %.0f%% inseridas -0, --debugging mostrar moitos detalles sobre o que está a pasar -1, --no-deleted inhibir a saída das palabras eliminadas -2, --no-inserted inhibir a saída de palabras inseridas -3, --no-common inhibir a saída de palabras comúns -=, --use-equals substituír os espazos con signos igual nos unidiffs -A, --auto-pager chama automaticamente a un paxinador -C, --copyright mostrar o copyright e saír -O, --item-regexp=REGEXP comparar os elementos tal como define REGEXP -P o mesmo que -p -S, --string[=CADEA] tomar nota de outra CADEA de usuario -T, --initial-tab escribir TAB en vez de espazo inicial -U o mesmo que -p e -u -V, --show-links indicar referencias a ficheiro e liña das anotacións -W, --word-mode comparar palabras en vez de liñas -a, --auto-pager chama automaticamente a un paxinador -d, --diff-input usar un único unified diff como entrada -e, --echo-comments repetir os comentarios en stderr -h (ignorado) -h, --help mostrar esta mensaxe de axuda e saír -i, --ignore-case ignorar maiúsculas/minúsculas ao comparar -l, --paginate paxinar a saída con «pr» -m, --avoid-wraps facer que os campos non salten dunha liña a outra -n, --avoid-wraps facer que os campos non salten dunha liña a outra -o, --old-diffs xerar diffs do antigo estilo, independentemente de cal sexa -p, --patch-format xerar formato de parche -q, --quiet inhibir a mensaxe de chamada de «mdiff» -s, --statistics indica cantas palabras se eliminaron, inseriron, etc. -s, --strip-comments retirar as liñas de comentario -t, --expand-tabs converter as tabulacións en espazos na saída -u, --unidiffs forxar que a saída sexa unidiff -v, --verbose indica algunhas estatísticas en stderr -v, --version mostrar a versión do programa e saír -w, --start-delete=CADEA cadea para marcar o inicio da rexión de eliminación -x, --end-delete=CADEA cadea para marcar o final da rexión de eliminación -y, --start-insert=CADEA cadea para marcar o inicio da rexión de inserción -z, --end-insert=CADEA cadea para marcar o final da rexión de inserción %d ficheiro, %d ficheiros, %d elemento %d elementos %d membro %d membros %d membro, %d membros,%s (para a expresión regular «%s»)%s: %d palabra%s: %d palabras%s: o programa de entrada foi matado polo sinal %d %s: o programa de saída foi matado polo sinal %d » , %d elemento , %d elementos , agrupando, rematado Se non se indica un FICHEIRO, lese da entrada estándar. Iniciando «%sOs argumentos obrigatorios nas opcións longas tamén o son para as opcións curtas. Resumo da lectura:Lendo %sEnvíe os informes de fallo . OrdenandoOrdenando os membrosIsto é software libre; para ver as condicións de copia consulte o código fonte. NON hai garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO. Este programa tamén indica como se podería ter chamado directamente a «mdiff». Este programa é software libre; pode redistribuílo e/ou modificalo baixo os termos da Licenza Pública Xeral de GNU tal como foi publicada pola Free Software Foundation; xa a versión 2, ou (á súa elección) calquera versión posterior. Este programa distribúese coa esperanza de que sexa útil, pero SEN NINGUNHA GARANTÍA; nin sequera a garantía implícita de COMERCIABILIDADE ou APTITUDE PARA UN FIN EN PARTICULAR. Vexa a Licenza Pública Xeral de GNU para ter máis detalles. Debería ter recibido unha copia da Licenza Pública Xeral de GNU con este programa; se non é o caso, consulte . Execute «%s --help» para obter máis información. Uso: %s [OPCIÓN]... FICHEIRO1 FICHEIRO2 Uso: %s [OPCIÓN]... FICHEIRO1 FICHEIRO2 ou: %s -d [OPCIÓN]... [FICHEIRO] Uso: %s [OPCIÓN]... [FICHEIRO] Uso: %s [OPCIÓN]... [FICHEIRO]... Se non se indica un FICHEIRO, ou se o FICHEIRO é -, lese da entrada estándar. Resumo do traballo:non é posíbel empregar -t, termcap non está dispoñíbelnon foi posíbel empregar -z, termcap non está dispoñíbelfalta a cabeceira «new» no diff contextual na liña %ldfalta a cabeceira «old» no diff contextual na liña %ldnon foi posíbel acceder á base de datos de termcapnon foi posíbel atopar un nome para a diferencia da liña %lddirectorios non compatíbeisproduciuse un erro ao redirixir o fluxoproduciuse un erro ao executar %signorando a opción %s (non implementado)cabeceira de diff unificado non válida na liña %lddiff contextual mal formado na liña %lddiff unificado mal formado na liña %ldmdiff - Estuda varios ficheiros e busca secuencias semellantes, e despois produce listas detalladas de diferencias e semellanzas. faltan os argumentos de ficheironon existe ningún directorio temporal axeitadosó un ficheiro pode ser a entrada estándarsó se permite un nome de ficheiroas opcións -123RSYZ só teñen sentido cando hai dúas entradasescolla un terminal mediante a variábel de ambiente TERMo tipo de terminal «%s» non está definidodemasiados argumentos de ficheiroexecute «%s --help» para obter máis información non foi posíbel abrir «%s»unify - Transforma os diffs contextuais en unidiffs ou viceversa. wdiff - Compara as palabras en dous ficheiros e informa das diferencias. wdiff - Calcula as diferencias de palabras iniciando internamente «mdiff -W». Este programa existe principalmente por compatibilidade coa sintaxe «wdiff» que agora xa é antiga. mestura de palabras só para dous ficheiros (ata o de agora)wdiff-1.2.1/po/ga.gmo0000644000000000000000000000535612116513226011222 00000000000000L9814>f   &?P<yX7/ ):Id   : E C I      Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . -q, --quiet inhibit the `mdiff' call message %s (for regexp `%s')' , clustering, done Launching `%sReading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. Project-Id-Version: wdiff 0.5.93 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 21:21+0100 Last-Translator: Kevin Scannell Language-Team: Irish Language: ga MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Copyright 1994, 1997 Free Software Foundation, Inc. Le Franois Pinard . Le Wayne Davison . -q, --quiet cuir cosc ar theachtaireacht ghlao `mdiff' %s (ar regexp `%s')' , mhogall, crochnaithe Thos: `%s%s lamhSrtilBaill srtilIs saorbhogearra an romhchlr seo; fach ar an bhunchd le haghaidh coinnollacha cipela. Nl barnta ar bith ann; go fi nl barnta ann d'INDOLTACHT n FEILINACHT D'FHEIDHM AR LEITH. Bain triail as `%s --help' chun tuilleadh eolais a fhil. mdiff - Danann mdiff staidar ar il-chomhaid chun teaghrin at cosil le chile a aimsi; ansin taispenann s liosta, b'fhidir mionchruinn, de dhifrochta agus coslacht. unify - Tiontaigh diff-a chomhthacs go unidiff-a agus vice versa. wdiff - Cimheas focail as dh chomhad agus taispein difrochta. wdiff - Aimsigh difrochta idir focail tr `mdiff -W' a thos go hinmhenach. T an romhchlr seo ann chun an chomhrir measartha seanfhaiseanta `wdiff' a thac. wdiff-1.2.1/po/nl.gmo0000644000000000000000000004012112116513226011231 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""]Z$K$9%?>% ~%%%%=%6&:7&;r&+&;&-'+D'Ap'@'?'G3(J{(?(;)LB),)I)J*;Q*N*F*?#+>c+H+H+&4,=[,N,6,6-BV-K-K->1.Ep.<.E.D9/Q~/3/C0DH0:0Q0>1FY1F1E1E-2Ds222233#,3"P3s35363334 %4?14q4L444|4 m5y55J566&9+@9Ol9#9&9V:^::p:::5:5;0R;,;);$;;2<-N<#|<<<G=#f=.=(=6=0>&J>q>%>>B>I ?T?G @_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff-1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-30 09:56+0200 Last-Translator: Benno Schulenberg Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.0 Plural-Forms: nplurals=2; plural=n != 1; Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Uitvoer opmaken: Werkingsmodi: Woordmodusopties: Geschreven door François Pinard . Geschreven door Wayne Davison . --help deze hulptekst tonen en stoppen --version programmaversie tonen en stoppen %d %.0f%% gewijzigd %d %.0f%% gewijzigd %d %.0f%% gemeenschappelijk %d %.0f%% gemeenschappelijk %d %.0f%% verwijderd %d %.0f%% verwijderd %d %.0f%% ingevoegd %d %.0f%% ingevoegd -0, --debugging details tonen over wat er gedaan wordt -1, --no-deleted verwijderde woorden niet weergeven -2, --no-inserted ingevoegde woorden niet weergeven -3, --no-common gemeenschappelijke woorden niet weergeven -=, --use-equals spaties vervangen door gelijktekens in uni-diffs -A, --auto-pager automatisch een 'pager' aanroepen -C, --copyright auteursrecht tonen en stoppen -O, --item-regexp=REGEXP items vergelijken via deze reguliere expressie -P hetzelfde als '-p' -S, --string[=TEKENS] in uitvoer '-]' vervangen door deze tekenreeks -T, --initial-tab geen spatie maar tab als eerste teken gebruiken -U hetzelfde als '-p' en ' -u' samen -V, --show-links bestandsnamen en regelnummers toevoegen in notities -W, --word-mode woorden in plaats van regels vergelijken -a, --auto-pager automatisch een 'pager' aanroepen -c, --context-diffs als uitvoer context-diffs produceren -d, --diff-input één enkele uni-diff als invoer gebruiken -e, --echo-comments commentaar naar standaardfoutuitvoer uitvoeren -h (genegeerd) -h, --help deze hulptekst tonen en stoppen -i, --ignore-case verschil tussen hoofd- en kleine letters negeren -k, --less-mode uitvoermodus voor 'less' -l, --less-mode uitvoermodus voor 'less' -l, --paginate de uitvoer met 'pr' in pagina's indelen -m, --avoid-wraps velden niet voortzetten op een volgende regel -n, --avoid-wraps velden niet voortzetten op een volgende regel -o, --old-diffs als uitvoer antieke diffs produceren -o, --printer 'overstrike' gebruiken als bij printers -p, --patch-format uitvoer in patch-opmaak produceren -p, --printer 'overstrike' gebruiken als bij printers -q, --quiet de 'mdiff'-aanroepmelding onderdrukken -s, --statistics aantal verwijderingen, invoegingen, enzovoort tonen -s, --strip-comments commentaarregels weglaten -t, --expand-tabs in de uitvoer tabs omzetten naar spaties -t, --terminal 'termcap' gebruiken als voor terminals -u, --unidiffs als uitvoer uni-diffs produceren -v, --verbose enige statistieken rapporteren op standaardfoutuitvoer -v, --version programmaversie tonen en stoppen -w, --start-delete=TEKENS markering voor begin van verwijderd stuk -x, --end-delete=TEKENS markering voor einde van verwijderd stuk -y, --start-insert=TEKENS markering voor begin van ingevoegd stuk -z, --end-insert=TEKENS markering voor einde van ingevoegd stuk -z, --terminal 'termcap' gebruiken als voor terminals %d cluster, %d clusters, %d bestand, %d bestanden, %d item %d items %d lid %d leden %d lid, %d leden, %d overlapping %d overlappingen %s (voor reguliere expressie '%s')%s: %d woord%s: %d woorden%s: invoerprogramma is geëlimineerd door signaal %d %s: uitvoerprogramma is geëlimineerd door signaal %d ' , %d item , %d items , clusteren..., voltooid Als er geen BESTAND gegeven is, wordt standaardinvoer gelezen. Starten van '%s(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.) Leessamenvatting:Lezen van %s...Rapporteer gebreken in het programma aan ; meld fouten in de vertaling aan . Sorteren...Sorteren van leden...Dit is vrije software; zie de programmatekst voor de kopieervoorwaarden. Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Dit programma toont ook hoe 'mdiff' direct aangeroepen had kunnen worden. Dit programma is vrije software; u mag het verder verspreiden en/of wijzigen onder de voorwaarden van de GNU General Public License zoals gepubliceerd door de Free Software Foundation, naar keuze ofwel onder versie 3 ofwel onder een nieuwere versie van die licentie. Dit programma wordt uitgegeven in de hoop dat het nuttig is, maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de GNU General Public License voor meer details. Bij dit programma hoort u een kopie van de GNU General Public License ontvangen te hebben; is dit niet het geval, kijk dan op . Typ '%s --help' voor meer informatie. Gebruik: %s [OPTIE...] BESTAND1 BESTAND2 Gebruik: %s [OPTIE...] BESTAND1 BESTAND2 of: %s -d [OPTIE...] [BESTAND] Gebruik: %s [OPTIE...] [BESTAND] Gebruik: %s [OPTIE...] [BESTAND...] Als BESTAND '-' is, of als er geen BESTAND gegeven is, wordt standaardinvoer gelezen. Werksamenvatting:kan optie '-t' niet honoreren; termcap is niet beschikbaarkan optie '-z' niet honoreren; termcap is niet beschikbaar'new'-kopregel ontbreekt in context-diff op regel %ld'old'-kopregel ontbreekt in context-diff op regel %ldkan geen toegang krijgen tot de termcap-databankkan het soort diff niet bepalen op regel %ldmappen vergelijken wordt niet ondersteundfout bij omleiden van gegevensstroomuitvoeren van %s is misluktoptie '%s' wordt genegeerd (niet geïmplementeerd)ongeldige kopregels van uni-diff op regel %ldmisvormde context-diff op regel %ldmisvormde uni-diff op regel %ldmdiff - Bestudeert meerdere bestanden en zoekt naar gelijkenissen, en produceert dan een opsomming van verschillen en overeenkomsten. ontbrekende bestandsargumentener is geen geschikte tijdelijke mapslechts één bestand kan standaardinvoer zijnslechts één bestandsnaam is toegestaanopties '-123RSYZ' zijn alleen zinvol bij twee invoerenkies een terminal via de omgevingsvariabele TERMterminaltype '%s' is niet gedefinieerdte veel bestandsargumententyp '%s --help' voor meer informatie kan '%s' niet openenunify - Transformeert context-diffs naar uni-diffs, of omgekeerd. wdiff - Vergelijkt woorden in twee bestanden en rapporteert verschillen. wdiff - Rapporteert woordverschillen in twee bestanden via het aanroepen van 'mdiff -W'. Dit programma is bedoeld om de oude wdiff-syntax nog te kunnen gebruiken. samenvoegen op woordniveau werkt (voorlopig) alleen voor twee bestandenwdiff-1.2.1/po/en_GB.po0000644000000000000000000013271312116513225011436 00000000000000# English (British) translation. # Copyright (C) 2004 Free Software Foundation, Inc. # Gareth Owen , 2004. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:21+0100\n" "Last-Translator: Gareth Owen \n" "Language-Team: English (British) \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (for regexp `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Only one file may be standard input." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Directories not supported" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Reading %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d items\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d items\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d items\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorting" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", clustering" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", done\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorting members" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", clustering" msgstr[1] ", clustering" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d items\n" msgstr[1] ", %d items\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Select a terminal through the TERM environment variable." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Could not access the termcap data base." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Terminal type `%s' is not defined." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d words" msgstr[1] "%s: %d words" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% common" msgstr[1] " %d %d%% common" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% deleted" msgstr[1] " %d %d%% deleted" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% changed" msgstr[1] " %d %d%% changed" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% inserted" msgstr[1] " %d %d%% inserted" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try `%s --help' for more information.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Usage: %s [OPTION]... [FILE]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Operation modes:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (ignored)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose report a few statistics on stderr\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help display this help and exit\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version output version information and exit\n" #: src/mdiff.c:3783 #, fuzzy msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatting output:\n" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab produce TAB instead of initial space\n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate paginate output through `pr'\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] take note of another user STRING\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links give file and line references in annotations\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expand tabs to spaces in the output\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging output many details about what is going on\n" #: src/mdiff.c:3795 #, fuzzy msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Word mode options:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted inhibit output of deleted words\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted inhibit output of inserted words\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common inhibit output of common words\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automatically calls a pager\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variation of printer mode for \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps do not extend fields through newlines\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer overstrike as for printers\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal use termcap as for terminal displays\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compare words instead of lines\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "With no FILE, or when FILE is -, read standard input.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Report bugs to .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Cannot use -z, termcap not available." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Word merging for two files only (so far)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Written by Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Options -123RSYZ meaningful only when two inputs." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Could not find a name for the diff at line %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Try `%s --help' for more information.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transforms context diffs into unidiffs, or vice-versa.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Usage: %s [OPTION]... [FILE]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs force output to context diffs\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments echo comments to standard error\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs output old-style diffs, no matter what\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format generate patch format\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P same as -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments strip comment lines\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs force output to unidiffs\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U same as -p and -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals replace spaces by equal signs in unidiffs\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "If FILE is not specified, read standard input.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Unable to open `%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Only one filename allowed" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Written by Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Invalid unified diff header at line %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Malformed unified diff at line %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Context diff missing `old' header at line %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Malformed context diff at line %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Context diff missing `new' header at line %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public Licence as published by\n" "the Free Software Foundation; either version 2, or (at your option)\n" "any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public Licence for more details.\n" "\n" "You should have received a copy of the GNU General Public Licence\n" "along with this program; if not, write to the Free Software Foundation,\n" "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Compares words in two files and report differences.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Usage: %s [OPTION]... FILE1 FILE2\n" " %s -d [OPTION]... [FILE]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Mandatory arguments to long options are mandatory for short options too.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright print copyright then exit\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automatically calls a pager\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help print this help\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case fold character case while comparing\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation of printer mode for \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps do not extend fields through newlines\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike as for printers\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics say how many words deleted, inserted etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal use termcap as for terminal displays\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version print program version then exit\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING string to mark beginning of delete region\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=STRING string to mark end of delete region\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING string to mark beginning of insert region\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=STRING string to mark end of insert region\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Cannot use -t, termcap not available." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Missing file arguments" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Missing file arguments" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Usage: %s [OPTION]... FILE1 FILE2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "Reading %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Read summary: %d files, %d items\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Work summary: %d clusters, %d members\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Work summary: %d clusters, %d members, %d overlaps\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" wdiff-1.2.1/po/sk.gmo0000644000000000000000000000407412116513226011244 00000000000000 h9i81 #0 8CK[&?<j%96/1 F S ] hr($sMB7     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:55+0100 Last-Translator: Stanislav Meduna Language-Team: Slovak Language: sk MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8-bit Copyright (C) 1994, 1997 Free Software Foundation, Inc. Vytvoril Franc,ois Pinard . Vytvoril Wayne Davison . %s (pre regexp `%s'), zluuje sa, hotovo ta sa %sTriedi saTriedia sa lenyToto je vone riten softvr; pozrite zdrojov kd pre podmienky renia. Neexistuje IADNA ZRUKA, ani OBCHODOVATENOSTI alebo VHODNOSTI NA KONKRTNY EL. Skste `%s --help' pre viac informci. mdiff - Prezer viac sborov a had podobn sekvencie. Potom me vypsa detailn zoznam rozdielov a podobnost. unify - Transformuje kontextov diff-y na unidiff-y alebo naopak. wdiff - Porovn slov v dvoch sboroch a vype zmeny. wdiff-1.2.1/po/uk.gmo0000644000000000000000000005357212116513226011255 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""$m;%[%a&g&2&&+&P'7T'n'}'Py(P(V)\r))sR*u*s<+s+[$,,}-3-m-d".6.n.S-/[/u/S0y06w1r1s!2Z2Z2zK33N44|o5P5y=6k6#7J778M9e^99F::W;;a<-<0=5N=A=A=O>6X>3>r>a6??8???@@@ ZA{AXAA-B/BCjDYHGLII>JASJJ SKPtKPKuLuLRMKUM0M`M'3Nq[NvNxDOvO4P::Q_uQ_QE5R{R^S8`SFSYS+:TfTUNUtW_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: GNU wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-25 22:47+0300 Last-Translator: Yuri Chornoivan Language-Team: Ukrainian Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.5 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); Авторські права належать Free Software Foundation, Inc., 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012. Авторські права належать Free Software Foundation, Inc., 1992, 1997, 1998, 1999, 2010 Авторські права належать Free Software Foundation, Inc., 1994, 1997 Авторські права належать Free Software Foundation, Inc., 1997, 1998, 1999 Зневаджування: Форматування результатів: Режими обробки: Параметри режиму слів: Автором програми є François Pinard . Створено Wayne Davison . --help показати ці довідкові дані і завершити роботу --version показати дані щодо версії програми і завершити роботу %d %.0f%% змінено %d %.0f%% змінено %d %.0f%% змінено %d %.0f%% спільні %d %.0f%% спільні %d %.0f%% спільні %d %.0f%% вилучено %d %.0f%% вилучено %d %.0f%% вилучено %d %.0f%% вставлено %d %.0f%% вставлено %d %.0f%% вставлено -0, --debugging показувати докладні повідомлення щодо дій, які виконуються -1, --no-deleted блокувати виведення даних щодо вилучених слів -2, --no-inserted блокувати виведення даних щодо вставлених слів -3, --no-common блокування виведення даних щодо спільних слів -=, --use-equals замінити пробіли символами рівності у даних unidiff -A, --auto-pager автоматично поділяти на сторінки -C, --copyright показати дані щодо авторських прав і завершити роботу -O, --item-regexp=ФОРМ_ВИР порівняти дані відповідно до вказаного ФОРМ_ВИР -P те саме, що і -p -S, --string[=РЯДОК] звернути увагу на інший РЯДОК користувача -T, --initial-tab додавати TAB замість початкового пробілу -U те саме, що -p і -u -V, --show-links додати посилання на файли і рядки до анотацій -W, --word-mode порівнювати слова, а не рядки -a, --auto-pager автоматично поділяти на сторінки -c, --context-diffs виводити дані у форматі контекстних відмінностей -d, --diff-input використовувати для виведення єдиний файл уніфікованих даних відмінностей -e, --echo-comments дублювати коментарі до стандартного виводу помилок -h (проігноровано) -h, --help показати ці довідкові дані і завершити роботу -i, --ignore-case не зважати не регістр літер під час порівняння -k, --less-mode різновид режиму принтера для "less" -l, --less-mode різновид режиму принтера для "less" -l, --paginate поділити виведені дані на сторінки за допомогою «pr» -m, --avoid-wraps не розгортати поля додаванням символів розбиття на рядки -n, --avoid-wraps не розгортати поля додаванням символів розбиття на рядки -o, --old-diffs виводити дані у старому форматі diff, без врахування їхнього характеру -o, --printer надкреслювати дані, подібно форматування для друку -p, --patch-format створити дані у форматі латки -p, --printer виводити над заміненими символами, як на принтері -q, --quiet блокувати повідомлення щодо виклику «mdiff» -s, --statistics повідомити про кількість вилучених слів, доданих слів тощо -s, --strip-comments вилучати рядки коментарів -t, --expand-tabs перетворити символи табуляції у виведених даних на пробіли -t, --terminal використовувати termcap, подібно до виведення даних на термінал -u, --unidiffs виводити дані у форматі unidiff -v, --verbose звітувати щодо статистичних даних до stderr -v, --version показати дані щодо версії програми і завершити роботу -w, --start-delete=РЯДОК рядок, який позначатиме початок вилученого фрагмента -x, --end-delete=РЯДОК рядок, який позначатиме завершення вилученого фрагмента -y, --start-insert=РЯДОК рядок, який позначатиме початок доданого фрагмента -z, --end-insert=РЯДОК рядок, який позначатиме завершення доданого фрагмента -z, --terminal використовувати termcap, подібно до виведення даних на термінал %d група, %d групи, %d груп,, %d файл, %d файли, %d файлів, %d пункт %d пункти %d пунктів %d елемент %d елементи %d елементів %d елемент, %d елементи, %d елементів, %d перекриття %d перекриття %d перекриттів %s (для формального виразу «%s»)%s: %d слово%s: %d слова%s: %d слів%s: виконання програми-джерела даних було припинено сигналом %d %s: програму-отримувач даних було зупинено сигналом %d » , %d пункт , %d пункти , %d пунктів , групування, виконано Якщо ФАЙЛ не вказано, дані буде прочитано зі стандартного джерела вхідних даних. Запуск «%sОбов’язкові аргументи для довгих форм запису параметрів є обов’язковими і для скорочених форм. Підсумки читання:Читання %sПро вади слід повідомляти на адресу . ВпорядкуванняВпорядкування елементівЦе програмне забезпечення є вільним, умови копіювання викладено у його початкових кодах. Умовами ліцензування програми НЕ передбачено жодних гарантій, зокрема гарантій працездатності або придатності для певної мети. Крім того, ця програма повідомляє про те, у який спосіб можна викликати «mdiff» безпосередньо. Ця програма є вільним програмним забезпеченням; ви можете поширювати її і/або змінювати її за умов дотримання GNU General Public License у тому вигляді, у якому її оприлюднено Free Software Foundation; версії 3 цієї ліцензії, або (за потреби) будь-якої пізнішої версії. Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ- ЯКИХ ГАРАНТІЙ; навіть без очевидної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ або ПРИДАТНОСТІ ДЛЯ ЯКОЇСЬ МЕТИ. Докладніше про це ви можете дізнатися з GNU General Public License. Разом з цією програмою ви маєте отримати копію GNU General Public License. Якщо ви її не отримали, зверніться за адресою , щоб дізнатися про подальші дії. Виконайте команду «%s --help», щоб дізнатися більше. Використання: %s [ПАРАМЕТР]... ФАЙЛ1 ФАЙЛ2 Використання: %s [ПАРАМЕТР]... ФАЙЛ1 ФАЙЛ2 або: %s -d [ПАРАМЕТР]... [ФАЙЛ] Використання: %s [ПАРАМЕТР]... [ФАЙЛ] Використання: %s [ПАРАМЕТР]... [ФАЙЛ]... Якщо не вказано ФАЙЛ або вказано значення -, дані буде прочитано зі стандартного джерела вхідних даних. Підсумки обробки:не можна використовувати -t, не виявлено termcapне можна використовувати -z, не виявлено termcapу даних контекстних відмінностей немає заголовка «new» у рядку %ldу даних контекстних відмінностей немає заголовка «old» у рядку %ldне вдалося отримати доступ до бази даних termcapне вдалося виявити назву для diff у рядку %ldкаталоги не підтримуютьсяпомилка під час спроби переспрямування потоку данихне вдалося виконати %sпропущено параметр %s (обробку цього параметра не реалізовано)некоректний заголовок даних уніфікованих відмінностей, рядок %ldпомилкове форматування даних контекстних відмінностей у рядку %ldпомилка форматування уніфікованих даних відмінностей у рядку %ldmdiff виконує обробку декількох файлів і знаходить подібні послідовності символів, а потім створює докладні списки відмінностей і подібностей. не вказано аргументів-назв файлне виявлено відповідного каталогу тимчасових данихстандартним джерелом даних може бути лише один файлможна вказувати лише одну назву файлапараметри -123RSYZ мають сенс, лише якщо використано два файли вхідних данихвибір термінала за допомогою змінної середовища TERMтип термінала «%s» не визначенозанадто багато аргументів-назв файліввиконайте команду «%s --help», щоб дізнатися більше. не вдалося відкрити «%s»unify — програма для перетворення контекстних даних відмінностей на уніфіковані дані, і навпаки. wdiff — програма для порівняння слів у двох файлах і створення звітів щодо відмінностей. wdiff — програма для визначення відмінностей у словах текстів за допомогою команди «mdiff -W». Основним призначенням цієї програми є підтримка застарілих синтаксичних конструкцій «wdiff». об’єднання за словами реалізовано лише для пар файлів (поки що)wdiff-1.2.1/po/Rules-quot0000644000000000000000000000340011744500575012127 00000000000000# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$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 "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header wdiff-1.2.1/po/wdiff.pot0000644000000000000000000003302712116513225011745 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr "" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr "" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr "" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr "" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr "" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr "" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr "" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr "" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr "" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr "" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr "" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr "" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr "" #: src/unify.c:290 msgid " -P same as -p\n" msgstr "" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr "" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr "" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr "" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr "" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr "" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr "" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr "" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" wdiff-1.2.1/po/en@quot.gmo0000644000000000000000000003632612116513226012247 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!("r"]$K{$9$?% A%N%c%v%8%1%5%;,&'h&%&'&)&?'=H'>'<'C(9F(9(@($(; )?\)+)G)<*9M*7*>*9*#8+9\+A+F+F,;f,C,C,@*-8k-/-8-B .GP.-.>.B/2H/;{/?/G/A?0G0A0B 1N1i1~111111&2'92a2d2 {22/2 2I2 3 &3%13W3_3o3I4dQ4*6"6B7G7 e767 7$7$7181G8&y8.8889$9'<9"d9"998:&O:#v::0:7:%;C;)[;;?;<;<(<_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: GNU wdiff 1.2.1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2013-03-09 02:55+0100 Last-Translator: Automatically generated Language-Team: none Language: en@quot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for “less” -l, --less-mode variation of printer mode for “less” -l, --paginate paginate output through ‘pr’ -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the ‘mdiff’ call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp ‘%s’)%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how ‘mdiff’ could have been called directly. 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 3 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, see . Try ‘%s --help’ for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing ‘new’ header at line %ldcontext diff missing ‘old’ header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type ‘%s’ is not definedtoo many file argumentstry ‘%s --help’ for more information unable to open ‘%s’unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching ‘mdiff -W’. This program exists mainly to support the now oldish ‘wdiff’ syntax. word merging for two files only (so far)wdiff-1.2.1/po/et.gmo0000644000000000000000000000416712116513226011242 00000000000000 h9i81 #0 8CK[&?<X%;~71$ A NX `j})L}vG:<     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:25+0100 Last-Translator: Toomas Soome Language-Team: Estonian Language: et MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8-bit Autoriigus (C) 1994, 1997 Free Software Foundation, Inc. Kirjutanud Franois Pinard . Kirjutanud Wayne Davison . %s (regulaaravaldisele `%s'), klasterdan, valmis Loen %sJrjestanJrjestan liikmeidSee programm on vaba tarkvara; kopeerimise tingimused leiate lhtetekstidest. Programmil POLE garantiid; isegi mtteliselt vljendatud garantiid TURUVRTUSELE vi KINDLA EESMRGIGA KASUTAMISE sobivusele. Lisainfo saamiseks proovige `%s --help'. mdiff - Uurib faile ning otsib sarnaseid jrjendeid. Seejrel koostab vimalikult detailse erinevuste ja sarnasuste loendid. unify - Teisendab konteksti erinevused unidiff esitusse vi vastupidi. wdiff - Vrdleb snu kahes failis ja teatab erinevustest. wdiff-1.2.1/po/pt_BR.gmo0000644000000000000000000000432712116513226011636 00000000000000 h9i81 #0 8CK[&?<%A82H"{ 1BQB     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:49+0100 Last-Translator: Halley Pacheco de Oliveira Language-Team: Brazilian Portuguese Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Generator: KBabel 0.9.5 Direitos Autorais (C) 1994, 1997 Free Software Foundation, Inc. Escrito por Franois Pinard . Escrito por Wayne Davison . %s (para a expresso regular `%s'), agregando (clustering), feito Lendo %sOrdenandoOrdenando membrosEste um programa livre; veja no fonte as condies para copiar. No existe nenhuma garantia, nem mesmo de COMERCIALIZAO ou de ADEQUAO PARA ALGUMA FINALIDADE PARTICULAR. Utilize `%s --help' para obter mais informaes. mdiff - Estuda mltiplos arquivos procurando seqncias similares e produzindo, ento, listas detalhadas de diferenas e similaridades. unify - Transforma contexto `diffs' em `unidiffs', ou vice-versa. wdiff - Compara palavras em dois arquivos e relata as diferenas. wdiff-1.2.1/po/ro.gmo0000644000000000000000000000427612116513226011253 00000000000000 h9i81 #0 8CK[&?<%96/Fv   6wA7Dy     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:51+0100 Last-Translator: Laurentiu Buzdugan Language-Team: Romanian Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright (C) 1994, 1997 Free Software Foundation, Inc. Scris de Franc,ois Pinard . Scris de Wayne Davison . %s (pentru regexp `%s'), clustering, terminat Citesc %sSortezMembrii sortareAcesta este software liber; vedei codul surs pentru condiii despre copiere. Nu exist nici o garanie; nici chiar pentru VANDABILITATE sau POTRIVIRE PENTRU UN SCOP ANUME. ncercai `%s --help' pentru informaii suplimentare. mdiff - Studiaz multiple fiiere i caut pentru secvene similare, iar apoi produce liste detaliate cu diferenele i similaritile. unific - Transform contextele diff n unidiff, sau vice-versa. wdiff - Compar cuvinte din dou fiiere i raporteaz diferenele. wdiff-1.2.1/po/en@quot.po0000644000000000000000000005175312116513225012103 00000000000000# English translations for GNU wdiff package. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the GNU wdiff package. # Automatically generated, 2013. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2013-03-09 02:55+0100\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en@quot\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" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (for regexp ‘%s’)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "only one file may be standard input" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "directories not supported" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Reading %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d item\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Read summary:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d file," msgstr[1] " %d files," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d item\n" msgstr[1] " %d items\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorting" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", clustering" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", done\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorting members" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Work summary:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d cluster," msgstr[1] " %d clusters," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d member\n" msgstr[1] " %d members\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d member," msgstr[1] " %d members," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d overlap\n" msgstr[1] " %d overlaps\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "select a terminal through the TERM environment variable" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "could not access the termcap data base" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "terminal type ‘%s’ is not defined" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d word" msgstr[1] "%s: %d words" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% common" msgstr[1] " %d %.0f%% common" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% deleted" msgstr[1] " %d %.0f%% deleted" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% changed" msgstr[1] " %d %.0f%% changed" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% inserted" msgstr[1] " %d %.0f%% inserted" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try ‘%s --help’ for more information.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Usage: %s [OPTION]... [FILE]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Operation modes:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignored)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose report a few statistics on stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help display this help then exit\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version display program version then exit\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatting output:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab produce TAB instead of initial space\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate paginate output through ‘pr’\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] take note of another user STRING\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links give file and line references in annotations\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expand tabs to spaces in the output\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging output many details about what is going on\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Word mode options:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted inhibit output of deleted words\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted inhibit output of inserted words\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common inhibit output of common words\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automatically calls a pager\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variation of printer mode for “less”\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps do not extend fields through newlines\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer overstrike as for printers\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal use termcap as for terminal displays\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compare words instead of lines\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "With no FILE, or when FILE is -, read standard input.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Report bugs to .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ignoring option %s (not implemented)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "cannot use -z, termcap not available" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "word merging for two files only (so far)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Written by Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "options -123RSYZ meaningful only when two inputs" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "error redirecting stream" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "failed to execute %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "could not find a name for the diff at line %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "try ‘%s --help’ for more information\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transforms context diffs into unidiffs, or vice-versa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Usage: %s [OPTION]... [FILE]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs force output to context diffs\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments echo comments to standard error\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs output old-style diffs, no matter what\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format generate patch format\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P same as -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments strip comment lines\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs force output to unidiffs\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U same as -p and -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals replace spaces by equal signs in unidiffs\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "If FILE is not specified, read standard input.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "unable to open ‘%s’" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "only one filename allowed" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Written by Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "invalid unified diff header at line %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "malformed unified diff at line %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "context diff missing ‘old’ header at line %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "malformed context diff at line %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "context diff missing ‘new’ header at line %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "no suitable temporary directory exists" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: input program killed by signal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: output program killed by signal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Compares words in two files and report differences.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Mandatory arguments to long options are mandatory for short options too.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright display copyright then exit\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automatically calls a pager\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input use single unified diff as input\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help display this help then exit\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case fold character case while comparing\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation of printer mode for “less”\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps do not extend fields through newlines\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike as for printers\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics say how many words deleted, inserted etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal use termcap as for terminal displays\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version display program version then exit\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING string to mark beginning of delete region\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=STRING string to mark end of delete region\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING string to mark beginning of insert region\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=STRING string to mark end of insert region\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "cannot use -t, termcap not available" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "too many file arguments" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "missing file arguments" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Compute word differences by internally launching ‘mdiff -W’.\n" "This program exists mainly to support the now oldish ‘wdiff’ syntax.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Usage: %s [OPTION]... FILE1 FILE2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet inhibit the ‘mdiff’ call message\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "This program also tells how ‘mdiff’ could have been called directly.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Launching `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" wdiff-1.2.1/po/zh_CN.gmo0000644000000000000000000000317612116513226011632 00000000000000 | 9!8[1 &<s4v:3# > IS Zg7 9D    Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 21:08+0100 Last-Translator: Meng Jie Language-Team: Chinese (simplified) Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 版权所有 (C) 1994,1997 自由软件基金会 由 Franc,ois Pinard 编写。 由 Wayne Davison 编写。 %s (对于正规表示式 “%s”),完成 读取 %s排序排序成员本程序是自由软件;请参看源代码的版权声明。本软件不提供任何担保;包括没有适销性和 某一专用目的下的适用性担保。 请尝试执行‘%s --help’以得到更多信息。 wdiff - 比较两个文件中的词汇并报告区别。 wdiff-1.2.1/po/hu.po0000644000000000000000000013657012116513226011106 00000000000000# Hungarian translation for wdiff. # Copyright (C) 2002 Free Software Foundation, Inc. # Emese Kovcs , 2002. # Translated using gnu.twm # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:34+0100\n" "Last-Translator: Emese Kovcs \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (regexphez `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Csak egy fjl lehet szabvnyos bemenet." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "A knyvtrak nem tmogatottak" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "%s olvassa" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elem\n" msgstr[1] ", %d elem\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d elem\n" msgstr[1] ", %d elem\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d elem\n" msgstr[1] ", %d elem\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Rendezs" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", csoportosts" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", ksz\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Tagok rendezse" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", csoportosts" msgstr[1] ", csoportosts" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d elem\n" msgstr[1] ", %d elem\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Vlassz terminlt a TERM vltoz segtsgvel." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "A termcap adatbzis nem elrhet." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "`%s' tpus terminl nincs definilva." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d sz" msgstr[1] "%s: %d sz" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% kzs" msgstr[1] " %d %d%% kzs" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% trlve" msgstr[1] " %d %d%% trlve" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% vltozott" msgstr[1] " %d %d%% vltozott" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% beszrva" msgstr[1] " %d %d%% beszrva" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prbld a `%s --help'-et.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Tbb fjlt elemez, kzs rszek utn kutatva, majd\n" "rszletes listt r ki a hasonlsgokrl s a klnbsgekrl.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Hasznlat: %s [KAPCSOL]... [FJL]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Mveletek:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (figyelmen kvl hagyva)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose nhny statisztikt r ki az stderr-re\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help emlkeztett r ki\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version kirja a program nevt s vltozatt\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab TAB-ot kezd szkz helyett\n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate kimenet oldalszmozsa a `pr' segtsgvel\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" " -S, --string[=SZTRING] msik felhasznli SZTRING-et is figyelembe vesz\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr " -V, --show-links annotciban fjl- s sorszmhivatkozsok\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs tabultor karaktert szkzz alaktja a " "kimenetben\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Hibakeress:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging nagyon rszletesen kirja, hogy mi trtnik\n" #: src/mdiff.c:3795 #, fuzzy msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Sz md kapcsoli:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted megakadlyozza a trlt szavak kirst\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" " -2, --no-inserted megakadlyozza a beszrt szavak kirst\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common megakadlyozza a kzs szavak kirst\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automatikusan lapozt indt\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode kirat md a \"less-hez\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps a mezket nem terjeszti az jsorokon tl\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer 'overstrike' mint nyomtatknl\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal termcap mint terminl kiratsnl\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP elemek sszehasonltsa REGEXP alapjn\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode szavakat hasonlt ssze sorok helyett\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Szabvnyos bemenetrl olvas, ha FJL nincs megadva vagy -. \n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "A hibkat jelentsd a cmen.\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "-z kapcsol hasznlata nem lehetsges, termcap nem elrhet." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Szsszefsls csak kt fjlal (egyelre)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Ez szabad szoftver; a sokszorostsra vonatkoz feltteleket lsd a " "forrsban.\n" "SEMMILYEN garancit nem vllalunk, mg azt sem lltjuk, hogy ez a program\n" "KERESKEDELMI CLOKRA ALKALMAS vagy HASZNLHAT EGY ADOTT FELADATRA.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "rta Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "A -123RSYZ kapcsolk csak akkor rtelmezettek, ha kt bemenet van." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "A megadott sornl a diff neve nem tallhat. Sor: %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Prbld a `%s --help'-et.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Szvegkrnyezeti diffet alakt unidiff, vagy fordtva.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Hasznlat: %s [KAPCSOL]... [FJL]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs mindenkpp szvegkrnyezeti diff kirsa\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments megjegyzseket a szabvnyos hibakimentre\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs mindenkppen rgi stlus diffet kirsa\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format patch formtum generlsa\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P mint -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments megjegyzsek trlse\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs mindenkpp unidiff kirsa\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U mint -p s -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals szkzket egyenlsgjelekre cserli az " "unidiffekben\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Ha FJL nincs megadva, a szabvnyos bementrl olvas.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "`%s' megnyitsa sikertelen." #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Csak egy fjlnv megengedett" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "rta Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "rvnytelen unidiff fejlc a kvetkez sorban: %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Rossz formtum unidiff a kvetkez sorban: %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "" "A szvegkrnyezeti diffbl hinyzik a `rgi' fejlc a kvetkez sorban: %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Rossz formtum szvegkrnyezeti diff a kvetkez sorban: %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "" "A szvegkrnyezeti diffbl hinyzik az `j' fejlc a kvetkez sorban: %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Ez a program szabad szoftver; tovbbadhatod s/vagy mdosthatod\n" "a Free Software Foundation ltal kiadott GNU General Public License\n" "2. (vagy ksbbi) vltozatban foglaltak betartsval.\n" "\n" "Ezt a programot annak remnyben terjesztjk, hogy hasznos\n" "de SEMMYILEN GARANCIT nem vllalunk. Mg azt sem lltjuk, hogy\n" "ez a program KERESKEDELMI CLOKRA ALKALMAS vagy\n" "HASZNLHAT EGY ADOTT FELADATRA. Tovbbi rszletekrt\n" "olvasd el a GNU General Public License-t.\n" "\n" "Ezzel a programmal meg kellett kapnod a GNU General Public License\n" "egy pldnyt. Ha mgsem gy trtnt, rj a Free Software Foundation-nek:\n" "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - kt fjl szavait hasonltja ssze s jelenti a klnbsgeket.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Hasznlat: %s [KAPCSOL]... FJL1 FJL2\n" " %s -d [KAPCSOL]... [FJL]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright kirja a copyright informcikat\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automatikusan lapozt indt\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help emlkeztett r ki\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case kis- s nagybet megegyezik\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode kirat md a \"less-hez\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps a mezket nem terjeszti az jsorokon tl\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer 'overstrike' mint nyomtatknl\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics megmondja hny trlt, beszrt stb. sz van\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal termcap hasznlata, mint terminl kiratsnl\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version kirja a program nevt s vltozatt\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=SZTRING SZTRING jelli a trlend rsz elejt\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=SZTRING SZTRING jelli a trlend rsz vgt\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=SZTRING SZTRING jelli a beszrand rsz elejt\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=SZTRING SZTRING jelli a beszrand rsz vgt\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "-z kapcsol hasznlata nem lehetsges, termcap nem elrhet." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Hinyz fjlargumentumok" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Hinyz fjlargumentumok" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Hasznlat: %s [KAPCSOL]... FJL1 FJL2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "%s olvassa" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Olvass sszefoglalsa: %d fjl, %d elem\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Munka sszefoglalsa: %d csoport, %d tag\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Munka sszefoglalsa: %d csoport, %d tag, %d tfeds\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term mint -z, de init/termcap karakterlncok " #~ "nlkl\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Mveletek:\n" #~ " -h (figyelmen kvl hagyva)\n" #~ " -v, --verbose nhny statisztikt r ki az stderr-re\n" #~ " --help emlkeztett r ki\n" #~ " --version kirja a program nevt s vltozatt\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Kimenet formzsa:\n" #~ " -T, --initial-tab TAB-ot kezd szkz helyett\n" #~ " -l, --paginate kimenet oldalszmozsa a `pr' segtsgvel\n" #~ " -S, --string[=SZTRING] msik felhasznli SZTRING-et is figyelembe " #~ "vesz\n" #~ " -V, --show-links annotciban fjl- s sorszmhivatkozsok\n" #~ " -t, --expand-tabs tabultor karaktert szkzz alaktja a " #~ "kimenetben\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Sz md kapcsoli:\n" #~ " -1, --no-deleted megakadlyozza a trlt szavak kirst\n" #~ " -2, --no-inserted megakadlyozza a beszrt szavak kirst\n" #~ " -3, --no-common megakadlyozza a kzs szavak kirst\n" #~ " -A, --auto-pager automatikusan lapozt indt\n" #~ " -k, --less-mode kirat md a \"less-hez\"\n" #~ " -m, --avoid-wraps a mezket nem terjeszti az jsorokon tl\n" #~ " -o, --printer 'overstrike' mint nyomtatknl\n" #~ " -z, --terminal termcap mint terminl kiratsnl\n" #~ " -K, --no-init-term mint -z, de init/termcap karakterlncok " #~ "nlkl\n" #~ " -O, --item-regexp=REGEXP elemek sszehasonltsa REGEXP alapjn\n" #~ " -W, --word-mode szavakat hasonlt ssze sorok helyett\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Fjlok sszehasonltsa:\n" #~ "* -H, --speed-large-files gyorsabb, sok, kis klnbsg esetn\n" #~ "* -a, --text sorklnbsg jelzse (szvegfjlnl " #~ "alaprtelmezett)\n" #~ "* -d, --minimal prbl kevesebb klnbsget tallni\n" #~ "* -q, --brief csak azt jelenti, hogy a fjlok " #~ "klnbznek\n" #~ " (binris fjlnl alaprtelmezett)\n" #~ "* --horizon-lines=SOR SOR sor megtartsa a kzs el- s " #~ "uttagokban\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Knyvtrak sszehasonltsa:\n" #~ "* -N, --new-file hinyz fjlt resnek veszi\n" #~ "* -P, --unidirectional-new-file hinyz rgi fjlt resnek veszi\n" #~ "* -S, --starting-file=FJL knyvtr-sszehasonlts folytatsa " #~ "FJLTL\n" #~ "* -X, --exclude-from=FJL FJLBAN tallhat mintkra illeszked\n" #~ " fjlok kihagysa\n" #~ "* -r, --recursive alknyvtrak rekurzv " #~ "sszehasonltsa\n" #~ "* -s, --report-identical-files azonos fjlok jelzse\n" #~ "* -x, --exclude=MINTA MINTRA illeszked fjlok " #~ "(knyvtrak)\n" #~ " kihagysa\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Szveg figyelmen kvl hagysa:\n" #~ " -B, --ignore-blank-lines res sorok figyelmen kvl " #~ "hagysa\n" #~ " -I, --ignore-matching-lines=REGEXP REGEXP-re illeszked sorok " #~ "kihagysa\n" #~ " -b, --ignore-space-change szkz, tabultor s sortrs\n" #~ " vltozsnak figyelmen kvl " #~ "hagysa\n" #~ " -i, --ignore-case kis- s nagybet megegyezik\n" #~ " -w, --ignore-all-space minden szkz, tabultor s " #~ "sortrs\n" #~ " figyelmen kvl hagysa\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Csoportosts:\n" #~ " -G, --relist-files minden bemeneti fjl listzsa " #~ "annotcikkal\n" #~ " -J, --minimum-size=ELEM olyan csoportok figyelmen kvl hagysa,\n" #~ " melyekben nincs legalbb ELEM elem\n" #~ " -j, --ignore-delimiters csak elvlasztkkal rendelkez elemek\n" #~ " figyelmen kvl hagysa\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Rszletes kimenet formtumok:\n" #~ "* -D, --ifdef=NV `#ifdef NV' formtum kirsa\n" #~ "* --changed-group-format=FORMAT FORMAT hasznlata megvltozott\n" #~ " sor esetn\n" #~ "* --new-group-format=FORMAT FORMAT hasznlata beszrt sor " #~ "esetn\n" #~ "* --new-line-format=FORMAT FORMAT hasznlata beszrt sor " #~ "esetn\n" #~ "* --old-group-format=FORMAT FORMAT hasznlata trlt sor " #~ "esetn\n" #~ "* --old-line-format=FORMAT FORMAT hasznlata trlt sor " #~ "esetn\n" #~ "* --unchanged-group-format=FORMAT FORMAT hasznlata vltozatlan\n" #~ " sor esetn\n" #~ "* --unchanged-line-format=FORMAT FORMAT hasznlata vltozatlan\n" #~ " sor esetn\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Szkriptszer formtumon:\n" #~ " (-CDUcefnuy kzl egyik sem) normlis diff kirsa\n" #~ "* -e, --ed rvnyes `ed' szkript kirsa\n" #~ "* -f, --forward-ed -e s -n keverke (nem tl hasznos)\n" #~ "* -n, --rcs RCS formtum kirsa (RCS bels formtuma)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Szvegkrnyezeti s egyestett (unified) formtumok:\n" #~ "* -F, --show-function-line=REGEXP REGEXP-re illeszked elz " #~ "krnyezet\n" #~ " muatatsa\n" #~ "* -p, --show-c-function megmutatja, melyik C fggvny " #~ "vltozott\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=SOR mint -c, krnyezethossz belltsa (sorok " #~ "szma)\n" #~ "* -L, --label=CMKE forrs s cl CMKE hasznlata fjlnv\n" #~ " helyett (ktszer)\n" #~ "* -U, --unified=SOR mint -u, krnyezethossz belltsa (sorok " #~ "szma)\n" #~ "* -c, --context diff kirsa szvegkrnyezettel\n" #~ " (alaprtelmezsben 3 sor)\n" #~ "* -u, --unified unidiff kirsa szvegkrnyezettel\n" #~ " (alaprtelmezsben 3 sor)\n" #~ "* -SOR (elavult: szvegkrnyezet mrete sorokban)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Ktpaneles formtum:\n" #~ "* -W, --width=OSZLOP OSZLOP szlessg\n" #~ "* -y, --side-by-side kimenet kt oszlopban egyms mellett\n" #~ "* --left-column kzs sor esetn csak bal olszlop\n" #~ "* --sdiff-merge-assist (`sdiff' bels formtuma)\n" #~ "* --suppress-common-lines kzs sorok elhagysa\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "A FORMAT nll karakterekbl ll, kivve:\n" #~ " %%%% egy darab %%\n" #~ " %%c'C' idzett C karakter\n" #~ " %%c'\\O' O rtk karakter, 1-tl 3 oktlis szmjegy\n" #~ " %%(A=B?T:E) ha A egyenl B-vel akkor T klnben E; A B szm vagy " #~ "VLTOZ;\n" #~ " T s E FORMAT tpus\n" #~ " %%FN F SPECIF specifikci hasznlata N rtk VLTOZ " #~ "kirshoz\n" #~ " %%< [csoport] rgi, minden sort --old-line-format " #~ "kapcsolval\n" #~ " %%> [csoport] j, minden sort --new-line-format kapcsolval\n" #~ " %%= [csoport] vltozatlan, minden sort --unchanged-line-" #~ "format\n" #~ " kapcsolval\n" #~ " %%l [sor] befejez jsor nlkl\n" #~ " %%L [sor] befejez jsorral\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF lehet [-][W[.D]]{doxX} mint a C printf fggvnyben\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VLTOZ lehet {eflmn} rgi csoportnl vagy {EFLMN} j csoportnl\n" #~ " {eE} sorszm kzvetlenl a csoport eltt\n" #~ " {fF} sorszm a csoport els sornl\n" #~ " {1L} sorszm a csoport utols sornl\n" #~ " {mM} sorszm kzvetlenl a csoport utn\n" #~ " {nN} a csoport sorainak szma\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Szabvnyos diff kapcsolk\n" #~ " -i, --ignore-case kis- s nagybet megegyezik\n" #~ " -w, --ignore-all-space minden szkz, tabultor s jsor\n" #~ " figyelmen kvl hagysa\n" #~ " -b, --ignore-space-change szkz, tabultor s jsor vltozsnak\n" #~ " figyelmen kvl hagysa\n" #~ " -B, --ignore-blank-lines teljesen res sorok figyelmen kvl hagysa\n" #~ " -I, --ignore-matching-lines=RK RK-ra illeszked sorok kihagysa\n" #~ " -a, --text minden fjlt szvegfjlknt kezel\n" #~ " -c, --context[=SZM] szablyos szvegkrnyezeti diff kirsa,\n" #~ " SZM szm sor a krnyezet\n" #~ " -u, --unified[=SZM] egysgestett szvegkrnyezeti diff vagy\n" #~ " unidiff kirsa, SZM szm sor a krnyezet\n" #~ " -C, -- context=SZM SZM sort r ki a krnyezetbl\n" #~ " -U, --unified=SZM SZM sort r ki az egysgestett\n" #~ " szvegkrnyezetbl\n" #~ " -L, --label=CMKE CMKE hasznlata fjlnv helyett\n" #~ " -p, --show-c-function megmutatja, melyik C fggvny vltozott\n" #~ " -F, --show-function-line=RK RK-ra illeszked legkzelebbi elz\n" #~ " krnyezet mutatsa\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief csak a klnbz fjlokat rja ki\n" #~ " -e, --ed rvnyes `ed' szkript kirsa\n" #~ " -n, --rcs RCS formtum diff-et r ki\n" #~ " -y, --side-by-side kt oszlopot r ki\n" #~ " -w, --width=SZM legfeljebb SZM (alaprtelmezsben 130) " #~ "karakter\n" #~ " soronknt\n" #~ " --left-column kzs sor esetn csak bal olszlop\n" #~ " --suppress-common-lines kzs sorok elhagysa\n" #~ " -D, --ifdef=NV `#ifdef NV' formtum diff kirsa\n" #~ " --GTYPE-group-format=GFMT GTYPE bemeneti csoportok GFMT-vel\n" #~ " --line-format=LFMT minden bemeneti sor LFMT-vel\n" #~ " --LTYPE-line-format=LFMT LTYPE bemeneti fjlok LFMT-vel\n" #~ " -l, --paginate kimenet oldalszmozsa a `pr' segtsgvel\n" #~ " -t, --expand-tabs tabultor karaktert szkzz alaktja a " #~ "kimenetben\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab TAB-ot kezd szkz helyett\n" #~ " -r, --recursive alknyvtrak rekurzv sszehasonltsa\n" #~ " -N, --new-file hinyz fjlt resnek veszi\n" #~ " -P, --unidirectional-new-file hinyz els fjlt resnek veszi\n" #~ " -s, --report-identical-files azonos fjlok jelzse\n" #~ " -x, --exclude=MINTA a MINTRA illeszked fjlokat kihagyja\n" #~ " -X, --exclude-from=FJL a FJL-ban tallhat mintkra illeszked\n" #~ " fjlokat tugorja\n" #~ " -S, --starting-file=FJL knyvtr-sszehasonlts kezdse FJLTL \n" #~ " --horizon-lines=SOR SOR sor megtartsa a kzs el- s " #~ "uttagokban\n" #~ " -d, --minimal prbl kevesebb klnbsget tallni\n" #~ " -H, --speed-large-files nagy fjlokra szmt, gyorsabb, sok, " #~ "elszrt,\n" #~ " kis klnbsg esetn\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Alaprtelmezsben a szvegkrnyezetes diff el- s uttagja kt sor.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE lehet `old', `new', vagy `unchanged'. GTYPE lehet LTYPE vagy " #~ "`changed'.\n" #~ "GFMT tartalmazhat:\n" #~ " %< sorok FJL1-bl\n" #~ " %> sorok FJL2-bl\n" #~ " %= kzs sorok FJL1-ben s FJL2-ben\n" #~ " %[-][SZLESSG][.[PREC]]{doxX}BET printf-stlus spec BET-hz\n" #~ " BETK a kvetkezk lehetnek, rgi csoporthoz kisbet:\n" #~ " F els sor szma\n" #~ " L utols sor szma\n" #~ " N sorok szma = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT tartalmazhat:\n" #~ " %L sor tartalma\n" #~ " %l sor tartalma befejez jsor nlkl\n" #~ " %[-][SZLESSG][.[PREC]]{doxX}n printf-stlus spec bemeneti sorszm\n" #~ "GFMT vagy LFMT tartalmazhat:\n" #~ " %% %\n" #~ " %c'C' egy C karakter\n" #~ " %c'\\OOO' a karakter oktlis OOO kddal\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Rgi mdiff kapcsolk:\n" #~ "* -f, --fuzz-items=ELEM egy csoporton bell, nem tbb mint ELEM " #~ "elem,\n" #~ " amely nem illeszkedik\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs mindenkpp szvegkrnyezeti diff kirsa\n" #~ " -e, --echo-comments megjegyzseket a szabvnyos hibakimentre\n" #~ " -o, --old-diffs mindenkppen rgi stlus diffet kirsa\n" #~ " -p, --patch-format patch formtum generlsa\n" #~ " -P mint -p\n" #~ " -s, --strip-comments megjegyzsek trlse\n" #~ " -u, --unidiffs mindenkpp unidiff kirsa\n" #~ " -U mint -p s -u\n" #~ " -=, --use-equals szkzket egyenlsgjelekre cserli az " #~ "unidiffekben\n" #~ " --help emlkeztett r ki\n" #~ " --version kirja a program nevt s vltozatt\n" #~ "\n" #~ "Ha FJL nincs megadva, a szabvnyos bementrl olvas.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Ha egy hossz kapcsolhoz ktelez argumentumot megadni, akkor ez a " #~ "megfelel\n" #~ "rvid kapcsolnl is ktelez.\n" #~ "\n" #~ " -C, --copyright kirja a copyright informcikat\n" #~ " -K, --no-init-term mint -t, de init/termcap karakterlncok " #~ "nlkl\n" #~ " -V, --version kirja a program nevt s vltozatt\n" #~ " -1, --no-deleted megakadlyozza a trlt szavak kirst\n" #~ " -2, --no-inserted megakadlyozza a beszrt szavak kirst\n" #~ " -3, --no-common megakadlyozza a kzs szavak kirst\n" #~ " -a, --auto-pager automatikusan lapozt indt\n" #~ " -h, --help emlkeztett r ki\n" #~ " -i, --ignore-case kis- s nagybet megegyezik\n" #~ " -l, --less-mode kirat md a \"less-hez\"\n" #~ " -n, --avoid-wraps a mezket nem terjeszti az jsorokon tl\n" #~ " -p, --printer 'overstrike' mint nyomtatknl\n" #~ " -s, --statistics megmondja hny trlt, beszrt stb. sz van\n" #~ " -t, --terminal termcap hasznlata, mint terminl " #~ "kiratsnl\n" #~ " -w, --start-delete=SZTRING SZTRING jelli a trlend rsz elejt\n" #~ " -x, --end-delete=SZTRING SZTRING jelli a trlend rsz vgt\n" #~ " -y, --start-insert=SZTRING SZTRING jelli a beszrand rsz elejt\n" #~ " -z, --end-insert=SZTRING SZTRING jelli a beszrand rsz vgt\n" wdiff-1.2.1/po/ms.gmo0000644000000000000000000000530112116513226011240 00000000000000L9814>f   &?P<X8:53p<    ) 0>' ? I +      Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . -q, --quiet inhibit the `mdiff' call message %s (for regexp `%s')' , clustering, done Launching `%sReading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. Project-Id-Version: wdiff 0.5.93 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:45+0100 Last-Translator: Sharuzzaman Ahmat Raslan Language-Team: Malay Language: ms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 0.9.5 Hakcipta (C) 1994, 1997 Free Software Foundation, Inc. Ditulis oleh Franc,ois Pinard . Ditulis oleh Wayne Davison . -q, --quiet halang mesej panggilan `mdiff' %s (untuk regexp `%s')' , gugusan, selesai Melaksana `%sMembaca %sIsihanMengisih ahliIni adalah perisian bebas; lihat sumber untuk syarat menyalin. TIADA jaminan disediakan; tidak juga untuk KEBOLEHDAGANGAN atau KEUPAYAAN UNTUK SESUATU TUJUAN KHUSUS. Cuba `%s --help' untuk lebih maklumat. mdiff - Mengkaji beberapa fail dan mencari turutan yang sama, ia kemudian menghasilkan senarai terperinci mungkin tentang perbezaan dan kesamaan. unify - Mengubah diff konteks kepada unidiff, atau sebaliknya. wdiff - Membandingkan perkataan dalam dua fail dan melaporkan perbezaan. wdiff - Hitung perbezaan perkataan dengan melancarkan secara dalaman `mdiff -W'. Program ini wujud terutamanya untuk menyokong sintaks lama `wdiff'. wdiff-1.2.1/po/sk.po0000644000000000000000000013571712116513226011111 00000000000000# WDIFF # Copyright (C) 1999 Free Software Foundation, Inc. # Miroslav Vasko , 1999. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:55+0100\n" "Last-Translator: Stanislav Meduna \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8-bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (pre regexp `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "tandardnm vstupom me by iba jeden sbor." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Adresre nie s podporovan" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "ta sa %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d poloiek\n" msgstr[1] ", %d poloiek\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d poloiek\n" msgstr[1] ", %d poloiek\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d poloiek\n" msgstr[1] ", %d poloiek\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Triedi sa" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", zluuje sa" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", hotovo\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Triedia sa leny" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", zluuje sa" msgstr[1] ", zluuje sa" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d poloiek\n" msgstr[1] ", %d poloiek\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Vyberte terminl prostrednctvom premennej prostredia TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Nemono pristupova k bze dt termcap." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Typ terminlu `%s' nie je definovan." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d slov" msgstr[1] "%s: %d slov" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% ben" msgstr[1] " %d %d%% ben" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% vymazan" msgstr[1] " %d %d%% vymazan" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% zmenen" msgstr[1] " %d %d%% zmenen" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% vloen" msgstr[1] " %d %d%% vloen" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Skste `%s --help' pre viac informci.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Prezer viac sborov a had podobn sekvencie. Potom me vypsa\n" "detailn zoznam rozdielov a podobnost.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Pouitie: %s [VOBA]... [SBOR]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Reimy innosti:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (ignorovan)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose vypisova postup na tandardn chybov vstup\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help vypsa tto pomoc a skoni\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version vypsa informciu o verzii a skoni\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" # ? " -T, --initial-tab zarovn riadky pridanm tabultoru na zaiatok" # ? " -T, --initial-tab namiesto vodnej medzery vypisuje tabultor" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" # ? " -l, --paginate nastrnkuje vstup s pouitm `pr'" # ? " -l, --paginate strnkuje vstup pomocou `pr'" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=REAZEC] pouva in pouvatesk REAZEC\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links vypisuje v anotcich odkazy na sbory a riadky\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs vo vstupe expanduje tabultory na medzery\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Ladenie:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging vypisuje mnoho detailov o tom, o sa deje\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted zamedz vstupu zmazanch slov\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted zamedz vstupu vloench slov\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common zamedz vstupu bench slov\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automaticky vol strnkova\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode varianta reimu tlaiarne pre \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps nerozoznvaj polia medzi dvoma novmi " "riadkami\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer prekrtvanie ako pre tlaiare\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal poui termcap ako pre terminlov displeje\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGVRAZ porovnva poloky definovan REGVRAZom\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode porovnva slov namiesto riadkov\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Pokia SBOR nie je zadan alebo je -, nata sa tandardn vstup.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Chyby hlste na adrese .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Nemono poui -z, termcap nie je dostupn." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Zluovanie slov funguje iba pre dva sbory (zatia)." #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Toto je vone riten softvr; pozrite zdrojov kd pre podmienky\n" "renia. Neexistuje IADNA ZRUKA, ani OBCHODOVATENOSTI alebo\n" "VHODNOSTI NA KONKRTNY EL.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Vytvoril Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Voby -123RSYZ maj vznam iba pre dva vstupy." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Nemono njs meno pre diff na riadku %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Skste `%s --help' pre viac informci.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transformuje kontextov diff-y na unidiff-y alebo naopak.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Pouitie: %s [VOBA]... [SBOR]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr "" " -c, --context-diffs predpsa vstup vo formte kontextovch rozdielov\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments vypisova komentre na tandardn vstup\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs v kadom prpade poui star formt rozdielov\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format generova patch formt\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P to ist ako -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments odstrni komentrov riadky\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs predpsa vstup v unidiff formte\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U to ist ako as -p and -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals v unidiff formte nahradi medzery znakmi =\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Pokia SBOR nie je zadan alebo je -, nata sa tandardn vstup.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Nemono otvori '%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Je povolen iba jedno meno sboru" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Vytvoril Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Neznma unifikovan hlavika na riadku %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Zdeformovan unifikovan diff na riadku %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "V kontextovom diff-sbore chba 'star' hlavika na riadku %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Zdeformovan kontextov diff-sbor na riadku %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "V kontextovom diff-sbore chba 'nov' hlavika na riadku %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" " Tento program je von programov vybavenie; mete ho ri a " "modifikova\n" "poda podmienok Veobecnej verejnej licencie GNU, vydvanej Free Software\n" "Foundation; a to bu verzie 2 tejto licencie alebo (poda vho uvenia),\n" "ktorejkovek neskorej verzie.\n" "\n" " Tento program je rozirovan v ndeji, e bude uiton, avak BEZ " "AKEJKOVEK\n" "ZRUKY; neposkytuj sa ani odvoden zruky PREDAJNOSTI alebo VHODNOSTI PRE\n" "NEJAK KONKRTNY EL. aie podrobnosti njdete vo Veobecnej verejnej\n" "licencii GNU.\n" "\n" " Kpia Veobecnej verejnej licencie GNU mala by dodan spolu s tmto\n" "programom; pokia sa tak nestalo, napte do Free Software Foundation, " "Inc.,\n" "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Porovn slov v dvoch sboroch a vype zmeny.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Pouitie: %s [VOBA]... SBOR1 SBOR2\n" " %s -d [VOBA]... [SBOR]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Povinn parametre pre dlh voby s povinn aj pre krtke voby.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright vype copyright a skon\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automaticky vol strnkova\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help vype tto npovedu\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case zanedb vekos psmen pri porovnvan\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode varicia mdu vstupu pre \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps nerozoznvaj polia medzi dvoma novmi " "riadkami\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer tla ako pre tlaiare\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics povedz, koko slov bolo zmazanch, vloench " "at.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal poui termcap ako pre terminlov displeje\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version vype verziu programu a skon\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING reazec na oznaenie zaiatku zmazanej " "oblasti\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRING reazec na oznaenie konca zmazanej oblasti\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING reazec na oznaenie zaiatku vloenia " "oblasti\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING reazec na oznaenie konca vloenia oblasti\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Nemono poui -t, termcap nie je dostupn." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Chbaj sborov parametre" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Chbaj sborov parametre" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Pouitie: %s [VOBA]... SBOR1 SBOR2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "ta sa %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Natan: %d sborov, %d poloiek\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Spracovan: %d oddielov, %d lenov\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Spracovan: %d oddielov, %d lenov, %d presahov\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term ako -z, ale bez termcap init/term reazcov\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term ako -t, ale bez reazcov init/term termcap-" #~ "u\n" #~ msgid "" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "Reimy innosti:\n" #~ " -h (ignorovan)\n" #~ " -v, --verbose vypisova postup na tandardn chybov vstup\n" #~ " --help vypsa tto pomoc a skoni\n" #~ " --version vypsa informciu o verzii a skoni\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formt vstupu:\n" #~ " -T, --initial-tab namiesto vodnej medzery vypisuje tabultor\n" #~ " -l, --paginate strnkuje vstup pomocou `pr'\n" #~ " -S, --string[=REAZEC] pouva in pouvatesk REAZEC\n" #~ " -V, --show-links vypisuje v anotcich odkazy na sbory a " #~ "riadky\n" #~ " -t, --expand-tabs vo vstupe expanduje tabultory na medzery\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Voby reimu slov.\n" #~ " -1, --no-deleted zamedz vstupu zmazanch slov\n" #~ " -2, --no-inserted zamedz vstupu vloench slov\n" #~ " -3, --no-common zamedz vstupu bench slov\n" #~ " -A, --auto-pager automaticky vol strnkova\n" #~ " -k, --less-mode varianta reimu tlaiarne pre \"less\"\n" #~ " -m, --avoid-wraps nerozoznvaj polia medzi dvoma novmi " #~ "riadkami\n" #~ " -o, --printer prekrtvanie ako pre tlaiare\n" #~ " -z, --terminal poui termcap ako pre terminlov displeje\n" #~ " -K, --no-init-term ako -z, ale bez termcap init/term reazcov\n" #~ " -O, --item-regexp=REGVRAZ porovnva poloky definovan REGVRAZom\n" #~ " -W, --word-mode porovnva slov namiesto riadkov\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files rchlej reim pre vea malch zmien\n" #~ "* -a, --text vypisuje rozdiely v riadkoch (prednast. " #~ "pre text)\n" #~ "* -d, --minimal ska dkladnejsie - men poet zmien\n" #~ "* -q, --brief iba oznmi, i sa sbory lia (prednast. " #~ "pre\n" #~ " binrne sbory)\n" #~ " --horizon-lines=PO zachov POet zhodnch vodnch a " #~ "koncovch riadkov\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Porovnvanie adresrov:\n" #~ "* -N, --new-file povauje chbajce sbory za przdne\n" #~ "* -P, --unidirectional-new-file povauje chbajce star sbory za " #~ "przdne\n" #~ "* -S, --starting-file=SBOR pokrauje v porovnvan adresrov od " #~ "SBORu\n" #~ "* -X, --exclude-from=SBOR ignoruje sbory vyhovujce vzorom v " #~ "SBORe\n" #~ "* -r, --recursive rekurzvne porovnva podadresre\n" #~ "* -s, --report-identical-files oznmi, ke s sbory zhodn\n" #~ "* -x, --exclude=VZOR ignoruje sbory (adresre) vyhovujce " #~ "VZORu\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Ignorovanie textu:\n" #~ " -B, --ignore-blank-lines ignoruje przdne riadky\n" #~ "* -I, --ignore-matching-lines=REGEXP ignoruje riadky vyhovujce " #~ "REGEXPu\n" #~ " -b, --ignore-space-change ignoruje rozdielny poet " #~ "przdnych\n" #~ " znakov\n" #~ " -i, --ignore-case ignoruje rozdiely vo vekosti " #~ "psmen\n" #~ " -w, --ignore-all-space ignoruje przdne znaky\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Zluovanie:\n" #~ " -G, --relist-files vype vetky vstupn sbory s anotciami\n" #~ " -J, --minimum-size=POET ignoruje bloky neobsahujce aspo POET " #~ "poloiek\n" #~ " -j, --ignore-delimiters ignoruje poloky pozostvajce iba z " #~ "oddeovaov\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Detaily vstupnch formtov:\n" #~ "* -D, --ifdef=MENO vstup vo formte `#ifdef MENO'\n" #~ "* --changed-group-format=FORMT pouije FORMT pre zmenen " #~ "riadky\n" #~ "* --new-group-format=FORMT pouije FORMT pre vloen " #~ "riadky\n" #~ "* --new-line-format=FORMT pouije FORMT pre vloen " #~ "riadok\n" #~ "* --old-group-format=FORMT pouije FORMT pre zmazan " #~ "riadky\n" #~ "* --old-line-format=FORMT pouije FORMT pre zmazan " #~ "riadok\n" #~ "* --unchanged-group-format=FORMT pouije FORMT pre nezmenen " #~ "riadky\n" #~ "* --unchanged-line-format=FORMT pouije FORMT pre nezmenen " #~ "riadok\n" #~ "* --line-format=FORMT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formty na spsob skriptu:\n" #~ " (iadny z -CDUcefnuy) produkuje obyajn diff\n" #~ "* -e, --ed produkuje `ed' skript\n" #~ "* -f, --forward-ed nieo medzi -e a -n (nevemi uiton)\n" #~ "* -n, --rcs produkuje RCS formt (interne pouvan RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Kontextov a and unifikovan formty:\n" #~ "* -F, --show-function-line=REGEXP zobraz predchdzajci kontext\n" #~ " vyhovujci REGEXP\n" #~ "* -p, --show-c-function zobraz pre kad zmenu prslun C " #~ "funkciu\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=RIADKOV ako -c, navye pecifikuje vekos " #~ "kontextu\n" #~ " v riadkoch\n" #~ "* -L, --label=NZOV poui z/na NZOV namiesto nzvu sboru " #~ "(dvakrt)\n" #~ "* -U, --unified=RIADKOV ako -u, navye pecifikuje vekos " #~ "kontextu\n" #~ " v riadkoch\n" #~ "* -c, --context produkuje kontextov diff (3 riadky " #~ "kontextu,\n" #~ " ak nebolo zadan inak)\n" #~ "* -u, --unified produkuje unidiff (3 riadky kontextu)\n" #~ "* -RIADKOV (zastaran: poet riadkov kontextu)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Formt pre jeden sbor veda druhho:\n" #~ "* -W, --width=STPCOV pouije rku STPCOV\n" #~ "* -y, --side-by-side zobraz jeden sbor veda druhho\n" #~ "* --left-column vype iba av stpec, pokia s riadky " #~ "zhodn\n" #~ "* --sdiff-merge-assist (pouit `sdiff')\n" #~ "* --suppress-common-lines nevypisuje zhodn riadky\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMT je zloen zo znakov reprezentujcich sam seba, okrem:\n" #~ " %%%% jedno %%\n" #~ " %%c'C' citovan znak C\n" #~ " %%c'\\O' znak s hodnotou O, od 1 do 3 oktalovch slic\n" #~ " %%(A=B?T:E) ak A je B tak T inak E; A B sla alebo PREMENN; T E " #~ "FORMT\n" #~ " %%FN pouije PECIF pecifikciu F pre vpis PREMENNEJ hodnoty " #~ "N\n" #~ " %%< [skupina] star, kad riadok pomocou --old-line-format\n" #~ " %%> [skupina] nov, kad riadok pomocou --new-line-format\n" #~ " %%= [skupina] nezmenen,kad riadok pomocou --unchanged-line-" #~ "format\n" #~ " %%l [riadok] bez jeho monho koncovho znaku novho riadku\n" #~ " %%L [riadok] s jeho monm koncovm znakom novho riadku\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "PECIF je [-][W[.D]]{doxX} ako v C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "PREMENN je {eflmn} pre star skupinu alebo {EFLMN} pre nov skupinu\n" #~ " {eE} slo riadku bezprostredne pred skupinou\n" #~ " {fF} slo prvho riadku skupiny\n" #~ " {lL} slo poslednho riadku skupiny\n" #~ " {mM} slo riadku bezprostredne za skupinou\n" #~ " {nN} poet riadkov v skupine\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Voby tandardnho diff-u:\n" #~ " -i, --ignore-case povauje vek a mal psmen za rovnak\n" #~ " -w, --ignore-all-space ignoruje vetky przdne znaky\n" #~ " -b, --ignore-space-change ignoruje rozdiel v pote przdnych znakov\n" #~ " -B, --ignore-blank-lines ignoruje zmeny obsahujce iba przdne riadky\n" #~ " -I, --ignore-matching-lines=RE ignoruje zmeny, kde vetky znaky " #~ "vyhovuj RE\n" #~ " -a, --text povauje vetky sbory za textov\n" #~ " -c, --context[=POET] produkuje regulrny kontextov diff,\n" #~ " s POTOM riadkov kontextu\n" #~ " -u, --unified[=POET] produkuje unifikovan kontextov diffs " #~ "(unidiff)\n" #~ " s POTOM riadkov kontextu\n" #~ " -C, --context=POET produkuje POET riadkov koprovanho " #~ "kontextu\n" #~ " -U, --unified=POET produkuje POET riadkov unifikovanho " #~ "kontextu\n" #~ " -L, --label=NZOV pouije NZOV namiesto nzvu sboru\n" #~ " -p, --show-c-function uke, v ktorej C funkcii s jednotliv " #~ "zmeny\n" #~ " -F, --show-function-line=RE uke posledn riadok vyhovujci RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief vype iba i s sbory odlin\n" #~ " -e, --ed produkuje ed skript\n" #~ " -n, --rcs produkuje diff formtu RCS\n" #~ " -y, --side-by-side produkuje vstup v dvoch stpcoch\n" #~ " -w, --width=POET produkuje najviac POET (prednastaven 130)\n" #~ " znakov na riaok\n" #~ " --left-column pre zhodn riadky vype iba av stpec\n" #~ " --suppress-common-lines nevype zhodn riadky\n" #~ " -D, --ifdef=NZOV zli sbory do formtu `#ifdef NZOV'\n" #~ " --GTYPE-group-format=GFMT GTYPE vstupn skupiny pouij GFMT\n" #~ " --line-format=LFMT vetky vstupn riadky pouij LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE vstupn riadky pouij LFMT\n" #~ " -l, --paginate nastrnkuje vstup s pouitm `pr'\n" #~ " -t, --expand-tabs vo vstupe expanduje tabultory na medzery\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab zarovn riadky pridanm tabultoru na " #~ "zaiatok\n" #~ " -r, --recursive rekurzvne porovn podadresre\n" #~ " -N, --new-file povauje chbajce sbory za przdne\n" #~ " -P, --unidirectional-new-file povauje chbajce prv sbory za " #~ "przdne\n" #~ " -s, --report-identical-files oznmi, ke s sbory zhodn\n" #~ " -x, --exclude=VZOR vynech sbory vyhovujce VZORu\n" #~ " -X, --exclude-from=SBOR vynech sbory vyhovujce vzorom v SBORe\n" #~ " -S, --starting-file=SBOR pri porovnvan adresrov zane SBORom\n" #~ " --horizon-lines=PO zachov POet zhodnch vodnch a koncovch " #~ "riadkov\n" #~ " -d, --minimal sna sa njs o najmeniu sadu zmien\n" #~ " -H, --speed-large-files predpoklad vek sbory s mnohmi malmi " #~ "zmenami\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Prednastaven horizont pre kontextov diff s dva riadky.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE je `old', `new', alebo `unchanged'. GTYPE je LTYPE alebo " #~ "`changed'.\n" #~ "GFMT me obsahova:\n" #~ " %< riadky zo SBORu1\n" #~ " %> riadky zo SBORu2\n" #~ " %= riadky zhodn v SBORe1 a SBORe2\n" #~ " %[-][RKA][.[PRESNOS]]{doxX}PSMENO pecifikcia poda printf pre " #~ "PSMENo\n" #~ " PSMEN s nasledujce pre nov skupinu, mal psmen pre star " #~ "skupinu:\n" #~ " F slo prvho riadku\n" #~ " L slo poslednho riadku\n" #~ " N poet riadkov = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT me obsahova:\n" #~ " %L obsah riadku\n" #~ " %l obsah riadku bez akchkovek ukonujcich znakov novho riadku\n" #~ " %[-][RKA][.[PRESN]]{doxX}n pecifikcia poda printf pre slo vst. " #~ "riadku\n" #~ "Bu GFMT alebo LFMT u obsahova:\n" #~ " %% %\n" #~ " %c'C' znak C\n" #~ " %c'\\OOO' znak s oktalovou hodnotou OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Star voby mdiff:\n" #~ "* -f, --fuzz-items=POET nie viac ako POET nevyhovujcich POLOIEK " #~ "v bloku\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs predpsa vstup vo formte kontextovch " #~ "rozdielov\n" #~ " -e, --echo-comments vypisova komentre na tandardn vstup\n" #~ " -o, --old-diffs v kadom prpade poui star formt rozdielov\n" #~ " -p, --patch-format generova patch formt\n" #~ " -P to ist ako -p\n" #~ " -s, --strip-comments odstrni komentrov riadky\n" #~ " -u, --unidiffs predpsa vstup v unidiff formte\n" #~ " -U to ist ako as -p and -u\n" #~ " -=, --use-equals v unidiff formte nahradi medzery znakmi =\n" #~ " --help vypsa tto pomoc a skoni\n" #~ " --version vypsa informciu o verzii a skoni\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Povinn parametre pre dlh voby s povinn aj pre krtke voby.\n" #~ "\n" #~ " -C, --copyright vype copyright a skon\n" #~ " -K, --no-init-term ako -t, ale bez reazcov init/term termcap-" #~ "u\n" #~ " -V, --version vype verziu programu a skon\n" #~ " -1, --no-deleted zamedz vstupu zmazanch slov\n" #~ " -2, --no-inserted zamedz vstupu vloench slov\n" #~ " -3, --no-common zamedz vstupu bench slov\n" #~ " -a, --auto-pager automaticky vol strnkova\n" #~ " -h, --help vype tto npovedu\n" #~ " -i, --ignore-case zanedb vekos psmen pri porovnvan\n" #~ " -l, --less-mode varicia mdu vstupu pre \"less\"\n" #~ " -n, --avoid-wraps nerozoznvaj polia medzi dvoma novmi " #~ "riadkami\n" #~ " -p, --printer tla ako pre tlaiare\n" #~ " -s, --statistics povedz, koko slov bolo zmazanch, vloench " #~ "at.\n" #~ " -t, --terminal poui termcap ako pre terminlov displeje\n" #~ " -w, --start-delete=STRING reazec na oznaenie zaiatku zmazanej " #~ "oblasti\n" #~ " -x, --end-delete=STRING reazec na oznaenie konca zmazanej oblasti\n" #~ " -y, --start-insert=STRING reazec na oznaenie zaiatku vloenia " #~ "oblasti\n" #~ " -z, --end-insert=STRING reazec na oznaenie konca vloenia oblasti\n" wdiff-1.2.1/po/da.po0000644000000000000000000005135612116513225011053 00000000000000# Danish messages for wdiff # Copyright 1996, 2001, 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Jan Djrv , 1996, 2001, 2008, 2010 # Keld Simonsen , 2011,2012 # msgid "" msgstr "" "Project-Id-Version: wdiff 1.1.0\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-02-07 17:23+0100\n" "Last-Translator: Keld Simonsen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (for regulrt udtryk '%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "kun n fil kan vre standard ind" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "kataloger understttes ikke" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lser %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d poster\n" msgstr[1] ", %d post\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Ls sammendrag:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d poster" msgstr[1] ", %d post" #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d poster\n" msgstr[1] ", %d post\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorterer" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", grupperer" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", klar\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorterer medlemmer" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Arbejdssammendrag:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d grupper" msgstr[1] " %d gruppe" #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d medlemmer\n" msgstr[1] ", %d medlem\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] ", %d medlemmer," msgstr[1] ", %d medlem," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "%d overlappende\n" msgstr[1] "%d overlappende\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "vlg terminaltype ved at stte miljvariablen TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "kan ikke lse termcap-databasen" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "terminaltype '%s' er ikke defineret" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d ord" msgstr[1] "%s: %d ord" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% flles" msgstr[1] " %d %.0f%% flles" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% slettede" msgstr[1] " %d %.0f%% slettet" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% ndrede" msgstr[1] " %d %.0f%% ndret" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% tilfjede" msgstr[1] " %d %.0f%% tilfjet" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Forsg med '%s --help' for mere information.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Lser flere filer og leder efter lignende sekvenser, drefter\n" "vises en muligvis detaljeret liste med forskelle og ligheder.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Brug: %s [FLAG]... [FIL]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Arbejdstilstande:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignoreret)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose rapportr en del statistik p standard fejl\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help vis denne hjlpetekst og afslut\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version vis versionsinformation og afslut\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatering af resultat:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab skriv TAB i stedet for indledende mellemrum\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate send resultatet gennem 'pr'\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRENG] tag hnsyn til endnu en STRENG\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links angiv fil- og linjereferencer i annoteringer\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs erstat tabulatortegn med mellemrum i reultatet\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Fejlsgning:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging udskriv mange detaljer om hvad som sker\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Flag for ordtilstand:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted vis ikke slettete ord\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted vis ikke indsatte ord\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common vis ikke flles ord\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager videregiv resultatet til en sideviser\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode speciel variant af -o for 'less'\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps lad ikke felter lbe over flere linjer\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer dobbeltskrift som for printere\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal brug termcap til at markere ord\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP sammenlign poster som defineres af REGEXP\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode sammenlign ord i stedet for linjer\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Uden FIL eller hvis FIL er -, s ls standard ind.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Rapportere fejl til \n" "Rapportr fejl eller synspunkter p oversttelsen til .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ignorerer flaget %s (ikke implementeret)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "kan ikke bruge -z, termcap er ikke tilgngelig" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "ordsammenfletning findes kun for to filer (indtil videre)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Dette er frit programmel; se kildeteksten for kopieringsbetingelser. Det " "er\n" "INGEN garanti; ikke engang for SALGBARHED eller EGNETHED FOR NOGET SPECIELT\n" "FORML.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Skriven af Franois Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "flagene -123RSYZ er kun meningsfulde med to inddatakilder" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "fejl ved omdirigering af strm" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "kunne ikke udfre %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "kan ikke finde et navn for diff p linje %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "forsg med '%s --help' for mere information.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Konvertr sammenhngsforskelle til forenet, eller omvendt.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Brug: %s [FLAG]... [FIL]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs vis resultatet som sammenhngsforskelle\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments skriv kommentarer til standard fejl\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs vis under alle omstndigheder forskelle i gammel " "stil\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format generr format for 'patch'\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P samme som -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments fjern kommentarlinjer\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs vis resultatet som forenet forskelle\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U samme som -p og -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals erstat mellemrum med lighedstegn i forenet " "forskelle\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Uden FIL angivet lses standard ind.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "kan ikke bne '%s'" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "kun et filnavn tilladt" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Skrevet af Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "ugyldigt hoved for forenet forskelle p linje %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "misdannet forenet forskel p linje %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "sammenhngsforskel mangler 'gammelt' hoved p linje %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "sejlskabt sammenhngsforskel p linje %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "sammenhngsforskel mangler 'nyt' hoved p linje %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "intet passende temporrkatalog eksisterer" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: inputprogram afbrudt med signal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: outputprogram afbrudt med signal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Flgende tekst er en uformel oversttelse som kun er til for\n" "informativt forml. For alle juridiske tolkninger glder den engelske\n" "originaltekst.\n" "\n" "Dette program er frit programmel. Du kan distribuere det og/eller ndre\n" "det under betingelserne i GNU General Public License, publiceret af\n" "Free Software Foundation, enten version 2 eller (om du vil)\n" "nogen senere version.\n" "\n" "Dette program distribueres i hb om at det skal vre brugbart,\n" "men UDEN NOGEN SOM HELST GARANTI, endog uden den underforstede garanti\n" "om SALGBARHED eller EGNETHED FOR NOGET SRLIGT FORML. Se GNU General\n" "Public License for yderligere information.\n" "\n" "Du br have fet en kopi af GNU General Public License\n" "sammen med dette program. Hvis ikke, se .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Sammenlign ord i to filer og rapportr forskelle.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Anvendning: %s [FLAG]... FIL1 FIL2\n" " %s -d [FLAG]... [FIL]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Obligatoriske argumenter for lange flag er ogs obligatoriske for korte " "flag\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright skriv copyright og afslut\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager videregiv resultatet til en sideviser\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input brug forenet forskel som inddata\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help skriv denne hjlpetekst og afslut\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case ignorr forskel p stre og sm bogstaver ved " "sammenligning\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation af --printer for 'less'\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps ombryd ikke felter med nylinjer\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overskrivning som for printere\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr " -s, --statistics vis hvor mange ord slettet, indsat osv.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal brug termcap for terminaler\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version skriv programversion og afslut\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRENG streng som markerer begyndelsen af en slettet " "region\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRENG streng som markerer slutningen af en slettet " "region\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRENG streng som markerer begynden af en insdsat " "region\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRENG streng som markerer slutningen af en indsat " "region\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "kan ikke bruge -t, termcap er ikke tilgngelig" #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright 1992, 1997, 1998, 1999, 2009, 2010 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "for mange filargumenter" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "filargumenter mangler" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Beregn ordforskelle ved at internt kre \"mdiff -W\".\n" "Dette program findes hovedsageligt for at understtte den nu gamle 'wdiff'-" "syntaks.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Brug: %s [FLAG]... FIL1 FIL2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet undertryk meddelelse for 'mdiff'-kaldet\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "Dette program fortller ogs hvordan 'mdiff' kunne kaldes direkte.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Starter '%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Lsesammendrag: %d filer, %d poster\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Arbejdssummering: %d grupper, %d medlemmer\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Arbejdssummering: %d grupper, %d medlemmer, %d overlapninger\n" wdiff-1.2.1/po/en@boldquot.gmo0000644000000000000000000003651212116513226013105 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!("v"]!$K$9$?% E%R%g%z%8%1%5%;0&'l&%&'&)&? '=L'>'<'C(9J(9(@($(;$)?`)+)G)<*9Q*7*>*9+#<+9`+A+N+N+,Cz,C,C-@F-8-/-8-J).Gt.-.>.B)/2l/;/?/G0Ac0G0A0B/1r111111 2%2&>2'e222 22/2 2I2 D3 R3%]3333Q34d426"7B@77 767 7$8$,89Q898&8.8959N9$c9'9"9"99:&:#::0;71;-i;;1;;?<<A<~<(!=_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: GNU wdiff 1.2.1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2013-03-09 02:55+0100 Last-Translator: Automatically generated Language-Team: none Language: en@boldquot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for “less” -l, --less-mode variation of printer mode for “less” -l, --paginate paginate output through ‘pr’ -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the ‘mdiff’ call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp ‘%s’)%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how ‘mdiff’ could have been called directly. 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 3 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, see . Try ‘%s --help’ for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing ‘new’ header at line %ldcontext diff missing ‘old’ header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type ‘%s’ is not definedtoo many file argumentstry ‘%s --help’ for more information unable to open ‘%s’unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching ‘mdiff -W’. This program exists mainly to support the now oldish ‘wdiff’ syntax. word merging for two files only (so far)wdiff-1.2.1/po/insert-header.sin0000644000000000000000000000124011744500044013360 00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } wdiff-1.2.1/po/vi.po0000644000000000000000000005612412116513226011104 00000000000000# Vietnamese translation for wdiff. # Copyright © 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Clytie Siddall , 2005-2010. # Trần Ngọc Quân , 2012. # msgid "" msgstr "" "Project-Id-Version: wdiff-1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-26 07:44+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=1;\n" "X-Generator: LocFactoryEditor 1.8\n" "X-Poedit-Language: Vietnamese\n" "X-Poedit-Country: VIET NAM\n" "X-Poedit-SourceCharset: utf-8\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (cho biểu thức chính quy `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "chỉ cho phép một tập tin là đầu vào tiêu chuẩn" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "không hỗ trợ thư mục" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Đang đọc %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d mục tin\n" msgstr[1] ", %d mục tin\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Đọc tóm tắt:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d tập tin," msgstr[1] " %d tập tin," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d mục tin\n" msgstr[1] " %d mục tin\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Đang sắp xếp" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", đang xếp nhóm" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", hoàn tất\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Đang sắp xếp các bộ phạn" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Tóm tắt công việc:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d bó," msgstr[1] " %d bó," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d thành viên\n" msgstr[1] " %d thành viên\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d thành viên," msgstr[1] " %d thành viên," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d đè lên nhau\n" msgstr[1] " %d đè lên nhau\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "chọn thiết bị cuối dùng biến môi trường TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "không thể truy cập đến cơ sở dữ liệu termcap" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "thiết bị cuối kiểu `%s' chưa được định nghĩa" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d từ" msgstr[1] "%s: %d từ" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% chung" msgstr[1] " %d %.0f%% chung" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% đã xóa" msgstr[1] " %d %.0f%% đã xóa" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% đã thay đổi" msgstr[1] " %d %.0f%% đã thay đổi" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% được chèn vào" msgstr[1] " %d %.0f%% được chèn vào" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Hãy thử chạy câu lệnh trợ giúp `%s --help' để xem thêm thông tin.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff — xử lý nhiều tập tin và tìm kiếm các chuỗi tương tự,\n" "sau đó xuất danh sách có thể chi tiết chứa các mục khác biệt và tượng tự.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Sử dụng: %s [TÙY_CHỌN]... [TẬP_TIN]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Chế độ thao tác:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (bị bỏ qua)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose thông báo vài thống kê trên stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help hiển thị trợ giúp này, sau đó thoát\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version hiển thị phiên bản đang chạy, sau đó thoát\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Định dạng kết xuất:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab xuất cột tab thay cho khoảng cách đầu tiên\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate đánh số trang kết xuất qua `pr'\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=CHUỖI] lưu ý đến chuỗi của người dùng khác\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links phụ chú cũng chứa tham chiếu đến tập tin và số thứ " "tự dòng\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs mở rộng cột tab ra các khoảng cách trong kết xuất\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Gỡ rối:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging xuất thông tin chi tiết về tiến trình gỡ rối\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Tuỳ chọn về chế độ từng từ:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted thu hồi xuất từ bị xoá\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted thu hồi xuất từ bị chèn\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common thu hồi xuất từ chung\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager tự động gọi trình dàn trang\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode biến dạng chế độ máy in cho \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps không nên kéo dài trường qua ký tự dòng mới\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer gạch đè lên chữ, như trên máy in\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal dùng termcap như trên trình bày thiết bị cuối\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=BTCQ so sánh các mục tùy theo biểu thức chính quy này\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode so sánh theo từng từ thay cho toàn dòng\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "" "Không có TẬP_TIN hoặc khi TẬP_TIN là - thì đọc đầu vào thiết bị vào stdin " "tiêu chuẩn.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Hãy thông báo lỗi cho địa chỉ .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "đang bỏ qua tuỳ chọn %s (chức năng chưa được viết)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "không thể dùng tùy chọn -z, termcap hiện thời không sẵn dùng" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "chỉ hòa trộn từ cho hai tập tin (ít nhất là đến lúc này)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Tác quyền (C) năm 1992, 1997, 1999, 2010 của Tổ Chức Phần Mềm Tự Do.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Đây là phần mềm tự do; hãy xem mã nguồn để tìm thấy điều kiện sao chép.\n" "KHÔNG CÓ BẢO HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý\n" "KHẢ NĂNG BÁN HAY KHẢ NĂNG LÀM ĐƯỢC VIỆC DỨT KHOÁT.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Viết bởi Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "những tùy chọn -123RSYZ chỉ có nghĩa khi có hai đầu vào" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "lỗi chuyển hướng luồng dữ liệu" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "lỗi khi thực hiện %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "không tìm thấy tên cho khác biệt trên dòng %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "hãy thử chạy câu lệnh trợ giúp `%s --help' để xem thêm thông tin\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify — Chuyển đổi dữ liệu khác biệt ngữ cảnh thành dữ liệu khác biệt hợp " "nhất, hay ngược lại.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Sử dụng: %s [TÙY_CHỌN]... [TẬP_TIN]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs ép buộc kết xuất ra khác biệt ngữ cảnh\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments xuất ghi chú ra đầu ra lỗi tiêu chuẩn\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs vẫn còn xuất khác biệt kiểu cũ (bất chấp)\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format xuất định dạng của miếng vá\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P giống với -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments bước dòng ghi chú\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs ép buộc kết xuất ra khác biệt kiểu unidiff\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U giống với -p và -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals thay thế khoảng cách bằng dấu bằng trong khác biệt " "kiểu unidiff\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Nếu TẬP_TIN không được chỉ ra thì đọc đầu vào tiêu chuẩn stdin.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "không thể mở `%s'" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "cho phép chỉ một tên tập tin thôi" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Tác quyền © năm 1994, 1997 Tổ Chức Phần Mềm Tự Do.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Tác giả: Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "gặp đầu trang khác biệt đã hợp nhất không hợp lệ trên dòng %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "gặp khác biệt đã hợp nhất dạng sai trên dòng %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "khác biệt ngữ cảnh còn thiếu đầu trang `cũ' trên dòng %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "gặp khác biệt ngữ cảnh dạng sai trên dòng %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "khác biệt ngữ cảnh còn thiếu đầu trang `mới' trên dòng %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "không có thư mục tạm thời thích hợp" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: đầu vào của chương trình bị chấm dứt bởi tín hiệu %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: kết xuất của chương trình bị chấm dứt bởi tín hiệu %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Chương trình này là phần mềm tự do; bạn có thể phát hành lại nó\n" "và/hoặc sửa đổi nó với điều kiện của Giấy Phép Công Cộng GNU\n" "như được xuất bản bởi Tổ Chức Phần Mềm Tự Do; hoặc phiên bản 3\n" "của Giấy Phép này, hoặc (tùy chọn) bất kỳ phiên bản sau nào.\n" "\n" "Chương trình này được phát hành vì mong muốn nó có ích,\n" "nhưng KHÔNG CÓ BẢO HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM\n" "ĐƯỢC NGỤ Ý KHẢ NĂNG BÁN HAY KHẢ NĂNG LÀM ĐƯỢC VIỆC DỨT KHOÁT.\n" "Xem Giấy Phép Công Cộng GNU để biết thêm chi tiết.\n" "\n" "Bạn đã nhận một bản sao của Giấy Phép Công Cộng GNU\n" "cùng với chương trình này; nếu không, hãy xem .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff — So sánh các từ trong hai tập tin và thông báo khác biệt.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Sử dụng: %s [TÙY_CHỌN]... TẬP_TIN_1 TẬP_TIN_2\n" " hoặc: %s -d [TÙY_CHỌN]... [TẬP_TIN]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn " "ngắn.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr "" " -C, --copyright hiển thị thông tin tác quyền, sau đó thoát\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager tự động gọi trình dàn trang\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input đầu vào là một khác biệt thống nhất (unidiff)\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help hiển thị trợ giúp này, sau đó thoát\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case so sánh thì không phân biệt chữ HOA/thường\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode thay đổi chế độ máy in cho \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps không nên xuống dòng cho các trường\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer in chồng lên chữ như trên máy in\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics thống kê xem bao nhiêu từ bị xoá, được chèn v." "v..\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal dùng termcap cho trình bày trên thiết bị cuối\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version hiển thị phiên bản đang chạy sau đó thoát\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=CHUỖI chuỗi đánh dấu đầu của vùng xoá\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=CHUỖI chuỗi đánh dấu cuối của vùng xoá\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=CHUỖI chuỗi đánh dấu đầu của vùng chèn\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=CHUỖI chuỗi đánh dấu cuối của vùng chèn\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "không thể dùng tùy chọn -t vì termcap không sẵn sàng" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Tác quyền © năm 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012\n" "của Tổ Chức Phần Mềm Tự Do.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "quá nhiều đối số tập tin" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "thiếu đối số tập tin" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Bản quyền (C) năm 1997, 1998, 1999 của Tổ Chức Phần Mềm Tự Do.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff — so sánh theo mỗi từ bằng cách khởi chạy nội bộ `mdiff -W'.\n" "Chương trình này tồn tại chính để hỗ trợ cú pháp hơi cũ `wdiff'.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Sử dụng: %s [TÙY_CHỌN]... TẬP_TIN1 TẬP_TIN2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet thu hồi thông điệp gọi `mdiff'\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Chương trình này cũng diễn tả phương pháp có thể gọi trực tiếp `mdiff'.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Đang khởi chạy `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Tóm tắt đọc: %d tập tin, %d mục\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Tóm tắt làm việc: %d nhóm, %d bộ phạn\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Tóm tắt làm việc: %d nhóm, %d bộ phạn, %d lần chồng lấp\n" #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term giống -z, nhưng không có chuỗi kiểu termcap " #~ "init/term\n" #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term giống -t nhưng không có chuỗi kiểu termcap " #~ "init/term\n" wdiff-1.2.1/po/fi.gmo0000644000000000000000000004030312116513226011220 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""\s$J$8%>T%%%%%:%3&9M&9&*&*&,'+D'Jp'A'@'>>(\}(>(D)K^)&)H)B*,]*H*9*? +9M+Q+:+!,=6,?t,H,J,BH-G-F-M.<h.,.<.;/QK/./J/S0?k0I0=0J31K~1K1L2Pc22223!3<3X3w3&3'3333 4/4H4Y_44 44 v55 5T6t6)o9/9V9& :)G:>q::H:A ;3M;4;';-; <&<%C<.i</<,<.<$==/=' >"2>HU>0>,> >(?F?E^?D??9@_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-26 17:34+0300 Last-Translator: Jorma Karvonen Language-Team: Finnish Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.11.2 Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1994, 1997, 1999 Free Software Foundation, Inc. Vikajäljitys: Muotoilutuloste: Toimintotilat: Sanatilavalitsimet: Kirjoittaja: François Pinard . Kirjoittaja: Wayne Davison . --help näytä tämä opaste ja poistu --version näytä ohjelmaversio ja poistu %d %.0f%% muutettu %d %.0f%% muutettua %d %.0f%% yhteinen %d %.0f%% yhteistä %d %.0f%% poistettu %d %.0f%% poistettua %d %.0f%% lisätty %d %.0f%% lisättyä -0, --debugging tulosta monia yksityiskohtia tapahtumakulusta -1, --no-deleted estä poistettujen sanojen tulostus -2, --no-inserted estä lisättyjen sanojen tulostus -3, --no-common estä yhteisten sanojen tulostus -=, --use-equals korvaa välilyönnit yhtäsuuruusmerkeillä yhdistetyissä eroissa -A, --auto-pager kutsu automaattisesti sivuttajaa -C, --copyright näytä tekijänoikeustiedot ja poistu -O, --item-regexp=REGEXP vertaa alkioita kuten REGEXP on määritellyt -P sama kuin -p -S, --string[=MERKKIJONO] ota huomioon toisen käyttäjän MERKKIJONO -T, --initial-tab tuota SARKAIN eikä alkuvälilyöntejä -U sama kuin -p ja -u -V, --show-links anna tiedosto- ja riviviitteet annotaatioissa -W, --word-mode vertaa sanoja eikä rivejä -a, --auto-pager kutsuu automaattisesti sivuttajaa -c, --context-diffs pakota tuloste kontekstieroihin -d, --diff-input käytä yksittäistä yhdistettyä eroa syötteenä -e, --echo-comments kaiuta kommentit vakiovirheeseen -h (ohita) -h, --help näytä tämä opaste ja poistu -i, --ignore-case sekoita kirjainkoko vertailtaessa -k, --less-mode tulostintilavariaatio kohteelle ”less” -l, --less-mode tulostintilan variaatio kohteelle ”less” -l, --paginate sivuta tuloste ohjelman ”pr” kautta -m, --avoid-wraps älä laajenna kenttiä uusilla riveillä -n, --avoid-wraps älä laajenna kentiä uusilla riveillä -o, --old-diffs tulosta vanhan tyyliset diff-erot, ei väliä mitä -o, --printer ylikirjoita kuten tulostimille -p, --patch-format tuota korjausmuoto -p, --printer ylikirjoita kuten tulostimille -q, --quiet estä ”mdiff”-kutsusanoma -s, --statistics sano kuinka monta sanaa on poistettu, lisätty jne. -s, --strip-comments riisu kommenttirivit -t, --expand-tabs laajenna sarkaimet välilyönneiksi tulosteessa -t, --terminal käytä termcap-ominaisuutta kuten päätenäytöille -u, --unidiffs pakota tuloste yhdistettyihin eroihin -v, --verbose ilmoita muutamia tilastotietoja vakiovirheessä -v, --version näytä ohjelmaversio ja poistu -w, --start-delete=STRING merkkijono, joka merkitsee poistoalueen alun -x, --end-delete=STRING merkkijono, joka merkitsee poistoalueen lopun -y, --start-insert=STRING merkkijono, joka merkitsee lisäysalueen alun -z, --end-insert=STRING merkkijono, joka merkitsee lisäysalueen lopun -z, --terminal käytä ”termcap”:iä kuten päätenäytöille %d klusteri, %d klusteria, %d tiedosto, %d tiedostoa, %d alkio %d alkiota %d jäsen %d jäsentä %d jäsen, %d jäsentä, %d lmitys %d limitystä %s (kohteelle regexp ”%s”)%s: %d sana%s: %d sanaa%s: signaali %d tappoi syöteohjelman %s: signaali %d tappoi tulosteohjelman ” , %d alkio , %d alkiota , klusteroidaan, valmis Jos TIEDOSTOa ei ole annettu, lue vakiosyöte. Käynnistetään ”%sPakolliset argumentit pitkille valitsimille ovat pakollisia myös lyhyille valitsimille. Lukemisen yhteenveto:Luetaan %sIlmoita virheistä (englanniksi) osoitteeseen . Ilmoita käännösvirheistä osoitteeseen . LajitellaanLajitellaan jäseniäTätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen, mutta ilman mitään takuuta; ilman edes hiljaista takuuta kaupallisesti hyväksyttävästä laadusta tai soveltuvuudesta tiettyyn tarkoitukseen. Katso GPL-lisenssistä lisää yksityiskohtia. Tämä ohjelma kertoo myös kuinka ”mdiff”-ohjelmaa olisi voitu kutsua suoraan. Tämä ohjelma on vapaa ohjelma; voit jakaa sitä edelleen ja/tai muokata sitä Free Software Foundationin GNU General Public-lisenssin ehtojen mukaisesti; joko version 3 tai (valintasi mukaan) minkä tahansa myöhäisemmän version mukaisesti. Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen, mutta ILMAN MITÄÄN TAKUUTA; ilman edes hiljaista takuuta KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA tai SOVELTUVUUDESTA TIETTYYN TARKOITUKSEEN. Katso GPL-lisenssistä lisää yksityiskohtia. Saat kopion GNU General Public lisenssistä tämän ohjelman mukana; If not, see . Lisätietoja ”%s --help”-käskyllä. Käyttö: %s [VALITSIN]... TIEDOSTO1 TIEDOSTO2 Käyttö: %s [VALITSIN]... TIEDOSTO1 TIEDOSTO2 tai: %s -d [VALITSIN]... [TIEDOSTO] Käyttö: %s [VALITSIN]... [TIEDOSTO] Käyttö: %s [VALITSIN]... [TIEDOSTO]... Kun ei ole TIEDOSTOa, tai kun TIEDOSTO on -, lue vakiosyöte. Työn yhteenveto:ei voida käyttää valitsinta ”-t”, termcap ei ole käytettävissäei voi käyttää valitsinta ”-z”, termcap ei ole käytössäkontekstiero puuttuu ”uusi”-otsake rivillä %ldkontekstiero puuttuu ”vanha” otsake rivillä %ldei ollut pääsyä termcap-tietokantaanei voitu löytää nimeä erolle rivillä %ldhakemistoja ei ole tuettuvirheen uudelleenohjausvirtakohteen %s suorittaminen epäonnistuiei välitetä valitsimesta %s (ei toteutetttu)Virheellinen yhdistetty ero-otsake rivillä %ldvääränmuotoinen kontekstiero rivillä %ldvääränmuotoinen yhdistetty ero rivillä %ldmdiff - Tutkii useita tiedostoja ja etsii samanlaisia sekvenssejä. Se tuottaa sitten yksityiskohtaisen luettelon erilaisuuksista ja samanlaisuuksista. puuttuvat tiedostoargumentitsopivaa tilapäistä hakemistoa ei ole olemassavain yksi tiedosto voi olla vakiosyötevain yksi tiedostonimi on sallittuvalitsimet -123RSYZ ovat merkityksellisiä vain kun syötteitä on kaksivalitse pääte TERM-ympäristömuuttujan kauttapäätetyyppiä ”%s” ei ole määriteltyliian monia tiedostoargumenttejalisätietoja ”%s --help”-käskyllä ei voitu avata ”%s”unify - Muunna kontekstierot yhdistetyiksi eroiksi tai päinvastoin. wdiff - Vertailee sanoja kahdessa tiedostossa ja ilmoittaa eroista. wdiff - Laske sanaeroja sisäisesti käynnistämällä ”mdiff -W”. Tämä ohjelma on pääasiassa olemasssa tukemassa vanhentunutta ”wdiff”-syntaksia. sanalomittuminen vain kahdelle tiedostolle (toistaiseksi)wdiff-1.2.1/po/hu.gmo0000644000000000000000000000420512116513226011237 00000000000000 h9i81 #0 8CK[&?<y%92+ 8L\ dpyhy@F>     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:34+0100 Last-Translator: Emese Kovcs Language-Team: Hungarian Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit Copyright (C) 1994, 1997 Free Software Foundation, Inc. rta Franc,ois Pinard . rta Wayne Davison . %s (regexphez `%s'), csoportosts, ksz %s olvassaRendezsTagok rendezseEz szabad szoftver; a sokszorostsra vonatkoz feltteleket lsd a forrsban. SEMMILYEN garancit nem vllalunk, mg azt sem lltjuk, hogy ez a program KERESKEDELMI CLOKRA ALKALMAS vagy HASZNLHAT EGY ADOTT FELADATRA. Prbld a `%s --help'-et. mdiff - Tbb fjlt elemez, kzs rszek utn kutatva, majd rszletes listt r ki a hasonlsgokrl s a klnbsgekrl. unify - Szvegkrnyezeti diffet alakt unidiff, vagy fordtva. wdiff - kt fjl szavait hasonltja ssze s jelenti a klnbsgeket. wdiff-1.2.1/po/cs.gmo0000644000000000000000000004121012116513226011225 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""\i$J$8%>J% %%%%4%-&=F&<&J&O 'P\'G'D'C:(@~(A(L)>N)B)u))F*Lp*E*.+?2+>r+>+B+H3,B|,',A,N)-Cx-C->.M?.M.P.<,/3i/</F/Q!0:s0F0A0I71M1@1S2Od2P2L3KR3/3&3)3#4#C4)g4%4%4(4*515,65c5 r5655Z5%656E6 667Q7O87:0';ZX;(;+;?<H<9Z<8<@<A=&P=4w=&="==1 >4?>+t>+>> X?/y?1?&?8@4;@(p@"@6@@MAAaAA-ZB_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-26 14:17+0200 Last-Translator: Petr Pisar Language-Team: Czech Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1997, 1998, 1999 Free Software Foundation, Inc. Ladění: Formátování výstupu: Operační režimy: Přepínače režimu slov: Napsal François Pinard . Napsal Wayne Davison . --help zobrazí tuto nápovědu a skončí --version zobrazí verzi programu a skončí %d %.0f %% změněno %d %.0f %% změněna %d %.0f %% změněno %d %.0f %% společné %d %.0f %% společná %d %.0f %% společných %d %.0f %% odstraněno %d %.0f %% odstraněna %d %.0f %% odstraněno %d %.0f %% vloženo %d %.0f %% vložena %d %.0f %% vloženo -0, --debugging vypisuje mnoho podrobností o tom, co se děje -1, --no-deleted potlačí výstup odstraněných slov -2, --no-inserted potlačí výstup vložených slov -3, --no-common potlačí výstup společných slov -=, --use-equals ve sjednoceném formátu nahradí mezery rovnítky -A, --auto-pager automaticky zavolá stránkovač -C, --copyright zobrazí autorská práva a skončí -O, --item-regexp=REGULÁRNÍ_VÝRAZ porovná položky určené REGULÁRNÍM_VÝRAZEM -P stejné jako -p -S, --string[=ŘETĚZEC] vezme v úvahu další uživatelský ŘETĚZEC -T, --initial-tab místo úvodní mezery použije tabulátor -U stejné jako -p a -u -V, --show-links v popiscích uvede soubor a řádek -W, --word-mode porovná slova namísto řádků -a, --auto-pager automaticky zavolá stránkovač -c, --context-diffs vynutí výstup v kontextovém formátu -d, --diff-input jako vstup použije jeden sjednocený diff -e, --echo-comments komentáře vypisuje na chybový výstup -h (ignoruje se) -h, --help zobrazí tuto nápovědu a skončí -i, --ignore-case při porovnávání přehlíží velikost znaků -k, --less-mode variace na tiskový režim „less“ -l, --less-mode variace na tiskový režim „less“ -l, --paginate výstup stránkuje pomocí „pr“ -m, --avoid-wraps položky nerozšiřuje pomocí nových řádků -n, --avoid-wraps položky nerozšiřuje pomocí nových řádků -o, --old-diffs výstup je ve starém formátu, v každém případě -o, --printer přeškrtne jako pro tiskárny -p, --patch-format výstup ve formátu patch -p, --printer přeškrtne jako pro tiskárny -q, --quiet potlačí hlášení o zavolání mdiff -s, --statistics sdělí, kolik slov bylo odstraněno, vloženo atd. -s, --strip-comments odstraní řádky s komentáři -t, --expand-tabs na výstupu expanduje tabulátory na mezery -t, --terminal použije termcap jako pro terminál -u, --unidiffs vynutí výstup ve formátu sjednoceného diffu -v, --verbose vypíše jednoduchou statistiku na chybový výstup -v, --version zobrazí verzi programu a skončí -w, --start-delete=ŘETĚZEC začátek odstraněné oblasti vyznačí ŘETĚZCEM -x, --end-delete=ŘETĚZEC konec odstraněné oblasti vyznačí ŘETĚZCEM -y, --start-insert=ŘETĚZEC začátek vložené oblasti vyznačí ŘETĚZCEM -z, --end-insert=ŘETĚZEC konec vložené oblasti vyznačí ŘETĚZCEM -z, --terminal použije termcap jako pro displeje terminálu %d seskupení, %d seskupení, %d seskupení, %d soubor, %d soubory, %d souborů, %d položka %d položky %d položek %d člen %d členy %d členů %d člen, %d členy, %d členů, %d přesah %d přesahy %d přesahů %s (o regulárním výrazu „%s“)%s: %d slovo%s: %d slova%s: %d slov%s: vstupní program zabit signálem %d %s: výstupní program zabit signálem %d “ , %d položka , %d položky , %d položek , seskupuje se, dokončeno Není-li SOUBOR zadán, čte ze standardního vstupu. Spouští se „%sPovinné argumenty dlouhých přepínačů jsou též povinné pro krátké přepínače. Výkaz čtení:Načítá se %sChyby v programu oznamujte na adrese (anglicky), připomínky k překladu zasílejte na (česky). Řadí seŘadí se členyToto je volné programové vybavení; podmínky pro kopírování a rozšiřování naleznete ve zdrojových textech. Toto programové vybavení je zcela BEZ ZÁRUKY, a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NĚJAKÝ KONKRÉTNÍ ÚČEL. Tento program rovněž říká, jak by bylo možné zavolat „mdiff“ přímo. Tento program je volné programové vybavení; můžete jej šířit a/nebo upravovat podle ustanovení Obecné veřejné licence GNU, vydávané Free Software Foundation, a to buď verze 3 této licence, nebo (podle vašeho uvážení) kterékoli pozdější verze. Tento program je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO NĚJAKÝ KONKRÉTNÍ ÚČEL. Další podrobnosti naleznete v Obecné veřejné licenci GNU. Spolu s tímto programem byste měli obdržet kopii Obecné veřejné licence GNU. Pokud se tak nestalo, vizte . Více informací získáte příkazem „%s --help“. Použití: %s [PŘEPÍNAČE]… SOUBOR1 SOUBOR2 Použití: %s [PŘEPÍNAČE]… SOUBOR1 SOUBOR2 nebo: %s -d [PŘEPÍNAČE]… [SOUBOR] Použití: %s [PŘEPÍNAČ]… [SOUBOR] Použití: %s [PŘEPÍNAČ]… [SOUBOR]… Bez SOUBORU nebo je-li SOUBOR -, čte ze standardního vstupu. Pracovní výkaz:přepínač -t nelze použít, termcap není k dispozicipřepínač -z nelze použít, termcap není k dispozicina řádku %ld kontextového diffu chybí hlavička nového typuna řádku %ld kontextového diffu chybí hlavička starého typuk databázi termcap nelze přistoupitna řádku %ld nebylo možné najít jméno pro diffpráce s adresáři není podporovánachyba při přesměrování prouduselhalo spuštění %spřepínač %s se ignoruje (není implementován)chybná hlavička sjednoceného diffu na řádku %ldpoškozený kontextový diff na řádku %ldpoškozený sjednocený diff na řádku %ldmdiff – Prostuduje více souborů a vyhledá v nich podobnosti, následně je možné vypsat podrobný seznam rozdílů a podobností. argumenty souboru nebyly zadányneexistuje žádný vhodný dočasný adresářjen jeden soubor může být standardním vstupemje povoleno pouze jedno jméno souborupřepínače -123RSYZ mají smysl jen při dvou vstupechvyberte terminal pomocí proměnné prostředí TERMterminál typu „%s“ není definovánpříliš mnoho argumentů souboruvíce informací získáte příkazem „%s --help“ soubor „%s“ nelze otevřítunify – Převádí kontextový formát diffu na sjednocený a obráceně. wdiff – Porovná slova ve dvou souborech a nahlásí rozdíly. wdiff – Vypočte rozdíly ve slovech pomocí spuštění „mdiff -W“. Tento program existuje především proto, aby podporoval nyní zastaralou syntaxi nástroje „wdiff“. spojování slov jen pro dva soubory (zatím)wdiff-1.2.1/po/nl.po0000644000000000000000000005252112116513226011074 00000000000000# Dutch translations for GNU wdiff. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # # Dauerkalender: "Heute". # # Benno Schulenberg , 2007, 2008, 2010, 2011, 2012. # Erwin Poeze , 2010. # Erick Branderhorst , 1996. msgid "" msgstr "" "Project-Id-Version: wdiff-1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-30 09:56+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (voor reguliere expressie '%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "slechts één bestand kan standaardinvoer zijn" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "mappen vergelijken wordt niet ondersteund" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lezen van %s..." #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d item\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Leessamenvatting:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d bestand," msgstr[1] " %d bestanden," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d item\n" msgstr[1] " %d items\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorteren..." #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", clusteren..." #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", voltooid\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorteren van leden..." #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Werksamenvatting:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d cluster," msgstr[1] " %d clusters," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d lid\n" msgstr[1] " %d leden\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d lid," msgstr[1] " %d leden," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d overlapping\n" msgstr[1] " %d overlappingen\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "kies een terminal via de omgevingsvariabele TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "kan geen toegang krijgen tot de termcap-databank" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "terminaltype '%s' is niet gedefinieerd" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d woord" msgstr[1] "%s: %d woorden" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% gemeenschappelijk" msgstr[1] " %d %.0f%% gemeenschappelijk" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% verwijderd" msgstr[1] " %d %.0f%% verwijderd" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% gewijzigd" msgstr[1] " %d %.0f%% gewijzigd" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% ingevoegd" msgstr[1] " %d %.0f%% ingevoegd" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Typ '%s --help' voor meer informatie.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Bestudeert meerdere bestanden en zoekt naar gelijkenissen,\n" "en produceert dan een opsomming van verschillen en overeenkomsten.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" "Gebruik: %s [OPTIE...] [BESTAND...]\n" "\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Werkingsmodi:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (genegeerd)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose enige statistieken rapporteren op " "standaardfoutuitvoer\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help deze hulptekst tonen en stoppen\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version programmaversie tonen en stoppen\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Uitvoer opmaken:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab geen spatie maar tab als eerste teken gebruiken\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate de uitvoer met 'pr' in pagina's indelen\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" " -S, --string[=TEKENS] in uitvoer '-]' vervangen door deze tekenreeks\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links bestandsnamen en regelnummers toevoegen in " "notities\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs in de uitvoer tabs omzetten naar spaties\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging details tonen over wat er gedaan wordt\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Woordmodusopties:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted verwijderde woorden niet weergeven\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted ingevoegde woorden niet weergeven\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr "" " -3, --no-common gemeenschappelijke woorden niet weergeven\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automatisch een 'pager' aanroepen\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode uitvoermodus voor 'less'\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps velden niet voortzetten op een volgende regel\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer 'overstrike' gebruiken als bij printers\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal 'termcap' gebruiken als voor terminals\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP items vergelijken via deze reguliere expressie\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr "" " -W, --word-mode woorden in plaats van regels vergelijken\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "" "Als BESTAND '-' is, of als er geen BESTAND gegeven is,\n" "wordt standaardinvoer gelezen.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Rapporteer gebreken in het programma aan ;\n" "meld fouten in de vertaling aan .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "optie '%s' wordt genegeerd (niet geïmplementeerd)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "kan optie '-z' niet honoreren; termcap is niet beschikbaar" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "" "samenvoegen op woordniveau werkt (voorlopig) alleen voor twee bestanden" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Dit is vrije software; zie de programmatekst voor de kopieervoorwaarden.\n" "Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID\n" "VOOR EEN BEPAALD DOEL.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Geschreven door François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "opties '-123RSYZ' zijn alleen zinvol bij twee invoeren" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "fout bij omleiden van gegevensstroom" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "uitvoeren van %s is mislukt" # Programma probeert kenmerken van context- of uni-diff te vinden. #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "kan het soort diff niet bepalen op regel %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "typ '%s --help' voor meer informatie\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transformeert context-diffs naar uni-diffs, of omgekeerd.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "" "Gebruik: %s [OPTIE...] [BESTAND]\n" "\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs als uitvoer context-diffs produceren\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments commentaar naar standaardfoutuitvoer uitvoeren\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs als uitvoer antieke diffs produceren\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format uitvoer in patch-opmaak produceren\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P hetzelfde als '-p'\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments commentaarregels weglaten\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs als uitvoer uni-diffs produceren\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U hetzelfde als '-p' en ' -u' samen\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals spaties vervangen door gelijktekens in uni-diffs\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Als er geen BESTAND gegeven is, wordt standaardinvoer gelezen.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "kan '%s' niet openen" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "slechts één bestandsnaam is toegestaan" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Geschreven door Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "ongeldige kopregels van uni-diff op regel %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "misvormde uni-diff op regel %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "'old'-kopregel ontbreekt in context-diff op regel %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "misvormde context-diff op regel %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "'new'-kopregel ontbreekt in context-diff op regel %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "er is geen geschikte tijdelijke map" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: invoerprogramma is geëlimineerd door signaal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: uitvoerprogramma is geëlimineerd door signaal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Dit programma is vrije software; u mag het verder verspreiden en/of\n" "wijzigen onder de voorwaarden van de GNU General Public License zoals\n" "gepubliceerd door de Free Software Foundation, naar keuze ofwel onder\n" "versie 3 ofwel onder een nieuwere versie van die licentie.\n" "\n" "Dit programma wordt uitgegeven in de hoop dat het nuttig is,\n" "maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie\n" "van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.\n" "Zie de GNU General Public License voor meer details.\n" "\n" "Bij dit programma hoort u een kopie van de GNU General Public License " "ontvangen\n" "te hebben; is dit niet het geval, kijk dan op .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Vergelijkt woorden in twee bestanden en rapporteert verschillen.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Gebruik: %s [OPTIE...] BESTAND1 BESTAND2\n" " of: %s -d [OPTIE...] [BESTAND]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)\n" "\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright auteursrecht tonen en stoppen\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automatisch een 'pager' aanroepen\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input één enkele uni-diff als invoer gebruiken\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help deze hulptekst tonen en stoppen\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case verschil tussen hoofd- en kleine letters " "negeren\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode uitvoermodus voor 'less'\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps velden niet voortzetten op een volgende regel\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer 'overstrike' gebruiken als bij printers\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics aantal verwijderingen, invoegingen, enzovoort " "tonen\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal 'termcap' gebruiken als voor terminals\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version programmaversie tonen en stoppen\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=TEKENS markering voor begin van verwijderd stuk\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=TEKENS markering voor einde van verwijderd stuk\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=TEKENS markering voor begin van ingevoegd stuk\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=TEKENS markering voor einde van ingevoegd stuk\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "kan optie '-t' niet honoreren; termcap is niet beschikbaar" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "te veel bestandsargumenten" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "ontbrekende bestandsargumenten" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Rapporteert woordverschillen in twee bestanden via het aanroepen\n" " van 'mdiff -W'. Dit programma is bedoeld om de oude wdiff-syntax\n" " nog te kunnen gebruiken.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "" "Gebruik: %s [OPTIE...] BESTAND1 BESTAND2\n" "\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet de 'mdiff'-aanroepmelding onderdrukken\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Dit programma toont ook hoe 'mdiff' direct aangeroepen had kunnen worden.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Starten van '%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Leessamenvatting: %d bestanden, %d items\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Werksamenvatting: %d clusters, %d leden\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Werksamenvatting: %d clusters, %d leden, %d overlappen\n" wdiff-1.2.1/po/tr.gmo0000644000000000000000000000437112116513226011254 00000000000000 h9i81 #0 8CK[&?<%<CC2 v  +}QUQ     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 21:02+0100 Last-Translator: Deniz Akkus Kanca Language-Team: Turkish Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.9.1 Telif Hakkı (C) 1994, 1997 Free Software Foundation, Inc. François Pinard tarafından yazıldı. Wayne Davison tarafından yazılmıştır. %s (`%s' düzenli ifadesi için), topaklanıyor, bitti %s okunuyorSıralanıyorÜyeler sıralanıyorBu bir serbest yazılımdır; kopyalama koşulları için kaynak koduna bakınız. Hiçbir garantisi yoktur; hatta SATILABİLİRLİĞİ veya HERHANGİ BİR AMACA UYGUNLUĞU için bile garanti verilmez. Daha fazla bilgi için `%s --help' yazın. mdiff - birden fazla dosyayı inceler, benzeşen bölümleri arar, benzerlikler ve farklar hakkında detaylı rapor üretir. unify - context biçemini unidiff biçemine dönüştürür (veya aksini yapar). wdiff - iki dosyadaki sözcükleri karşılaştırır ve farklarını gösterir. wdiff-1.2.1/po/fi.po0000644000000000000000000013147112116513225011062 00000000000000# Finnish messages for wdiff. # Copyright © 2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Jorma Karvonen , 2007. # Jorma Karvonen , 2009-2012. # msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-26 17:34+0300\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: 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" "X-Generator: KBabel 1.11.2\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (kohteelle regexp ”%s”)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "vain yksi tiedosto voi olla vakiosyöte" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "hakemistoja ei ole tuettu" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Luetaan %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d alkio\n" msgstr[1] ", %d alkiota\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Lukemisen yhteenveto:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d tiedosto," msgstr[1] " %d tiedostoa," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d alkio\n" msgstr[1] " %d alkiota\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Lajitellaan" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", klusteroidaan" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", valmis\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Lajitellaan jäseniä" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Työn yhteenveto:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d klusteri," msgstr[1] " %d klusteria," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d jäsen\n" msgstr[1] " %d jäsentä\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d jäsen," msgstr[1] " %d jäsentä," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d lmitys\n" msgstr[1] " %d limitystä\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "valitse pääte TERM-ympäristömuuttujan kautta" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "ei ollut pääsyä termcap-tietokantaan" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "päätetyyppiä ”%s” ei ole määritelty" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d sana" msgstr[1] "%s: %d sanaa" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% yhteinen" msgstr[1] " %d %.0f%% yhteistä" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% poistettu" msgstr[1] " %d %.0f%% poistettua" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% muutettu" msgstr[1] " %d %.0f%% muutettua" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% lisätty" msgstr[1] " %d %.0f%% lisättyä" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Lisätietoja ”%s --help”-käskyllä.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Tutkii useita tiedostoja ja etsii samanlaisia sekvenssejä. Se " "tuottaa\n" "sitten yksityiskohtaisen luettelon erilaisuuksista ja samanlaisuuksista.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Käyttö: %s [VALITSIN]... [TIEDOSTO]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Toimintotilat:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ohita)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose ilmoita muutamia tilastotietoja vakiovirheessä\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help näytä tämä opaste ja poistu\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version näytä ohjelmaversio ja poistu\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Muotoilutuloste:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab tuota SARKAIN eikä alkuvälilyöntejä\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate sivuta tuloste ohjelman ”pr” kautta\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=MERKKIJONO] ota huomioon toisen käyttäjän MERKKIJONO\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links anna tiedosto- ja riviviitteet annotaatioissa\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs laajenna sarkaimet välilyönneiksi tulosteessa\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Vikajäljitys:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging tulosta monia yksityiskohtia tapahtumakulusta\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Sanatilavalitsimet:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted estä poistettujen sanojen tulostus\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted estä lisättyjen sanojen tulostus\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common estä yhteisten sanojen tulostus\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager kutsu automaattisesti sivuttajaa\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode tulostintilavariaatio kohteelle ”less”\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps älä laajenna kenttiä uusilla riveillä\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer ylikirjoita kuten tulostimille\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal käytä ”termcap”:iä kuten päätenäytöille\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP vertaa alkioita kuten REGEXP on määritellyt\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode vertaa sanoja eikä rivejä\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Kun ei ole TIEDOSTOa, tai kun TIEDOSTO on -, lue vakiosyöte.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Ilmoita virheistä (englanniksi) osoitteeseen .\n" "Ilmoita käännösvirheistä osoitteeseen .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ei välitetä valitsimesta %s (ei toteutetttu)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "ei voi käyttää valitsinta ”-z”, termcap ei ole käytössä" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "sanalomittuminen vain kahdelle tiedostolle (toistaiseksi)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen,\n" "mutta ilman mitään takuuta; ilman edes hiljaista takuuta kaupallisesti\n" "hyväksyttävästä laadusta tai soveltuvuudesta tiettyyn tarkoitukseen.\n" "Katso GPL-lisenssistä lisää yksityiskohtia.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Kirjoittaja: François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "valitsimet -123RSYZ ovat merkityksellisiä vain kun syötteitä on kaksi" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "virheen uudelleenohjausvirta" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "kohteen %s suorittaminen epäonnistui" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "ei voitu löytää nimeä erolle rivillä %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "lisätietoja ”%s --help”-käskyllä\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Muunna kontekstierot yhdistetyiksi eroiksi tai päinvastoin.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Käyttö: %s [VALITSIN]... [TIEDOSTO]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs pakota tuloste kontekstieroihin\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments kaiuta kommentit vakiovirheeseen\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs tulosta vanhan tyyliset diff-erot, ei väliä mitä\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format tuota korjausmuoto\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P sama kuin -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments riisu kommenttirivit\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs pakota tuloste yhdistettyihin eroihin\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U sama kuin -p ja -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals korvaa välilyönnit yhtäsuuruusmerkeillä " "yhdistetyissä eroissa\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Jos TIEDOSTOa ei ole annettu, lue vakiosyöte.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "ei voitu avata ”%s”" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "vain yksi tiedostonimi on sallittu" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Kirjoittaja: Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "Virheellinen yhdistetty ero-otsake rivillä %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "vääränmuotoinen yhdistetty ero rivillä %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "kontekstiero puuttuu ”vanha” otsake rivillä %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "vääränmuotoinen kontekstiero rivillä %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "kontekstiero puuttuu ”uusi”-otsake rivillä %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "sopivaa tilapäistä hakemistoa ei ole olemassa" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: signaali %d tappoi syöteohjelman\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: signaali %d tappoi tulosteohjelman\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Tämä ohjelma on vapaa ohjelma; voit jakaa sitä edelleen ja/tai muokata\n" "sitä Free Software Foundationin GNU General Public-lisenssin ehtojen " "mukaisesti;\n" "joko version 3 tai (valintasi mukaan) minkä tahansa myöhäisemmän version\n" "mukaisesti.\n" "\n" "Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen,\n" "mutta ILMAN MITÄÄN TAKUUTA; ilman edes hiljaista takuuta KAUPALLISESTI\n" "HYVÄKSYTTÄVÄSTÄ LAADUSTA tai SOVELTUVUUDESTA TIETTYYN TARKOITUKSEEN.\n" "Katso GPL-lisenssistä lisää yksityiskohtia.\n" "\n" "Saat kopion GNU General Public lisenssistä tämän ohjelman mukana;\n" "If not, see .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Vertailee sanoja kahdessa tiedostossa ja ilmoittaa eroista.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Käyttö: %s [VALITSIN]... TIEDOSTO1 TIEDOSTO2\n" " tai: %s -d [VALITSIN]... [TIEDOSTO]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Pakolliset argumentit pitkille valitsimille ovat pakollisia myös lyhyille " "valitsimille.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright näytä tekijänoikeustiedot ja poistu\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager kutsuu automaattisesti sivuttajaa\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input käytä yksittäistä yhdistettyä eroa syötteenä\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help näytä tämä opaste ja poistu\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case sekoita kirjainkoko vertailtaessa\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode tulostintilan variaatio kohteelle ”less”\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps älä laajenna kentiä uusilla riveillä\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer ylikirjoita kuten tulostimille\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics sano kuinka monta sanaa on poistettu, lisätty " "jne.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal käytä termcap-ominaisuutta kuten " "päätenäytöille\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version näytä ohjelmaversio ja poistu\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING merkkijono, joka merkitsee poistoalueen alun\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRING merkkijono, joka merkitsee poistoalueen lopun\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING merkkijono, joka merkitsee lisäysalueen alun\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING merkkijono, joka merkitsee lisäysalueen lopun\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "ei voida käyttää valitsinta ”-t”, termcap ei ole käytettävissä" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "liian monia tiedostoargumentteja" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "puuttuvat tiedostoargumentit" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Laske sanaeroja sisäisesti käynnistämällä ”mdiff -W”.\n" "Tämä ohjelma on pääasiassa olemasssa tukemassa vanhentunutta ”wdiff”-" "syntaksia.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Käyttö: %s [VALITSIN]... TIEDOSTO1 TIEDOSTO2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet estä ”mdiff”-kutsusanoma\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Tämä ohjelma kertoo myös kuinka ”mdiff”-ohjelmaa olisi voitu kutsua " "suoraan.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Käynnistetään ”%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "”\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Lukemisyhteenveto: %d tiedostoa, %d alkiota\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Työyhteenveto: %d klusteria, %d jäsentä\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Työyhteenveto: %d klusteria, %d jäsentä, %d on päällekkäin\n" #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term kuten valitsin ”-z”, mutta ei termcap-" #~ "alustus-/päättymismerkkijonoja\n" #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term kuten valitsin ”-t”, mutta ei termcap " #~ "alustus-/päättymismerkkijonoja\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Toimintatilat:\n" #~ " -h (ei oteta huomioon)\n" #~ " -v, --verbose raportoi muutamat tilastot vakiovirheeseen\n" #~ " --help näytä tämä opasteteksti ja poistu\n" #~ " --version tulosta versiotiedot ja poistu\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Muotoillaan tulostetta:\n" #~ " -T, --initial-tab tuota sarkainmerkkejä eikä alustavia " #~ "välilyöntejä\n" #~ " -l, --paginate sivuta tuloste ohjelman ”pr” kautta\n" #~ " -S, --string[=MERKKIJONO] ota huomioon toinen käyttäjäMERKKIJONO\n" #~ " -V, --show-links anna tiedosto- ja riviviitteet " #~ "annotaatioissa\n" #~ " -t, --expand-tabs laajenna sarkainmerkit välilyönneiksi " #~ "tulosteessa\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Sanatilavalitsimet:\n" #~ " -1, --no-deleted estä poistettujen sanojen tulostus\n" #~ " -2, --no-inserted estä lisättyjen sanojen tulostus\n" #~ " -3, --no-common estä yhteisten sanojen tulostus\n" #~ " -A, --auto-pager kutsu automaattisesti sivuttajaa\n" #~ " -k, --less-mode tulostintilavariaatio kohteelle ”less”\n" #~ " -m, --avoid-wraps älä laajenna kenttiä uusilla riveillä\n" #~ " -o, --printer ylikirjoita kuten tulostimille\n" #~ " -z, --terminal käytä ”termcap”:iä kuten päätenäytöille\n" #~ " -K, --no-init-term kuten valitsin ”-z”, mutta ei termcap-" #~ "alustus-/päättymismerkkijonoja\n" #~ " -O, --item-regexp=REGEXP vertaa alkioita kuten REGEXP on määritellyt\n" #~ " -W, --word-mode vertaa sanoja eikä rivejä\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Verrataan tiedostoja:\n" #~ "* -H, --speed-large-files nopeampi silloin kun on lukuisia pieniä " #~ "muutoksia\n" #~ "* -a, --text raportoi rivieroista (tekstitiedosto-" #~ "oletus)\n" #~ "* -d, --minimal yritä kovemmin pienelle muutosjoukolle\n" #~ "* -q, --brief sanoo ainoastaan, että tiedostot ovat " #~ "erilaisia (binäärioletus)\n" #~ "* --horizon-lines=RIVIÄ pitää RIVIÄ riviä yhteisissä etuliitteissä/" #~ "jälkiliitteissä\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Vertaillaan hakemistoja:\n" #~ "* -N, --new-file pidä puuttuvia tiedostoja tyhjänä\n" #~ "* -P, --unidirectional-new-file pidä puuttuvia vanhoja tiedostoja " #~ "tyhjinä\n" #~ "* -S, --starting-file=TIEDOSTO aloita uudelleen hakemistovertailu " #~ "TIEDOSTOlla\n" #~ "* -X, --exclude-from=TIEDOSTO älä ota huomioon TIEDOSTOn täsmääviä " #~ "tiedostomalleja\n" #~ "* -r, --recursive vertaa alihakemistoja rekursiivisesti\n" #~ "* -s, --report-identical-files raportoi kun kaksi tiedostoa ovat " #~ "samat\n" #~ "* -x, --exclude=MALLI ei oteta huomioon tiedostoja " #~ "(hakemistoja), jotka täsmäävät MALLIin\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Teksti, jota ei oteta huomioon:\n" #~ " -B, --ignore-blank-lines ei oteta huomioon tyhjiä rivejä\n" #~ "* -I, --ignore-matching-lines=REGEXP ei oteta huomioon rivejä, jotka " #~ "täsmäävät REGEXP:n kanssa\n" #~ " -b, --ignore-space-change ei oteta huomioon " #~ "tyhjätilamerkkien määrää\n" #~ " -i, --ignore-case ei oteta huomioon merkkikokoeroja\n" #~ " -w, --ignore-all-space ei oteta huomioon " #~ "tyhjätilamerkkejä\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Klusteroidaan:\n" #~ " -G, --relist-files luettele kaikki syötetiedostot " #~ "annotaatioilla\n" #~ " -J, --minimum-size=ALKIOTA ei oteta huomioon klustereita, joissa ei ole " #~ "vähintään ALKIOTA alkiota\n" #~ " -j, --ignore-delimiters älä laske alkioita, joissa on vain " #~ "erotinmerkkejä\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Yksityiskohtaiset tulostemuodot:\n" #~ "* -D, --ifdef=NIMI tulosta ”#ifdef NIMI”-muoto\n" #~ "* --changed-group-format=MUOTO käytä MUOTOa muutetuille " #~ "riveille\n" #~ "* --new-group-format=MUOTO käytä MUOTOa lisätyille riveille\n" #~ "* --new-line-format=MUOTO käytä MUOTOa lisätylle riville\n" #~ "* --old-group-format=MUOTO käytä MUOTOa poistetuille " #~ "riveille\n" #~ "* --old-line-format=MUOTO käytä MUOTOa poistetulle riville\n" #~ "* --unchanged-group-format=MUOTO käytä MUOTOa muuttumattomille " #~ "riveille\n" #~ "* --unchanged-line-format=MUOTO käytä MUOTOa muuttumattomalle " #~ "riville\n" #~ "* --line-format=MUOTO --{vanha,uusi,muuttumaton}-" #~ "rivimuoto\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Skripti-kaltaiset muodot:\n" #~ " (ei mikään valitsimista ”-CDUcefnuy”) tulosta tavalliset erot\n" #~ "* -e, --ed tulosta voimassa oleva ”ed”-" #~ "skripti\n" #~ "* -f, --forward-ed sekoita keskenään valitsimet ”-e” " #~ "ja ”-n” (ei ole kovin hyödyllinen)\n" #~ "* -n, --rcs tulosta RCS-muoto (RCS käyttää " #~ "sisäisesti)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Konteksti- ja yhteismuodot:\n" #~ "* -F, --show-function-line=REGEXP näytä edellinen REGEXP-täsmäävä " #~ "konteksti\n" #~ "* -p, --show-c-function näytä jokaiselle muutokselle, mikä C-" #~ "funktio on kyseessä\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=RIVIÄ kuten valitsin ”-c”, valitse myös " #~ "kontekstikoko riveillä\n" #~ "* -L, --label=TUNNISTE käytä kohteesta/kohteeseen TUNNISTEtta " #~ "eikä tiedostonimeä (kahdesti)\n" #~ "* -U, --unified=TUNNISTE kuten valitsin ”-u”, valitse myös " #~ "kontekstikoko riveillä\n" #~ "* -c, --context tulosta kontekstierot (oletus 3 " #~ "kontekstiriviä)\n" #~ "* -u, --unified tulosta ei-kontekstierot (oletus 3 " #~ "kontekstiriviä)\n" #~ "* -LINES (jäänyt pois käytöstä: valitse " #~ "kontekstikoko riveillä)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "vierimuoto:\n" #~ "* -W, --width=SARAKKEITA käytä SARAKKEITA leveytenä\n" #~ "* -y, --side-by-side käytä vierekkäistulostemuotoa\n" #~ "* --left-column tulosta vain vasen sarakerivi kun " #~ "yhteinen\n" #~ "* --sdiff-merge-assist (”sdiff” käyttää sisäisesti)\n" #~ "* --suppress-common-lines älä tulosta yhteisiä rivejä\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "MUOTO koostuu merkeistä yksinään, paitsi:\n" #~ " %%%% yksinäinen %%\n" #~ " %%c'C' lainattu merkki C\n" #~ " %%c'\\O' merkillä on arvo O, yhdestä kolmeen oktaalilukua\n" #~ " %%(A=B?T:E) jos A on B silloin T tai E; A B numero tai MUUTTUJA; T E " #~ "MUOTO\n" #~ " %%FN käytä SPECIF-määrittelyä F MUUTTUJAn arvon N " #~ "tulostamiseksi\n" #~ " %%< [ryhmä] vanha, jokainen rivi valitsimen ”--old-line-" #~ "format” kautta\n" #~ " %%> [ryhmä] uusi, jokainen rivi valitsimen ”--new-line-" #~ "format” kautta\n" #~ " %%= [ryhmä] muuttumaton, jokainen rivi valitsimen ”--" #~ "unchanged-line-format” kautta\n" #~ " %%l [rivi] ilman sen mahdollista jättörivinvaihtoa\n" #~ " %%L [rivi] mahdollisen jättörivinvaihdon kanssa\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF on [-][W[.D]]{doxX} kuten ”C printf”-käskyssä\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "MUUTTUJA on {eflmn} vanhalle ryhmälle tai {EFLMN} uudelle ryhmälle\n" #~ " {eE} rivinumero juuri ennen ryhmää\n" #~ " {fF} ryhmän ensimmäinen rivinumero\n" #~ " {lL} ryhmän viimeinen rivinumero\n" #~ " {mM} rivinumero juuri ryhmän jälkeen\n" #~ " {nN} rivinumerot ryhmässä\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Vakioerovalitsimet:\n" #~ " -i, --ignore-case pidä eri merkkikokoja samana\n" #~ " -w, --ignore-all-space älä ota huomioon kaikkia tyhjämerkkejä\n" #~ " -b, --ignore-space-change älä ota huomioon muutoksia " #~ "tyhjätilamerkkien lukumäärässä\n" #~ " -B, --ignore-blank-lines älä ota huomioon muutoksia, joiden " #~ "kaikki rivit ovat tyhjiä\n" #~ " -I, --ignore-matching-lines=RE älä ota huomioon muutoksia, joiden " #~ "kaikki rivit täsmäävät RE:n kanssa\n" #~ " -a, --text käsittele kaikki tiedostot teksteinä\n" #~ " -c, --context[=NUMERO] tulosta säännölliset kontekstierot\n" #~ " muuttaen kontekstin NUMEROriveiksi\n" #~ " -u, --unified[=NUMERO] tulosta yhdistyneet kontekstierot tai " #~ "kontekstinmukaiset,\n" #~ " kontekstin NUMEROriveillä\n" #~ " -C, --context=NUM tulosta NUM riviä kopioitua tekstiä\n" #~ " -U, --unified=NUM tulosta NUM riviä yhdistynyttä " #~ "kontekstia\n" #~ " -L, --label=LABEL käytä TUNNISTEtta eikä tiedostonimeä\n" #~ " -p, --show-c-function näytä missä C-funktiossa jokainen muutos " #~ "on\n" #~ " -F, --show-function-line=RE näytä viimeisin täsmäävä RE-rivi\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief tulosta vain kun tiedostot eroavat\n" #~ " -e, --ed tulosta ”ed”-skripti\n" #~ " -n, --rcs tulosta RCS-muotoinen ero\n" #~ " -y, --side-by-side tulosta kahdessa sarakkeessa\n" #~ " -w, --width=NUM tulosta enimmillään NUM (oletus 130) " #~ "merkkiä rivillä\n" #~ " --left-column tulosta vain vasen sarake yhteisistä " #~ "riveistä\n" #~ " --suppress-common-lines älä tulosta yhteisiä rivejä\n" #~ " -D, --ifdef=NIMI tulosta lomitettu tiedosto ”#ifdef NIMI”-" #~ "erojen näyttämiseksi\n" #~ " --GTYPE-group-format=GFMT GTYPE syöteryhmät GFMT:llä\n" #~ " --line-format=LFMT kaikki syöterivit LFMT:llä\n" #~ " --LTYPE-line-format=LFMT LTYPE syöterivit LFMT:llä\n" #~ " -l, --paginate välitä tuloste ”pr”:n kautta sen " #~ "sivuttamiseksi\n" #~ " -t, --expand-tabs laajenna sarakainmerkit välilyönneiksi " #~ "tulosteessa\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab aseta sarkaimet tasaan edeltävän rivin " #~ "sarkaimen kanssa\n" #~ " -r, --recursive vertaa kaikki löydetyt alihakemistot " #~ "rekursiivisesti\n" #~ " -N, --new-file pidä poissa olevia tiedostoja tyhjinä\n" #~ " -P, --unidirectional-new-file pidä poissaolevia ensimmäisiä tiedostoja " #~ "tyhjinä\n" #~ " -s, --report-identical-files raportoi kun kaksi tiedostoa ovat samoja\n" #~ " -x, --exclude=MALLI älä ota huomioon tiedostoja, jotka " #~ "täsmäävät MALLIn kanssa\n" #~ " -X, --exclude-from=TIEDOSTO älä ota huomioon tiedostoja, jotka " #~ "täsmäävät minkä tahansa mallin kanssa TIEDOSTOssa\n" #~ " -S, --starting-file=TIEDOSTO aloita TIEDOSTOlla kun verrataan " #~ "hakemistoja\n" #~ " --horizon-lines=NUM pidä yhteisen prefiksin ja suffiksin NUM " #~ "riviä\n" #~ " -d, --minimal yritä kovasti löytää muutosten pienin " #~ "joukko\n" #~ " -H, --speed-large-files otaksu laajat tiedostot ja monia " #~ "hajallaan olevia pieniä muutoksia\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Oletuksena kontekstieroilla on kaksirivinen näköpiiri.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE on ”vanha”, ”uusi”, tai ”muuttumaton”. GTYPE on LTYPE tai " #~ "”muuttunut”.\n" #~ "GFMT voi sisältää:\n" #~ " %< riviä tiedostosta TIEDOSTO1\n" #~ " %> riviä tiedostosta TIEDOSTO2\n" #~ " %= riviä, jotka ovat yhteisiä tiedostoille TIEDOSTO1 ja TIEDOSTO2\n" #~ " %[-][LEVEYS][.[TARKKUUS]]{doxX}KIRJAIN printf-tyylinen määrittely " #~ "kohteelle KIRJAIN\n" #~ " KIRJAIN-kohteet ovat kuten seuraavat uusille ryhmille, pieni " #~ "merkkikoko vanhoille ryhmille:\n" #~ " F ensimmäinen rivinumero\n" #~ " L viimeinen rivinumero\n" #~ " N rivien lukumäärä = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT voi sisältää:\n" #~ " %L rivin sisällön\n" #~ " %l rivin sisällön, kaikki jättörivinvaihdot pois jätettynä\n" #~ " %[-][LEVEYS][.[TARKKUUS]]{doxX}n printf-tyylinen määrittely " #~ "syöttörivinumeroille\n" #~ "Joko GFMT tai LFMT voi sisältää:\n" #~ " %% %\n" #~ " %c'C' yksittäinen merkki C\n" #~ " %c'\\OOO' merkki oktaalikoodilla OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Vanhat mdiff-valitsimet:\n" #~ "* -f, --fuzz-items=ALKIOT ei enempää kuin ALKIOT-määrä ei-täsmääviä " #~ "klusterissa\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright © 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012, 2013 Free " #~ "Software\n" #~ "Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012, 2013 Free " #~ "Software\n" #~ "Foundation, Inc.\n" wdiff-1.2.1/po/ru.po0000644000000000000000000014147212116513226011115 00000000000000# wdiff # Copyright (C) 1998 Free Software Foundation, Inc. # Oleg S. Tihonov , 1998, 2001. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:54+0100\n" "Last-Translator: Oleg S. Tihonov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s ( `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr " ." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr " " #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr " %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d \n" msgstr[1] ", %d \n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d \n" msgstr[1] ", %d \n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d \n" msgstr[1] ", %d \n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", " #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", \n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr " " #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", " msgstr[1] ", " #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d \n" msgstr[1] ", %d \n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr " TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr " termcap." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr " `%s' ." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d " msgstr[1] "%s: %d " #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% " msgstr[1] " %d %d%% " #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% " msgstr[1] " %d %d%% " #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% " msgstr[1] " %d %d%% " #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% " msgstr[1] " %d %d%% " #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr " `%s --help' .\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - \n" ", (, ) \n" " .\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr ": %s []... []...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" " :\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h ()\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose " "\n" " \n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help \n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version \n" #: src/mdiff.c:3783 #, fuzzy msgid "" "\n" "Formatting output:\n" msgstr "" "\n" " :\n" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab TAB \n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate `pr'\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] take note of another user STRING\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links \n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs \n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" ":\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging , \n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted \n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted \n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common \n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr "" " -A, --auto-pager \n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode , \"less" "\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps \n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr "" " -o, --printer , \n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal termcap\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp= , \n" " \n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode , \n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr " , -, .\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr " .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr " -z, termcap ." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr " ()." #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" " ; \n" " . ; \n" " .\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" " -- Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr " -123RSYZ , ." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr " %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr " `%s --help' .\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify - diff \n" ".\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr ": %s []... []\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs \n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments \n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs \n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format patch\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments \n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs \n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U -p -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals \n" " \n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr " -, \n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr " `%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr " " #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" " -- Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr " %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr " %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "" " ` ' " "%ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr " %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "" " ` ' %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" " ; / \n" " GNU, \n" " , 2 " "\n" "( ).\n" "\n" " , , \n" "- ; " "\n" " . " "\n" " GNU.\n" "\n" " GNU " "\n" " , , Free Software Foundation, Inc., 59 " "Temple\n" "Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - .\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" ": %s []... 1 2\n" " %s -d []... []\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr "" " -C, --copyright " "\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr "" " -a, --auto-pager \n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help \n" # ? " -i, --ignore-case " # ? " -i, --ignore-case " # ? " -i, --ignore-case " #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode , less\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps \n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer \n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics , " ".\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal termcap\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version \n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete= , \n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete= , \n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert= , \n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert= , \n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr " -t, termcap ." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr " , " #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr " , " #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr ": %s []... 1 2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr " %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr " : : %d, : %d\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr " : : %d, : %d\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr " : : %d, : %d, : %d\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term -z, termcap init/term\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ " -h ()\n" #~ " -v, --verbose " #~ "\n" #~ " \n" #~ " --help \n" #~ " --version \n" # -S, --string[=STRING] take note of another user STRING??? #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ " -T, --initial-tab TAB \n" #~ " -l, --paginate `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links \n" #~ " -t, --expand-tabs \n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ " -1, --no-deleted \n" #~ " -2, --no-inserted \n" #~ " -3, --no-common \n" #~ " -A, --auto-pager \n" #~ " -k, --less-mode , " #~ "\"less\"\n" #~ " -m, --avoid-wraps \n" #~ " -o, --printer , \n" #~ " -z, --terminal termcap\n" #~ " -K, --no-init-term -z, termcap init/term\n" #~ " -O, --item-regexp= , " #~ " \n" #~ " \n" #~ " -W, --word-mode , \n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ ":\n" #~ "* -H, --speed-large-files , " #~ "\n" #~ " \n" #~ "* -a, --text ( " #~ " \n" #~ " )\n" #~ "* -d, --minimal " #~ "\n" #~ "* -q, --brief , " #~ "( \n" #~ " )\n" #~ "* --horizon-lines= /" #~ "\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ "* -N, --new-file \n" #~ "* -P, --unidirectional-new-file " #~ "\n" #~ "* -S, --starting-file= " #~ "\n" #~ "* -X, --exclude-from= , " #~ "\n" #~ " \n" #~ "* -r, --recursive \n" #~ "* -s, --report-identical-files , " #~ "\n" #~ "* -x, --exclude= (), " #~ " \n" #~ " \n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ " -B, --ignore-blank-lines \n" #~ "* -I, --ignore-matching-lines= , " #~ " \n" #~ " \n" #~ " -b, --ignore-space-change " #~ "\n" #~ " -i, --ignore-case " #~ "\n" #~ " -w, --ignore-all-space \n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ ":\n" #~ " -G, --relist-files \n" #~ " -J, --minimum-size= , " #~ "\n" #~ " \n" #~ " -j, --ignore-delimiters , " #~ "\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ "* -D, --ifdef= `#ifdef '\n" #~ "* --changed-group-format= " #~ "\n" #~ "* --new-group-format= " #~ "\n" #~ "* --new-line-format= " #~ "\n" #~ "* --old-group-format= " #~ "\n" #~ "* --old-line-format= " #~ "\n" #~ "* --unchanged-group-format= " #~ "\n" #~ "* --unchanged-line-format= " #~ "\n" #~ "* --line-format= --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ ", :\n" #~ " ( -CDUcefnuy) diff\n" #~ "* -e, --ed `ed'\n" #~ "* -f, --forward-ed -e -n ( )\n" #~ "* -n, --rcs RCS ( \n" #~ " RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ "* -F, --show-function-line= . " #~ "\n" #~ " \n" #~ "* -p, --show-c-function , " #~ "\n" #~ " \n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context= -c, " #~ "\n" #~ "* -L, --label= , " #~ " \n" #~ " ()\n" #~ "* -U, --unified= -u, " #~ "\n" #~ "* -c, --context diff ( \n" #~ " 3 )\n" #~ "* -u, --unified diff (\n" #~ " 3 )\n" #~ "* -LINES (: )\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ " :\n" #~ "* -W, --width= \n" #~ "* -y, --side-by-side " #~ "\n" #~ "* --left-column " #~ "\n" #~ "* --sdiff-merge-assist ( `sdiff')\n" #~ "* --suppress-common-lines \n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ " , , :\n" #~ " %%%% %%\n" #~ " %%c'C' C\n" #~ " %%c'\\O' O, 1 3 \n" #~ " %%(A=B?T:E) A B, T, E; A B -- " #~ ";\n" #~ " T E -- \n" #~ " %%FN N " #~ " F\n" #~ " %%< [] , --old-line-format\n" #~ " %%> [] , --new-line-format\n" #~ " %%= [] , --unchanged-" #~ "line-format\n" #~ " %%l [] " #~ "\n" #~ " %%L [] , \n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ " -- [-][W[.D]]{doxX} - printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ " -- {eflmn} {EFLMN} \n" #~ " {eE} , \n" #~ " {fF} \n" #~ " {lL} \n" #~ " {mM} , \n" #~ " {nN} \n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ " diff:\n" #~ " -i, --ignore-case \n" #~ " -w, --ignore-all-space \n" #~ " -b, --ignore-space-change " #~ "\n" #~ " -B, --ignore-blank-lines , " #~ "\n" #~ " -I, --ignore-matching-lines= , " #~ "\n" #~ " \n" #~ " -a, --text \n" #~ " -c, --context[=] diff,\n" #~ " \n" #~ " -u, --unified[=] " #~ "diff,\n" #~ " \n" #~ " -C, --context= " #~ "\n" #~ " -U, --unified= \n" #~ " -L, --label= \n" #~ " -p, --show-c-function , - " #~ "\n" #~ " \n" #~ " -F, --show-function-line= , " #~ "\n" #~ " \n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief , \n" #~ " -e, --ed ed\n" #~ " -n, --rcs RCS\n" #~ " -y, --side-by-side \n" #~ " -w, --width= ( 130) " #~ "\n" #~ " \n" #~ " --left-column " #~ "\n" #~ " --suppress-common-lines \n" #~ " -D, --ifdef= output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " ---group-format= " #~ "\n" #~ " --line-format= \n" #~ " ---line-format= " #~ "\n" #~ " -l, --paginate `pr' " #~ "\n" #~ " -t, --expand-tabs \n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab , TAB \n" #~ " -r, --recursive \n" #~ " -N, --new-file \n" #~ " -P, --unidirectional-new-file " #~ "\n" #~ " -s, --report-identical-files , \n" #~ " -x, --exclude= , \n" #~ " -X, --exclude-from= , -\n" #~ " \n" #~ " -S, --starting-file= \n" #~ " --horizon-lines= /" #~ "\n" #~ " -d, --minimal " #~ "\n" #~ " -H, --speed-large-files , " #~ "\n" #~ " \n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ " , diffs .\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ " -- `old', `new' `unchanged' ( , \n" #~ " , ). -- `changed'.\n" #~ " :\n" #~ " %< 1\n" #~ " %> 2\n" #~ " %= , 1 2\n" #~ " %[-][][.[]]{doxX} " #~ "printf\n" #~ " , , \n" #~ " F \n" #~ " L \n" #~ " N = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ " :\n" #~ " %L \n" #~ " %l \n" #~ " %[-][][.[]]{doxX}n \n" #~ " printf\n" #~ " :\n" #~ " %% %\n" #~ " %c'C' C\n" #~ " %c'\\OOO' OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ " mdiff:\n" #~ "* -f, --fuzz-items= " #~ "\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs \n" #~ " -e, --echo-comments \n" #~ " -o, --old-diffs \n" #~ " -p, --patch-format patch\n" #~ " -P -p\n" #~ " -s, --strip-comments \n" #~ " -u, --unidiffs \n" #~ " -U -p -u\n" #~ " -=, --use-equals " #~ "\n" #~ " \n" #~ " --help \n" #~ " --version \n" #~ "\n" #~ " -, \n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ ", , .\n" #~ "\n" #~ " -C, --copyright " #~ "\n" #~ " -K, --no-init-term -t, termcap init/term\n" #~ " -V, --version \n" #~ " -1, --no-deleted \n" #~ " -2, --no-inserted \n" #~ " -3, --no-common \n" #~ " -a, --auto-pager \n" #~ " -h, --help \n" #~ " -i, --ignore-case \n" #~ " -l, --less-mode , " #~ "less\n" #~ " -n, --avoid-wraps \n" #~ " -p, --printer \n" #~ " -s, --statistics , " #~ " .\n" #~ " -t, --terminal termcap\n" #~ " -w, --start-delete= , \n" #~ " -x, --end-delete= , \n" #~ " -y, --start-insert= , \n" #~ " -z, --end-insert= , \n" wdiff-1.2.1/po/gl.po0000644000000000000000000005216512116513226011071 00000000000000# Galician translation of wdiff. # This file is distributed under the same license as the wdiff package. # Copyright (C) 2000 Free Software Foundation, Inc. # Copyright (C) 2010, 2012, 2013 Leandro Regueiro. # # Jacobo Tarrío Barreiro , 2000, 2002. # Leandro Regueiro , 2010, 2012, 2013. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en # msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2013-01-05 17:52+0200\n" "Last-Translator: Leandro Regueiro \n" "Language-Team: Galician \n" "Language: gl\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" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (para a expresión regular «%s»)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "só un ficheiro pode ser a entrada estándar" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "directorios non compatíbeis" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lendo %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elemento\n" msgstr[1] ", %d elementos\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Resumo da lectura:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d ficheiro," msgstr[1] " %d ficheiros," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d elemento\n" msgstr[1] " %d elementos\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Ordenando" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", agrupando" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", rematado\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Ordenando os membros" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Resumo do traballo:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d membro\n" msgstr[1] " %d membros\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d membro," msgstr[1] " %d membros," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "escolla un terminal mediante a variábel de ambiente TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "non foi posíbel acceder á base de datos de termcap" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "o tipo de terminal «%s» non está definido" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d palabra" msgstr[1] "%s: %d palabras" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% común" msgstr[1] " %d %.0f%% comúns" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% eliminada" msgstr[1] " %d %.0f%% eliminadas" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% cambiada" msgstr[1] " %d %.0f%% cambiadas" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% inserida" msgstr[1] " %d %.0f%% inseridas" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Execute «%s --help» para obter máis información.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Estuda varios ficheiros e busca secuencias semellantes, e despois\n" "produce listas detalladas de diferencias e semellanzas.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Uso: %s [OPCIÓN]... [FICHEIRO]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Modos de operación:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignorado)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose indica algunhas estatísticas en stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help Mostra esta mensaxe de axuda e sae\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version mostrar a versión do programa e saír\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Saída de formatado:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab escribir TAB en vez de espazo inicial\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate paxinar a saída con «pr»\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=CADEA] tomar nota de outra CADEA de usuario\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links indicar referencias a ficheiro e liña das " "anotacións\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs converter as tabulacións en espazos na saída\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Depuración:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging mostrar moitos detalles sobre o que está a pasar\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opcións do modo palabra:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted inhibir a saída das palabras eliminadas\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted inhibir a saída de palabras inseridas\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common inhibir a saída de palabras comúns\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager chama automaticamente a un paxinador\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variación do modo de impresora para \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps facer que os campos non salten dunha liña a " "outra\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr "" " -o, --printer facer dobre impresión para as impresoras\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal usar termcap para as pantallas\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP comparar os elementos tal como define REGEXP\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode comparar palabras en vez de liñas\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "" "Se non se indica un FICHEIRO, ou se o FICHEIRO é -, lese da entrada " "estándar.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Envíe os informes de fallo .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ignorando a opción %s (non implementado)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "non foi posíbel empregar -z, termcap non está dispoñíbel" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "mestura de palabras só para dous ficheiros (ata o de agora)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Isto é software libre; para ver as condicións de copia consulte o código\n" "fonte. NON hai garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA\n" "UN FIN DETERMINADO.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Escrito por François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "as opcións -123RSYZ só teñen sentido cando hai dúas entradas" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "produciuse un erro ao redirixir o fluxo" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "produciuse un erro ao executar %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "non foi posíbel atopar un nome para a diferencia da liña %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "execute «%s --help» para obter máis información\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transforma os diffs contextuais en unidiffs ou viceversa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Uso: %s [OPCIÓN]... [FICHEIRO]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs forzar que se produzan diffs contextuais\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments repetir os comentarios en stderr\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs xerar diffs do antigo estilo, independentemente de " "cal sexa\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format xerar formato de parche\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P o mesmo que -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments retirar as liñas de comentario\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs forxar que a saída sexa unidiff\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U o mesmo que -p e -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals substituír os espazos con signos igual nos " "unidiffs\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Se non se indica un FICHEIRO, lese da entrada estándar.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "non foi posíbel abrir «%s»" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "só se permite un nome de ficheiro" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Escrito por Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "cabeceira de diff unificado non válida na liña %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "diff unificado mal formado na liña %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "falta a cabeceira «old» no diff contextual na liña %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "diff contextual mal formado na liña %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "falta a cabeceira «new» no diff contextual na liña %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "non existe ningún directorio temporal axeitado" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: o programa de entrada foi matado polo sinal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: o programa de saída foi matado polo sinal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Este programa é software libre; pode redistribuílo e/ou modificalo\n" "baixo os termos da Licenza Pública Xeral de GNU tal como foi publicada\n" "pola Free Software Foundation; xa a versión 2, ou (á súa elección)\n" "calquera versión posterior.\n" "\n" "Este programa distribúese coa esperanza de que sexa útil, pero\n" "SEN NINGUNHA GARANTÍA; nin sequera a garantía implícita de COMERCIABILIDADE\n" "ou APTITUDE PARA UN FIN EN PARTICULAR. Vexa a Licenza Pública Xeral de\n" "GNU para ter máis detalles.\n" "\n" "Debería ter recibido unha copia da Licenza Pública Xeral de GNU con\n" "este programa; se non é o caso, consulte .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Compara as palabras en dous ficheiros e informa das diferencias.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Uso: %s [OPCIÓN]... FICHEIRO1 FICHEIRO2\n" " ou: %s -d [OPCIÓN]... [FICHEIRO]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Os argumentos obrigatorios nas opcións longas tamén o son para as opcións " "curtas.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright mostrar o copyright e saír\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager chama automaticamente a un paxinador\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input usar un único unified diff como entrada\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help mostrar esta mensaxe de axuda e saír\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case ignorar maiúsculas/minúsculas ao comparar\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode variación do modo de impresora para \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps facer que os campos non salten dunha liña a " "outra\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr "" " -p, --printer facer dobre impresión para as impresoras\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics indica cantas palabras se eliminaron, " "inseriron, etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal usar termcap para as pantallas\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version mostrar a versión do programa e saír\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=CADEA cadea para marcar o inicio da rexión de " "eliminación\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=CADEA cadea para marcar o final da rexión de " "eliminación\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=CADEA cadea para marcar o inicio da rexión de " "inserción\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=CADEA cadea para marcar o final da rexión de " "inserción\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "non é posíbel empregar -t, termcap non está dispoñíbel" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "demasiados argumentos de ficheiro" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "faltan os argumentos de ficheiro" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Calcula as diferencias de palabras iniciando internamente\n" "«mdiff -W». Este programa existe principalmente por compatibilidade\n" "coa sintaxe «wdiff» que agora xa é antiga.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Uso: %s [OPCIÓN]... FICHEIRO1 FICHEIRO2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet inhibir a mensaxe de chamada de «mdiff»\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Este programa tamén indica como se podería ter chamado directamente a " "«mdiff».\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Iniciando «%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "»\n" wdiff-1.2.1/po/da.gmo0000644000000000000000000003644712116513226011224 00000000000000v| K 9= ?w    8 1: 5l ; ' % ', )T ?~ = > <; Cx 9 9 @0$q;?+G><97>59t#9A BNB7C CP@8/8>>wG->,Bk2;?G]AGA/Bq+F[&t' / "I0 z %Eid&";^ |6 $$-,-Z&.$&'K"s"G&^#07!, N %f  ? < !(!!Ic#7#=##$2$M$a$7y$1$9$;%&Y%%%(%*%<%37&3k&1&N&C '7d'G'&'9 (FE(,(G(@)CB)A)>)=*%E*?k*Y*>+?D+6+D+=,O>,<,4,<-E=-E-/-I-9C.>}.E.</R?/Q/O/P40=00001%1!B1d11'1(111 22%2 >2MJ222y2+343G3C3-4-7G7e77377.7.83A87u88,88959(J91s9)9&99{:): ::9:2-;#`;;-;;C;:!<\<9<oj7F0E)/q,-6<5?; X A:9 Z]d_lm&BkR3WPDr8n*uK=@. e!'OQ La(1fU "2$tc%`g^+MbHi#>4YGNV\TS[sJChIpv Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.1.0 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-02-07 17:23+0100 Last-Translator: Keld Simonsen Language-Team: Danish Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright 1994, 1997 Free Software Foundation, Inc. Copyright 1997, 1998, 1999 Free Software Foundation, Inc. Fejlsgning: Formatering af resultat: Arbejdstilstande: Flag for ordtilstand: Skriven af Franois Pinard . Skrevet af Wayne Davison . --help vis denne hjlpetekst og afslut --version vis versionsinformation og afslut %d %.0f%% ndrede %d %.0f%% ndret %d %.0f%% flles %d %.0f%% flles %d %.0f%% slettede %d %.0f%% slettet %d %.0f%% tilfjede %d %.0f%% tilfjet -0, --debugging udskriv mange detaljer om hvad som sker -1, --no-deleted vis ikke slettete ord -2, --no-inserted vis ikke indsatte ord -3, --no-common vis ikke flles ord -=, --use-equals erstat mellemrum med lighedstegn i forenet forskelle -A, --auto-pager videregiv resultatet til en sideviser -C, --copyright skriv copyright og afslut -O, --item-regexp=REGEXP sammenlign poster som defineres af REGEXP -P samme som -p -S, --string[=STRENG] tag hnsyn til endnu en STRENG -T, --initial-tab skriv TAB i stedet for indledende mellemrum -U samme som -p og -u -V, --show-links angiv fil- og linjereferencer i annoteringer -W, --word-mode sammenlign ord i stedet for linjer -a, --auto-pager videregiv resultatet til en sideviser -c, --context-diffs vis resultatet som sammenhngsforskelle -d, --diff-input brug forenet forskel som inddata -e, --echo-comments skriv kommentarer til standard fejl -h (ignoreret) -h, --help skriv denne hjlpetekst og afslut -i, --ignore-case ignorr forskel p stre og sm bogstaver ved sammenligning -k, --less-mode speciel variant af -o for 'less' -l, --less-mode variation af --printer for 'less' -l, --paginate send resultatet gennem 'pr' -m, --avoid-wraps lad ikke felter lbe over flere linjer -n, --avoid-wraps ombryd ikke felter med nylinjer -o, --old-diffs vis under alle omstndigheder forskelle i gammel stil -o, --printer dobbeltskrift som for printere -p, --patch-format generr format for 'patch' -p, --printer overskrivning som for printere -q, --quiet undertryk meddelelse for 'mdiff'-kaldet -s, --statistics vis hvor mange ord slettet, indsat osv. -s, --strip-comments fjern kommentarlinjer -t, --expand-tabs erstat tabulatortegn med mellemrum i reultatet -t, --terminal brug termcap for terminaler -u, --unidiffs vis resultatet som forenet forskelle -v, --verbose rapportr en del statistik p standard fejl -v, --version skriv programversion og afslut -w, --start-delete=STRENG streng som markerer begyndelsen af en slettet region -x, --end-delete=STRENG streng som markerer slutningen af en slettet region -y, --start-insert=STRENG streng som markerer begynden af en insdsat region -z, --end-insert=STRENG streng som markerer slutningen af en indsat region -z, --terminal brug termcap til at markere ord %d grupper %d gruppe, %d poster, %d post, %d poster , %d post , %d medlemmer , %d medlem , %d medlemmer,, %d medlem,%d overlappende %d overlappende %s (for regulrt udtryk '%s')%s: %d ord%s: %d ord%s: inputprogram afbrudt med signal %d %s: outputprogram afbrudt med signal %d ' , %d poster , %d post , grupperer, klar Uden FIL angivet lses standard ind. Starter '%sObligatoriske argumenter for lange flag er ogs obligatoriske for korte flag Ls sammendrag:Lser %sRapportere fejl til Rapportr fejl eller synspunkter p oversttelsen til . SortererSorterer medlemmerDette er frit programmel; se kildeteksten for kopieringsbetingelser. Det er INGEN garanti; ikke engang for SALGBARHED eller EGNETHED FOR NOGET SPECIELT FORML. Dette program fortller ogs hvordan 'mdiff' kunne kaldes direkte. Flgende tekst er en uformel oversttelse som kun er til for informativt forml. For alle juridiske tolkninger glder den engelske originaltekst. Dette program er frit programmel. Du kan distribuere det og/eller ndre det under betingelserne i GNU General Public License, publiceret af Free Software Foundation, enten version 2 eller (om du vil) nogen senere version. Dette program distribueres i hb om at det skal vre brugbart, men UDEN NOGEN SOM HELST GARANTI, endog uden den underforstede garanti om SALGBARHED eller EGNETHED FOR NOGET SRLIGT FORML. Se GNU General Public License for yderligere information. Du br have fet en kopi af GNU General Public License sammen med dette program. Hvis ikke, se . Forsg med '%s --help' for mere information. Brug: %s [FLAG]... FIL1 FIL2 Brug: %s [FLAG]... [FIL] Brug: %s [FLAG]... [FIL]... Uden FIL eller hvis FIL er -, s ls standard ind. Arbejdssammendrag:kan ikke bruge -t, termcap er ikke tilgngeligkan ikke bruge -z, termcap er ikke tilgngeligsammenhngsforskel mangler 'nyt' hoved p linje %ldsammenhngsforskel mangler 'gammelt' hoved p linje %ldkan ikke lse termcap-databasenkan ikke finde et navn for diff p linje %ldkataloger understttes ikkefejl ved omdirigering af strmkunne ikke udfre %signorerer flaget %s (ikke implementeret)ugyldigt hoved for forenet forskelle p linje %ldsejlskabt sammenhngsforskel p linje %ldmisdannet forenet forskel p linje %ldmdiff - Lser flere filer og leder efter lignende sekvenser, drefter vises en muligvis detaljeret liste med forskelle og ligheder. filargumenter manglerintet passende temporrkatalog eksistererkun n fil kan vre standard indkun et filnavn tilladtflagene -123RSYZ er kun meningsfulde med to inddatakildervlg terminaltype ved at stte miljvariablen TERMterminaltype '%s' er ikke defineretfor mange filargumenterforsg med '%s --help' for mere information. kan ikke bne '%s'unify - Konvertr sammenhngsforskelle til forenet, eller omvendt. wdiff - Sammenlign ord i to filer og rapportr forskelle. wdiff - Beregn ordforskelle ved at internt kre "mdiff -W". Dette program findes hovedsageligt for at understtte den nu gamle 'wdiff'-syntaks. ordsammenfletning findes kun for to filer (indtil videre)wdiff-1.2.1/po/LINGUAS0000644000000000000000000000060511744500575011155 00000000000000# Set of available languages. # # Copyright (C) 2007 Free Software Foundation, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. ca cs da de en@boldquot en@quot en_GB es et fi fr ga gl hu id it ms nb nl pl pt_BR ro ru sk sl sv tr uk vi zh_CN zh_TW wdiff-1.2.1/po/zh_TW.po0000644000000000000000000005300512116513226011514 00000000000000# Traditional Chinese Messages for wdiff # Copyright (C) 2005 Free Software Foundation, Inc. # Wei-Lun Chao , 2005 # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 18:14+0100\n" "Last-Translator: Wei-Lun Chao \n" "Language-Team: Chinese (traditional) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (對於正規表示式「%s」)" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "只能有一個檔案是標準輸入。" #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "不支援目錄" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "正在讀取 %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ",%d 項\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ",%d 項\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ",%d 項\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "排序中" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ",叢集中" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ",已完成\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "排列編號中" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ",叢集中" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ",%d 項\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "用環境變數 TERM 指定終端機類型。" #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "無法存取 termcap 資料庫。" #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "終端機類型「%s」未定義。" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s:%d 個字" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% 共有" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% 已刪除" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% 已改變" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% 已插入" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "請嘗試執行‘%s --help’來獲取更多資訊。\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "mdiff - 探究多個檔案並搜尋相同的序列,從而產生儘可能詳細的異同列表。\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "用法:%s [選項]... [檔案]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "作業模式為:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (已忽略)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose 回報一些統計結果於標準錯誤裝置\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help 顯示此輔助訊息並離開\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version 輸出版本資訊並離開\n" #: src/mdiff.c:3783 #, fuzzy msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "格式化輸出:\n" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab 產生跳格字元以替代起始的空白\n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate 藉由「pr」來分頁輸出\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] 注意到其他的使用者 STRING\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr " -V, --show-links 在注釋中給予檔案和列號的參照值\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs 在輸出中展開跳格字元成空白\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "除錯:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging 輸出關於目前所發生的許多細節\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr "" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr "" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr "" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr "" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr "" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "如果沒有指定 FILE 或 FILE 是 -,則由標準輸入讀取資料。\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "將錯誤回報至 。\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "無法使用 -z,termcap 不存在。" #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "字組合併只能用於兩個檔案 (目前為止)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "版權所有 (C) 1992, 1997 自由軟體基金會。\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "這是自由軟體;請參考原始碼的版權聲明。本軟體不提供任何保證,甚至不會包括\n" "可售性或適用於任何特定目的的保證。\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "作者 Franc,ois Pinard 。\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "選項 -123RSYZ 只於存在二項輸入時才有意義。" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "無法找到用以表示第 %ld 差異的名稱" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "請嘗試執行‘%s --help’來獲取更多資訊。\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - 轉換內容差異的形式為 unidiffs,或是相反的作用。\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "用法:%s [選項]... [檔案]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr "" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr "" #: src/unify.c:290 msgid " -P same as -p\n" msgstr "" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr "" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr "" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr "" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "如果沒有指定 FILE 或 FILE 是 -,則由標準輸入讀取資料。\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "無法開啟「%s」" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "只允許一個檔案名稱" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "版權所有 (C) 1994-1997 自由軟體基金會。\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "作者 Wayne Davison 。\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "在第 %ld 列有無效的合併差異表頭" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "在第 %ld 列有不正常的合併差異表頭" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "在第 %ld 列的內容差異中缺少 old(舊) 表頭" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "在第 %ld 列有不正常格式化的內容差異" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "在第 %ld 列的內容差異中缺少 new(新) 表頭" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "這個程式是自由軟體, 您可以在自由軟體基金會所出版的 GNU\n" "一般公用授權書的規範下加以重新散發或且修改; 不管是第二\n" "或 (你認為的) 更後面的版本皆可.\n" "\n" "這個程式的散發只是希望它能有所用途而不附有任何的保證!\n" "甚至也不暗示它有商品價值或能合用於特定的目的. 細節請見\n" "GNU 一般公用授權書.\n" " \n" "正常情況下, 您在收到這個軟體的同時, 也應該收到 GNU\n" "一般公用授權書, 如果沒有, 請連絡自由軟體基金會, 地址是:\n" "59 Temple Place - Suite 330, Boston, MA 02111-1307,\n" "USA\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - 比較兩個檔案中的字組並回報差異。\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "用法:%s [選項]... 檔案1 檔案2\n" " %s -d [選項]... [檔案]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr "" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr "" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr "" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr "" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "無法使用 -t,termcap 不存在。" #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "版權所有 (C) 1992, 1997 自由軟體基金會。\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "缺少引數" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "缺少引數" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "版權所有 (C) 1994-1997 自由軟體基金會。\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "用法:%s [選項]... 檔案1 檔案2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "正在讀取 %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "讀取統計:%d 個檔案,%d 條項目\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "工作統計:%d 個叢集,%d 個成員\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "工作統計:%d 個叢集,%d 個成員,%d 個覆疊\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "作業模式為:\n" #~ " -h (已忽略)\n" #~ " -v, --verbose 回報一些統計結果於標準錯誤裝置\n" #~ " --help 顯示此輔助訊息並離開\n" #~ " --version 輸出版本資訊並離開\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "格式化輸出:\n" #~ " -T, --initial-tab 產生跳格字元以替代起始的空白\n" #~ " -l, --paginate 藉由「pr」來分頁輸出\n" #~ " -S, --string[=STRING] 注意到其他的使用者 STRING\n" #~ " -V, --show-links 在注釋中給予檔案和列號的參照值\n" #~ " -t, --expand-tabs 在輸出中展開跳格字元成空白\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF 是 [-][W[.D]]{doxX} 如同 C 的 printf 之中一樣\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "預設狀態下,兩列的內容差異彼此以水平顯示。\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE 可為「old」、「new」或「unchanged」。GTYPE 可為 LTYPE 或" #~ "「changed」。\n" #~ "GFMT 可包括:\n" #~ " %< 屬於 FILE1 的各列\n" #~ " %> 屬於 FILE2 的各列\n" #~ " %= 同時在 FILE1 和 FILE2 出現的各列\n" #~ " %[-][寬度][.[精確度]]{doxX}字元 以 printf 格式表示該<字元>代表的資料\n" #~ " 大寫<字元>表示屬於新的檔案,小寫表示屬於舊的檔案。<字元>的意義如下:\n" #~ " F 第一列的列號\n" #~ " L 最後一列的列號\n" #~ " N 列數 ( =L-F+1 )\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT 可包括:\n" #~ " %L 該列的內容\n" #~ " %l 該列的內容,但不包括結束的 newline 字元\n" #~ " %[-][寬度][.[精確度]]{doxX}n 以 printf 格式表示的輸入資料列號\n" #~ "不論 GFMT 或 LFMT 都可能包括: %% %\n" #~ " %c'C' 單一字元 C\n" #~ " %c'\\OOO' 以八位元表示為 OOO 的字元\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "舊有 mdiff 選項:\n" #~ "* -f, --fuzz-items=ITEMS 在一個叢集中不符合數目不會比 ITEMS 還多\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "版權所有 (C) 1997 自由軟體基金會。\n" wdiff-1.2.1/po/de.po0000644000000000000000000005366512116513225011064 00000000000000# German translations for GNU wdiff package. # Copyright (C) 1994 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Ulrich Drepper , 1994. # Michael Piefel , 2001, 2002, 2003, 2008, 2010, 2011, 201. # Martin von Gagern , 2010. # msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-29 22:00+0200\n" "Last-Translator: Michael Piefel \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (für reg. Ausdruck „%s“)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "es kann nur eine Datei aus der Standardeingabe kommen" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "Verzeichnisse werden nicht unterstützt" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lese %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d Element\n" msgstr[1] ", %d Elemente\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Lesezusammenfassung" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d Datei," msgstr[1] " %d Dateien," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d Element\n" msgstr[1] " %d Elemente\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sortiere" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", zusammenfassen" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", fertig\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sortiere Elemente" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Arbeitszusammenfassung:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d Cluster," msgstr[1] " %d Cluster," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d Mitglied\n" msgstr[1] " %d Mitglieder\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d Mitglied," msgstr[1] " %d Mitglieder," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d Überlappung\n" msgstr[1] " %d Überlappungen\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "wählen Sie mit der Umgebungsvariable TERM einen Terminaltyp aus" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "konnte auf die „termcap“-Datenbank nicht zugreifen" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "Terminaltyp „%s“ ist nicht definiert" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d Wort" msgstr[1] "%s: %d Wörter" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% gleich" msgstr[1] " %d %.0f%% gleich" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% gelöscht" msgstr[1] " %d %.0f%% gelöscht" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% verändert" msgstr[1] " %d %.0f%% verändert" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% eingefügt" msgstr[1] " %d %.0f%% eingefügt" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "„%s --help“ gibt weitere Informationen.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff – Untersucht mehrere Dateien und sucht nach ähnlichen Abschnitten,\n" "erstellt dann ausführliche Liste von Unterschieden und Ähnlichkeiten.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Aufruf: %s [OPTION]... [DATEI]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Arbeitsmodi:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignoriert)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose einige Statistiken auf stderr ausgeben\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help diese Hilfe anzeigen und beenden\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version Versionsinformationen anzeigen und beenden\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Ausgabe-Formatierung:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab Tabs anstelle von führenden Leerzeichen " "produzieren\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate Ausgabe durch „pr“ in Seiten aufteilen\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=ZKETTE] eine weiter Nutzer-ZKETTE beachten\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links Datei- und Zeilenbezug in Anmerkungen angeben\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs Tabs in der Ausgabe durch Leerzeichen ersetzen\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Fehlersuche:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging viele Details über alle Vorgänge ausgeben\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Wortmodus-Optionen:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted Ausgabe gelöschter Wörter unterdrücken\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted Ausgabe eingefügter Wörter unterdrücken\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common Ausgabe gemeinsamer Wörter unterdrücken\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automatisch Anzeigeprogramm aufrufen\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode Ausgabevariante für „less“-Ausgabe\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps Zeilenende begrenzt Felder\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer wie bei Druckern überschreiben\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal „termcap“ wie für Terminalanzeigen benutzen\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP Elemente wie durch REGEXP definiert " "vergleichen\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode Wörter anstelle von Zeilen vergleichen\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Ohne DATEI, oder wenn DATEI - ist, wird die Standardeingabe gelesen.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Melden Sie Übersetzungsfehler an ,\n" "Programmfehler dagegen (auf Englisch, mit LC_ALL=C) an .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ignoriere Option %s (nicht implementiert)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "Kann -z nicht benutzen, da „termcap“ nicht verfügbar ist." #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "Wortzusammenfassung nur für zwei Dateien (bislang)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Dies ist freie Software; Kopierbedingungen finden sich in den Quellen. Es " "gibt\n" "KEINE Garantie; nicht einmal für MARKTFÄHIGKEIT oder der ERFÜLLUNG EINES\n" "BESTIMMTEN ZWECKES.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Geschrieben von François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Optionen -123RSYZ nur mit zwei Eingaben sinnvoll" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "Fehler beim Umleiten des Streams" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "Ausführen von %s fehlgeschlagen" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "konnte keinen Namen für die Unterschiede in Zeile %ld finden" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "„%s --help“ gibt weitere Informationen.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify – Überführt Kontext-Diffs in Uni-Diffs und umgekehrt.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Aufruf: %s [OPTION]... [DATEI]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs Ausgabe von Kontext-Diffs erzwingen\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments Kommentare auf Standardfehlerausgaben weiterleiten\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs Diffs im alten Stil ausgeben, egal was passiert\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format Patch-Format erzeugen\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P wie -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments Kommentarzeilen weglassen\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs Ausgabe von Uni-Diffs erzwingen\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U wie -p und -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals in Uni-Diffs Leer- durch Gleichheitszeichen " "ersetzen\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Wird DATEI nicht angegeben, wird aus der Standardeingabe gelesen.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "kann „%s“ nicht öffnen" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "nur ein Dateiname erlaubt" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Geschrieben von Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "ungültiger Uni-Diff-Kopf in Zeile %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "unzulässiges Uni-Diff in Zeile %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "Kontext-Diff enthält keinen „alt“-Kopf in Zeile %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "unzulässiges Kontext-Diff in Zeile %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "Kontext-Diff enthält keinen „neu“-Kopf in Zeile %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "kein brauchbares temporäres Verzeichnis gefunden" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: Eingabeprogramm wurde durch Signal %d beendet\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: Ausgabeprogramm wurde durch Signal %d beendet\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Dieses Programm ist freie Software. Sie können es unter den Bedingungen der\n" "GNU General Public License, wie von der Free Software Foundation\n" "veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3\n" "der Lizenz oder (nach Ihrer Option) jeder späteren Version.\n" "\n" "Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen\n" "von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die " "implizite\n" "Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN\n" "ZWECK. Details finden Sie in der GNU General Public License.\n" "\n" "Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem\n" "Programm erhalten haben. Falls nicht, siehe .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff – Vergleicht Wörter in zwei Dateien und führt Unterschiede auf.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Aufruf: %s [OPTION]... DATEI1 DATEI2\n" " oder: %s -d [OPTION]... [DATEI]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Erforderliche Argumente für lange Optionen sind auch für kurze " "erforderlich.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright Copyright ausgeben und beenden\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr "" " -a, --auto-pager ruft automatisch ein Anzeigeprogramm auf\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input einzelnes Uni-Diff als Eingabe verwenden\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help diese Hilfe ausgeben und beenden\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case beim Vergleich Groß-/Kleinschreibung " "ignorieren\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode Variation des Ausgabemodus für „less“\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps Felder nicht über Zeilenumbrüche gehen lassen\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer Überdrucken (für Drucker)\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics Anzahl gelöschter, eingefügter etc. Wörter\n" " ausgeben\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal „termcap“ benutzen wie für Terminalanzeigen\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version Versionsinformationen ausgeben und beenden\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=ZKETTE Kennzeichnung für den Anfang einer Löschregion\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=ZKETTE Kennzeichnung für das Ende einer Löschregion\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=ZKETTE Kennzeichnung für den Anfang einer " "Einfügeregion\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=ZKETTE Kennzeichnung für das Ende einer Einfügeregion\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "kann -t nicht benutzen, da „termcap“ nicht verfügbar ist" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "zu viele Dateiargumente" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "Dateiargumente fehlen" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff – Wortunterschiede berechnen, indem intern „mdiff -W“ gerufen wird.\n" "Dieses Programm existiert hauptsächlich, um die angestaubte „wdiff“-Syntax\n" "zu unterstützen.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Aufruf: %s [OPTION]... DATEI1 DATEI2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet Ausgabe des Aufrufs von „mdiff“ unterdrücken\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Dieses Programm gibt zudem aus, wie man „mdiff“ direkt hätte aufrufen " "können.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Lese „%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "“\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Zusammenfassung (Lesen): %d Dateien, %d Elemente\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Zusammenfassung (Arbeit): %d Bereiche, %d Elemente\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "" #~ "Zusammenfassung (Arbeit): %d Bereiche, %d Elemente, %d Überlappungen\n" #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term wie -z, aber keine init/term-Termcap-" #~ "Sequenzen\n" #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term wie -t, aber ohne init/term-Zeichenketten " #~ "von\n" #~ " termcap\n" wdiff-1.2.1/po/en@quot.header0000644000000000000000000000226311744500044012706 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # wdiff-1.2.1/po/ru.gmo0000644000000000000000000000432612116513226011255 00000000000000 h9i81 #0 8CK[&?<c%9@9#>b r  @lRC?     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:54+0100 Last-Translator: Oleg S. Tihonov Language-Team: Russian Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Copyright (C) 1994, 1997 Free Software Foundation, Inc. -- Franc,ois Pinard . -- Wayne Davison . %s ( `%s'), , %s ; . ; . `%s --help' . mdiff - , (, ) . unify - diff . wdiff - . wdiff-1.2.1/po/Makevars0000644000000000000000000000344111744500044011614 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = wdiff-bugs@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = wdiff-1.2.1/po/en_GB.gmo0000644000000000000000000000410712116513226011576 00000000000000 h9i81 #0 8CK[&?<e%9810 ER Zem}&<?<      Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 20:21+0100 Last-Translator: Gareth Owen Language-Team: English (British) Language: en_GB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff-1.2.1/po/nb.po0000644000000000000000000013445612116513226011072 00000000000000# Norwegian messages for GNU wdiff. (bokml dialect) # Copyright (C) 1996 Free Software Foundation, Inc. # Eivind Tagseth , 2004. # Karl Anders ygard , 1996. # msgid "" msgstr "" "Project-Id-Version: GNU wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 17:43+0100\n" "Last-Translator: Eivind Tagseth \n" "Language-Team: Norwegian Bokmaal \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (for regulrt uttrykk %s)" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Bare n fil kan vre standard innkanal." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Filkataloger er ikke stttet" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Leser %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elementer\n" msgstr[1] ", %d elementer\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d elementer\n" msgstr[1] ", %d elementer\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d elementer\n" msgstr[1] ", %d elementer\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorterer" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", klynger" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", ferdig\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorterer medlemmer" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", klynger" msgstr[1] ", klynger" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d elementer\n" msgstr[1] ", %d elementer\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Velg en terminal gjennom TERM-miljvariablen." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Kunne ikke aksessere termcap-databasen." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Terminal-type %s er ikke definert." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d ord" msgstr[1] "%s: %d ord" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% felles" msgstr[1] " %d %d%% felles" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% slettet" msgstr[1] " %d %d%% slettet" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% endret" msgstr[1] " %d %d%% endret" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% satt inn" msgstr[1] " %d %d%% satt inn" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prv %s --help for mer informasjon.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Studerer flere filer og sker etter liknende sekvenser. Deretter\n" "produseres muligens detaljerte lister med forskjeller og likheter.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Bruk: %s [FLAGG]... [FIL]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Operasjonsmodi:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (ignorert)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose rapporter litt statistikk p standard feilkanal\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help vis denne hjelpteksten og avslutt\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version vis versjonsinformasjon og avslutt\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" # ? " -T, --initial-tab f tabulatorer justert ved sette inn en tabulator" # ? " -T, --initial-tab produser TAB isteden for startende mellomrom" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" # ? " -l, --paginate send utskrift videre gjennom pr for paginering" # ? " -l, --paginate paginr utskrift gjennom pr" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRENG] husk en annen bruker-STRENG\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links vis fil- og linje-referanser i annoteringer\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs ekspander tabulatorer til mellomrom i utskrift\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Feilsking:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging skriv ut mange detaljer om hva som foregr\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted skriv ikke slettede ord\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted skriv ikke innsatte ord\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common skriv ikke felles ord\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager kaller et sideleseprogram automatisk\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variasjon av utskriftsmodus for less\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps ikke utvid felt gjennom linjeskift\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer bruk overstrek som for skrivere\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal bruk termcap som for vanlige terminaler\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGUTTR sammenlikn elementer som definert av REGUTTR\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode sammenlikn ord i steden for linjer\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Uten FIL, eller hvis FIL er -, les fra standard innkanal.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Rapporter feil til .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Kan ikke bruke -z, termcap er ikke tilgjengelig" #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Ordfletting kun for to filer (s langt)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Dette er fri programvare; se kildekoden for kopieringsbetingelser. Det er\n" "INGEN garanti; ikke engang for SALGBARHET eller EGNETHET FOR NOEN SPESIELL\n" "OPPGAVE.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Skrevet av Franois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Flaggene -123RSYZ gir bare mening med to innkilder." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Kunne ikke finne et navn for diffen p linje %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Prv %s --help for mer informasjon.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unift - Transformer kontekstdiffer til unidiffer, eller motsatt.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Bruk: %s [FLAGG]... [FIL]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs tving utskrift til kontekstdiffer\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments skriv kommentarer til standard feilkanal\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs skriv ut gammeldagse differs, uansett\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format lag patch-format\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P samme som -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments stripp vekk kommentarlinjer\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs tving utskrift til unidiffer\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U samme som -p og -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals erstatt mellomrom med likhetstegn i unidiffer\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Hvis FIL ikke er oppgitt, leses fra standard innkanal.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Kunne ikke pne %s" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Bare ett filnavn er tillatt" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Skrevet av Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Ulovlig unified diff-filhode p linje %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Ugyldig unified diff p linje %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Context diff mangler old-filhode p linje %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Ugyldig kontekstdiff p linje %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Kontekstdiff mangler new-filhode p linje %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "(Flgende tekst er en oversettelse som *kun* gis p en informativ basis.\n" "For alle juridiske tolkninger gjelder den engelske originalteksten.)\n" "\n" "Dette programmet er gratis programvare. Du kan distribuere og/eller\n" "modifisere det under GNU General Public License slik den er kunngjort fra\n" "Free Software Foundation, versjon 2 eller, valgfritt, en senere versjon.\n" "\n" "Dette programmet er distribuert med det ml at det skal vre til nytte, men\n" "UTEN NOEN FORM FOR GARANTI, heller ingen implisert garanti for SALGBARHET\n" "eller EGNETHET TIL NOEN SPESIELL OPPGAVE. Se GNU General Public License\n" "for nrmere detaljer.\n" "\n" "Sammen med dette programmet skulle du ha mottatt en kopi av GNU General\n" "Public License. Dersom ikke, skriv til Free Software Foundation, Inc., 59\n" "Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Sammenlikn ord i to filer og rapporter forskjeller.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Bruk: %s [FLAGG]... FIL1 FIL2\n" " %s -d [FLAGG]... [FIL]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright vis copyright og avslutt\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager kaller en pager automatisk\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help vis denne hjelpeteksten\n" # ? " -i, --ignore-case ignorer forskjeller mellom sm/store \n bokstaver." # ? " -i, --ignore-case skill ikke mellom store og sm bokstaver" # ? " -i, --ignore-case ikke skill mellom store og sm bokstaver" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variant av printer-modus for \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps ikke utvid felter gjennom newlines\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer bruk overstrike som for printere\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics skriv antall ord som ble slettet, satt inn, " "osv.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal bruk termcap som for vanlige terminaler\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version vis programversion og avslutt\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=STRENG streng som markerer start p sletting\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=STRENG streng som markerer slutt p sletting\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=STRENG streng som markerer start p innsetting\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=STRENG streng som markerer slutt p innsetting\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Kan ikke bruke -t, termcap er ikke tilgjengelig" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Mangler filargumenter" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Mangler filargumenter" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Bruk: %s [FLAGG]... FIL1 FIL2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "Leser %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Lesesammendrag: %d filer, %d elementer\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Arbeidssammendrag: %d klynger, %d medlemmer\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Arbeidssammendrag: %d klynger, %d medlemmer, %d overlappinger\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term som -z, men ingen termcap-init/-term-" #~ "strenger\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Operasjonsmodi:\n" #~ " -h (ignorert)\n" #~ " -v, --verbose rapporter litt statistikk p standard feilkanal\n" #~ " --help vis denne hjelpteksten og avslutt\n" #~ " --version vis versjonsinformasjon og avslutt\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formattering av utskrift:\n" #~ " -T, --initial-tab produser TAB isteden for startende mellomrom\n" #~ " -l, --paginate paginr utskrift gjennom pr\n" #~ " -S, --string[=STRENG] husk en annen bruker-STRENG\n" #~ " -V, --show-links vis fil- og linje-referanser i annoteringer\n" #~ " -t, --expand-tabs ekspander tabulatorer til mellomrom i utskrift\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ " -1, --no-deleted skriv ikke slettede ord\n" #~ " -2, --no-inserted skriv ikke innsatte ord\n" #~ " -3, --no-common skriv ikke felles ord\n" #~ " -A, --auto-pager kaller et sideleseprogram automatisk\n" #~ " -k, --less-mode variasjon av utskriftsmodus for less\n" #~ " -m, --avoid-wraps ikke utvid felt gjennom linjeskift\n" #~ " -o, --printer bruk overstrek som for skrivere\n" #~ " -z, --terminal bruk termcap som for vanlige terminaler\n" #~ " -K, --no-init-term som -z, men ingen termcap-init/-term-" #~ "strenger\n" #~ " -O, --item-regexp=REGUTTR sammenlikn elementer som definert av " #~ "REGUTTR\n" #~ " -W, --word-mode sammenlikn ord i steden for linjer\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Sammenlikn filer:\n" #~ "* -H, --speed-large-files g raskere, for mange sm endringer\n" #~ "* -a, --text rapporter linje-forskjeller (forvalgt for\n" #~ " tekstfiler)\n" #~ "* -d, --minimal prv hardere, for et mindre sett med " #~ "endringer\n" #~ "* -q, --brief bare si om filer er forskjellige (forvalgt " #~ "for\n" #~ " binre filer)\n" #~ "* --horizon-lines=LINJER behold LINJER linjer i vanlige prefiks/" #~ "suffiks\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Sammenlikning av kataloger:\n" #~ "* -N, --new-file regn manglende filer som tomme\n" #~ "* -P, --unidirectional-new-file regn manglende gamle filer som tomme\n" #~ "* -S, --starting-file=FIL gjenoppta katalogsammenlikning med " #~ "FIL\n" #~ "* -X, --exclude-from=FIL ignorer filer som samsvarer med " #~ "mnster\n" #~ " fra FIL\n" #~ "* -r, --recursive sammenlikn kataloger rekursivt\n" #~ "* -s, --report-identical-files rapporter nr to filer er like\n" #~ "* -x, --exclude=MNSTER ignorer filer (kataloger) som " #~ "samsvarer\n" #~ " med MNSTER\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Ignorer tekst:\n" #~ " -B, --ignore-blank-lines ignorer blanke linjer\n" #~ "* -I, --ignore-matching-lines=REGUTTR ignorer linjer som samsvarer med " #~ "REGUTTR\n" #~ " -b, --ignore-space-change ignorer mengde mellomrom\n" #~ " -i, --ignore-case ignorer forskjeller mellom sm/" #~ "store \n" #~ " bokstaver.\n" #~ " -w, --ignore-all-space ignorer tomrom\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Klynger:\n" #~ " -G, --relist-files list alle innfiler med annoteringer\n" #~ " -J, --minimum-size=ELEM ignorer klynger som ikke har s mange ELEM\n" #~ " -j, --ignore-delimiters ikke tell elementer som bare har skilletegn\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Detaljerte utskriftformater:\n" #~ "* -D, --ifdef=NAVN skriv ut #ifdef NAVN-format\n" #~ "* --changed-group-format=FORMAT bruk FORMAT for endrede linjer\n" #~ "* --new-group-format=FORMAT bruk FORMAT for innskutte " #~ "linjer\n" #~ "* --new-line-format=FORMAT bruk FORMAT for innskutt linje\n" #~ "* --old-group-format=FORMAT bruk FORMAT for slettede linjer\n" #~ "* --old-line-format=FORMAT bruk FORMAT for slettet linje\n" #~ "* --unchanged-group-format=FORMAT bruk FORMAT for uendrede linjer\n" #~ "* --unchanged-line-format=FORMAT bruk FORMAT for uendrer linje\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Skript-liknenede formater:\n" #~ " (ingen av -CDUcefnuy) skriv ut vanlige differ\n" #~ "* -e, --ed skriv ut gyldige ed-skript\n" #~ "* -f, --forward-ed bland mellom -e og -n (ikke srlig nyttig)\n" #~ "* -n, --rcs skriv ut RCS-format (internt brukt av RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Kontekst og forente formater:\n" #~ "* -F, --show-function-line=REGUTTR vis forrige kontekst som samsvarer " #~ "med\n" #~ " REGUTTR\n" #~ "* -p, --show-c-function vis hvilken C-funksjon for hver " #~ "endring\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LINJER som -c, men velg kontekst-strrelse i " #~ "linjer\n" #~ "* -L, --label=TITTEL bruk fra/til-TITTEL i steden for filnavn\n" #~ " (to ganger)\n" #~ "* -U, --unified=LINJER som -u, men velg kontekst-strrelse i " #~ "linjer\n" #~ "* -c, --context skriv ut kontekstdiffer \n" #~ " (forvalgt 3 kontekstlinjer)\n" #~ "* -u, --unified skriv ut unidiffer (forvalgt 3 " #~ "kontekstlinjer)\n" #~ "* -LINJER (avleggs: vel kontekststrrelse i linjer)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Side ved side-format:\n" #~ "* -W, --width=KOLONNER bruk bredde lik KOLONNER\n" #~ "* -Y, --side-by-side bruk side ved side-format\n" #~ "* --left-column skriv bare ut venstre kolonne nr de er " #~ "felles\n" #~ "* --sdiff-merge-assist (internt brukt av sdiff)\n" #~ "* --supress-common-lines ikke skriv ut felles linjer\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT bestr av tegn som str for seg selv, unntatt:\n" #~ " %%%% et enkelt %%\n" #~ " %%c'C' beskyttet tegn C\n" #~ " %%c'\\O' tegn som har vardi O, fra 1 til 3 oktale siffer\n" #~ " %%(A=B?T:E) hvis A er B s T ellers E. A og B er tall eller " #~ "VARIABEL;\n" #~ " T og E er formater\n" #~ " %%FN bruk SPECIF-spesifikasjon F for skrive ut VARIABEL " #~ "verdi N\n" #~ " %%< [gruppe] gammel, hver linje via --old-line-format\n" #~ " %%> [gruppe] new, hver linje via --new-line-format\n" #~ " %%= [gruppe] uendret, hver linje via --unchange-line-format\n" #~ " %%l [linje] uten det eventuelle avsluttende linjeskift\n" #~ " %%L [linje] med det eventuelle avsluttende linjeskift\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF er [-][W[.D]]{doxX} som i C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABEL er {eflmn} for gammel gruppe eller {EFLMN} for ny gruppe\n" #~ " {eE} linjenummer rett fr gruppe\n" #~ " {fF} frste linjenummer til gruppa\n" #~ " {lL} siste linjenummer til gruppa\n" #~ " {mM} linjenummer rett etter gruppa\n" #~ " {nN} antall linjer i gruppa\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Standard diff-flagg:\n" #~ " -i, --ignore-case ikke skill mellom store og sm bokstaver\n" #~ " -w, --ignore-all-space ignorer alle tomrom\n" #~ " -b, --ignore-space-change ignorer endringer i mengde tomrom\n" #~ " -B, --ignore-blank-lines ignorer endringer hvis linjer er helt blanke\n" #~ " -I, --ignore-matching-lines=RE ignorer endringer i linjer som " #~ "samsvarer\n" #~ " med RE\n" #~ " -a, --text hndter alle filer som tekstfiler\n" #~ " -c, --context[=ANTALL] skriv ut vanlige kontekstdiffer,\n" #~ " endre til ANTALL linjer kontekst\n" #~ " -u, --unified[=ANTALL] skriv ut forente kontekstdiffer eller " #~ "unidiffer\n" #~ " med ANTALL linjer kontekst\n" #~ " -C, --context=ANT skriv ANT linjer kopiert kontekst\n" #~ " -U, --unified=ANT skriv ANT linjer forent kontekst\n" #~ " -L, --label=TITTEL bruk TITTEL i steden for filnavn\n" #~ " -p, --show-c-function vis hvilken C-funksjon hver endring er i\n" #~ " -F, --show-function-line=RE vis den nyeste linjen som samsvarer med RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief skriv bare om filene er forskjellige\n" #~ " -e, --ed skriv ut et ed-skript\n" #~ " -n, --rcs skriv ut RCS-format-diff\n" #~ " -y, --side-by-side skriv ut i to kolonner\n" #~ " -w, --width=ANT skriv ut maks ANT (forvalgt 130) tegn per " #~ "linje\n" #~ " --left-column skriv bare venstre kolonne for like linjer\n" #~ " --suppress-common-lines ikke skriv ut like linjer\n" #~ " -D, --ifdef=NAVN skriv ut flettet fil for vise #ifdef NAVN-" #~ "differ\n" #~ " --GTYPE-group-format=GFMT GTYPE inngrupper med GFMT\n" #~ " --line-format=LFMT alle innlinjer med LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE innlinjer med LFMT\n" #~ " -l, --paginate send utskrift videre gjennom pr for " #~ "paginering\n" #~ " -t, --expand-tabs ekspander tabulatorer til mellomrom i " #~ "utskrift\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab f tabulatorer justert ved sette inn en " #~ "tabulator\n" #~ " -r, --recursive sammenlikn kataloger rekursivt\n" #~ " -N, --new-file behandle manglende filer som tomme\n" #~ " -P, --unidirectional-new-file behandle manglende frste filer som " #~ "tomme\n" #~ " -s, --report-identical-files rapporter nr to filer er like\n" #~ " -x, --exclude=MN ekskluder filer som samsvarer med MN\n" #~ " -X, --exclude-from=FIL ekskluder filer som samsvarer med mnster i " #~ "FIL\n" #~ " -S, --starting-file=FIL start med FIL ved sammenlikning av kataloger\n" #~ " --horizon-lines=ANT behold ANT linjer av felles prefiks og " #~ "suffiks\n" #~ " -d, --minimal prv hardt for finne et mindre " #~ "endringssett\n" #~ " -H, --speed-large-files anta store filer og mange spredte sm " #~ "endringer\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Kontekstdiffer har forvalgt en horisont p to linjer.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE er gammel, new eller uendret. GTYPE er LTYPE eller " #~ "endret.\n" #~ "GFMT kan inneholde:\n" #~ " %< linjer fra FIL1\n" #~ " %> linjer fra FIL2\n" #~ " %= linjer felles for FIL1 og FIL2\n" #~ " %[-][BREDDE][.[PRES]]{doxX}BOKSTAV printf-liknende spesifikasjon for " #~ "BOKSTAV\n" #~ " BOKSTAVer er som flger for ny-grupper, sm bokstaver for gammel-" #~ "gruppe:\n" #~ " F frste linjenummer\n" #~ " L siste linjenummer\n" #~ " N antall linjer = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT kan inneholde:\n" #~ " %L innholdet av linje %l innholdet av linje, unntatt evt. " #~ "avsluttende linjeskift\n" #~ " %[-][BREDDE][.[PRES]]{doxX}n printf-liknende spesifikasjon for " #~ "innlinjenummer\n" #~ "Enten GFMT eller LFMT kan inneholde:\n" #~ " %% %\n" #~ " %c'C' tegnet C\n" #~ " %c'\\OOO' tegnet med den oktale verdien OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Gamle mdiff-flagg:\n" #~ "* -f, --fuzz-items=ELEM ikke flere enn ELEM ikke-samsvarende i en " #~ "klynge\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs tving utskrift til kontekstdiffer\n" #~ " -e, --echo-comments skriv kommentarer til standard feilkanal\n" #~ " -o, --old-diffs skriv ut gammeldagse differs, uansett\n" #~ " -p, --patch-format lag patch-format\n" #~ " -P samme som -p\n" #~ " -s, --strip-comments stripp vekk kommentarlinjer\n" #~ " -u, --unidiffs tving utskrift til unidiffer\n" #~ " -U samme som -p og -u\n" #~ " -=, --use-equals erstatt mellomrom med likhetstegn i unidiffer\n" #~ " --help vis denne hjelpteksten og avslutt\n" #~ " --version vis versjonsinformasjon og avslutt\n" #~ "\n" #~ "Hvis FIL ikke er oppgitt, leses fra standard innkanal.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Obligatoriske argumenter for lange flagg er obligatoriske ogs for korte\n" #~ "flagg.\n" #~ "\n" #~ " -C, --copyright vis copyright og avslutt\n" #~ " -K, --no-init-term som -t, men ingen termcap init-/term-" #~ "strenger\n" #~ " -V, --version vis programversion og avslutt\n" #~ " -1, --no-deleted skriv ikke slettede ord\n" #~ " -2, --no-inserted skriv ikke innsatte ord\n" #~ " -3, --no-common skriv ikke felles ord\n" #~ " -a, --auto-pager kaller en pager automatisk\n" #~ " -h, --help vis denne hjelpeteksten\n" #~ " -i, --ignore-case skill ikke mellom store og sm bokstaver\n" #~ " -l, --less-mode variant av printer-modus for \"less\"\n" #~ " -n, --avoid-wraps ikke utvid felter gjennom newlines\n" #~ " -p, --printer bruk overstrike som for printere\n" #~ " -s, --statistics skriv antall ord som ble slettet, satt inn, " #~ "osv.\n" #~ " -t, --terminal bruk termcap som for vanlige terminaler\n" #~ " -w, --start-delete=STRENG streng som markerer start p sletting\n" #~ " -x, --end-delete=STRENG streng som markerer slutt p sletting\n" #~ " -y, --start-insert=STRENG streng som markerer start p innsetting\n" #~ " -z, --end-insert=STRENG streng som markerer slutt p innsetting\n" wdiff-1.2.1/po/sl.po0000644000000000000000000012432312116513226011101 00000000000000# -*- mode:po; coding:utf-8; -*- Slovenian message catalogue for wdiff. # Copyright (C) 2005, 2007, 2011, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Matej Urbančič , 2005. # Primož Peterlin , 2007, 2011, 2012. # $Id: wdiff-1.2.0-b1.sl.po,v 1.2 2012/05/29 19:28:58 peterlin Exp $ # msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-29 21:28+0200\n" "Last-Translator: Primoz PETERLIN \n" "Language-Team: Slovenian \n" "Language: sl\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 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (za regularni izraz »%s«)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "standardni vhod je lahko samo ena datoteka" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "imeniki niso podprti" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Berem %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d predmetov\n" msgstr[1] ", %d predmet\n" msgstr[2] ", %d predmeta\n" msgstr[3] ", %d predmeti\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Povzetek branja:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d datotek," msgstr[1] ", %d datoteka," msgstr[2] ", %d datoteki," msgstr[3] ", %d datoteke," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d predmetov\n" msgstr[1] " %d predmet\n" msgstr[2] " %d predmeta\n" msgstr[3] " %d predmeti\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Urejanje" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", razvrščanje" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", končano\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Urejanje članov" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Povzetek dela:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d skupin" msgstr[1] " %d skupina" msgstr[2] " %d skupini" msgstr[3] " %d skupine" #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d članov\n" msgstr[1] ", %d član\n" msgstr[2] ", %d člana\n" msgstr[3] ", %d člani\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d članov," msgstr[1] " %d član," msgstr[2] " %d člana," msgstr[3] " %d člani," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d prekrivanj\n" msgstr[1] " %d prekrivanje\n" msgstr[2] " %d prekrivanji\n" msgstr[3] " %d prekrivanja\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "izberite terminal z lupinsko spremenljivko TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "podatkovna zbirka termcap ni dostopna" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "tip terminala »%s« ni določen" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d besed" msgstr[1] "%s: %d beseda" msgstr[2] "%s: %d besedi" msgstr[3] "%s: %d besede" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% skupnih" msgstr[1] " %d %.0f%% skupnih" msgstr[2] " %d %.0f%% skupnih" msgstr[3] " %d %.0f%% skupnih" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% izbrisanih" msgstr[1] " %d %.0f%% izbrisanih" msgstr[2] " %d %.0f%% izbrisanih" msgstr[3] " %d %.0f%% izbrisanih" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% spremenjenih" msgstr[1] " %d %.0f%% spremenjenih" msgstr[2] " %d %.0f%% spremenjenih" msgstr[3] " %d %.0f%% spremenjenih" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% vrinjenih" msgstr[1] " %d %.0f%% vrinjenih" msgstr[2] " %d %.0f%% vrinjenih" msgstr[3] " %d %.0f%% vrinjenih" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Poskusite »%s --help« za več informacij.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Preišče več datotek in išče podobna zaporedja. Na osnovi primerjave\n" "izdela mogočo podrobno listo razlik in podobnosti.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Uporaba: %s [IZBIRA]... [DATOTEKA]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Načini delovanja:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (brez učinka)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose z izpisom statistike na stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help izpiši ta navodila in zaključi\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version izpiši izdajo programa in zaključi\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Oblikovanje izpisa:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab izpiši TAB namesto začetnega presledka\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate izhod paginiraj s programom »pr«\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=NIZ] zabeleži drug uporabniški NIZ \n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links med zaznamki podaj informacije o datoteki in " "vrstici\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs v izhodu razširi tabulatorje v presledke\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Odpravljanje napak:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging izpiši veliko podrobnosti o izvajanju\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Možnosti besednega načina:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted brez izpisa izbrisanih besed\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted brez izpisa vstavljenih besed\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common brez izpisa skupnih besed\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager samodejno izvede oblikovanje strani\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variacija tiskalniškega načina »less«\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps ne razširi polj prek novih vrstic\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer poudarki z dvojnim udarcem za tiskalnik\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal uporabi termcap kot za terminalne zaslone\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP primerjaj predmete kot regularne izraze\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode primerjaj besede namesto vrstic\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Ko DATOTEKA ni podana ali je enaka -, beri s standardnega vhoda.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Poročila o napakah pošljite na .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ne upoštevamo izbire %s (ni podprto)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "izbire -z ni mogoče uporabiti, termcap ni na voljo" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "združevanje besed deluje samo za dve datoteki (trenutno)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "To je prost program; pogoji, pod katerimi ga lahko uporabljate, " "razmnožujete\n" "in razširjate so navedeni v izvorni kodi. Za program ni NOBENEGA JAMSTVA,\n" "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Avtor François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "izbire -123RSYZ imajo smisel samo pri dveh vnosih" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "napaka pri preusmeritvi toka" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "neuspel poskus izvajanja %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "ni mogoče najti imena za diff v vrstici %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "poskusite »%s --help« za več informacij\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Pretvori context diffs v unidiffs ali obratno.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Uporaba: %s [IZBIRA]... [DATOTEKA]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs izpiši izhod v formatu konstekualnih diff\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments izpisuj komentarje na stderr\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs v vsakem primeru izpisuj stari format diff\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format ustvari format patch\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P isto kot -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments poreži komentarje\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs izpisuj izhod v formatu unidiff\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U isto kot -p in -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals v formatu unidiff nadomesti presledke z enačaji\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Če DATOTEKA ni podana, beri s standardnega vhoda.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "ni mogoče odpreti »%s«" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "dovoljeno je le eno ime datoteke" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Avtor Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "napačena glava unified diff v vrstici %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "okvarjen unified diff v vrstici %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "kontekstni diff pogreša »staro« glavo v vrstici %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "okvarjen kontekstni diff v vrstici %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "v kontekstnem diffu manjka »nova« glava v vrstici %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "ni primernega začasnega imenika" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: vhodni program je bil ustavljen s signalom %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: izhodni program je bil ustavljen s signalom %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Ta program je prosti program; lahko ga razširjate in/ali spreminjate\n" "pod pogoji Splošne javne licence GNU (GNU GPL), izdane pri\n" "Free Software Foundation; verzija 3, ali (če je na razpolago)\n" "katerakoli poznejša različica.\n" "\n" "Ta program se razširja v upanju, da je koristen, vendar BREZ\n" "KAKRŠNEGAKOLI JAMSTVA, niti jamstev USTREZNOSTI ZA PRODAJO ali\n" "PRIMERNOSTI ZA UPORABO. Za podrobnosti si oglejte Splošno javno\n" "licenco GNU.\n" "\n" "Kopijo Splošne javne licence GNU bi morali dobiti s tem programom.\n" "Če je niste, je na voljo na spletu: .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Primerjanje besed v dveh datotekah in izpis razlik med njima.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Uporaba: %s [MOŽNOST]... DATOTEKA1 DATOTEKA2\n" " ali: %s -d [IZBIRA]... [DATOTEKA]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argumenti, navedeni kot obvezni pri dolgi obliki izbire, so obvezni tudi pri " "kratki obliki.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright izpiši avtorske pravice in zaključi\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager samodejno izvede oblikovanje strani\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input uporabi posamezni poenoteni diff za vhod\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help prikaži ta navodila in zaključi\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case pri primerjanju ne razlikuj med velikimi in " "malimi črkami\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variacija tiskalniškega načina »less«\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps ne razširi polj prek novih vrstic\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer poudarki z dvojnim udarcem za tiskalnik\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics podatki o izbrisanih, vrinjenih... besedah\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal uporabi termcap kot za terminalne zaslone\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version izpiši različico programa in zaključi\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=NIZ NIZ, ki zaznamuje začetek izbrisanega bloka\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=NIZ NIZ, ki zaznamuje konec izbrisanega bloka\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=NIZ NIZ, ki zaznamuje začetek vrinjenega bloka\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=NIZ NIZ, ki zaznamuje konec vrinjenega bloka\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "izbire -t ni mogoče uporabiti, termcap ni na voljo" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "preveč argumentov datoteke" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "manjkajoči argumenti datoteke" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Izračun razlik med besedami z interno izvedbo ukaza »mdiff -W«.\n" "Program obstaja predvsem za podporo zdaj zastarele skladnje »wdiff«.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Uporaba: %s [MOŽNOST]... DATOTEKA1 DATOTEKA2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet brez sporočila o zagonu »mdiff«\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "Program pove tudi, kako je mogoče neposredno klicati »mdiff«.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Zaganjamo »%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "«\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Povzetek branja: %d datotek, %d predmetov\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Delovni povzetek: %d skupin, %d članov\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Delovni povzetek: %d skupin, %d članov, %d prekrivanj\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Izvajalni načini:\n" #~ " -h (brez učinka)\n" #~ " -v, --verbose z izpisom statistike na stderr\n" #~ " --help prikaži to pomoč in zapusti program\n" #~ " --version izpiši verzijo programa in zapusti program\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Oblikovanje izhoda:\n" #~ " -T, --initial-tab izpiši TAB namesto začetnega presledka\n" #~ " -l, --paginate izhod paginiraj s programom »pr«\n" #~ " -S, --string[=NIZ] zabeleži drug uporabniški NIZ \n" #~ " -V, --show-links med zaznamki podaj informacije o datoteki in " #~ "vrstici\n" #~ " -t, --expand-tabs v izhodu razširi tabulatorje v presledke\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Možnosti besednega načina:\n" #~ " -1, --no-deleted brez izpisa izbrisanih besed\n" #~ " -2, --no-inserted brez izpisa vstavljenih besed\n" #~ " -3, --no-common brez izpisa skupnih besed\n" #~ " -A, --auto-pager samodejno izvede oblikovanje strani\n" #~ " -k, --less-mode variacija tiskalniškega načina »less«\n" #~ " -m, --avoid-wraps ne razširi polj prek novih vrstic\n" #~ " -o, --printer poudarki z dvojnim udarcem za tiskalnik\n" #~ " -z, --terminal uporabi termcap kot za terminalne zaslone\n" #~ " -K, --no-init-term kot -z, vendar brez nizov termcap init/" #~ "term\n" #~ " -O, --item-regexp=REGEXP primerjaj predmete kot regularne izraze\n" #~ " -W, --word-mode primerjaj besede namesto vrstic\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Primerjanje datotek:\n" #~ "* -H, --speed-large-files pohiti ob številčnih majhih spremembah\n" #~ "* -a, --text poročilo o razlikah vrstic (privzeto " #~ "besedilna\n" #~ " datoteka)\n" #~ "* -d, --minimal podrobno primerjaj manjše spremembe\n" #~ "* -q, --brief povej le, če se datoteke razlikujejo " #~ "(privzeto\n" #~ " binarno)\n" #~ "* --horizon-lines=VRSTIC obdrži število VRSTIC v splošnih pred/pri-" #~ "ponah\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Primerjanje map:\n" #~ "* -N, --new-file vzemi manjkajoče datoteke kot prazne\n" #~ "* -P, --unidirectional-new-file vzemi manjkajoče stare datoteke kot " #~ "prazne\n" #~ "* -S, --starting-file=DATOTEKA nadaljuj primerjavo imenikov z " #~ "DATOTEKO\n" #~ "* -X, --exclude-from=DATOTEKA brez datotek, ki ustrezajo vzorcu v " #~ "DATOTEKI\n" #~ "* -r, --recursive rekurzivno primerjaj tudi podimenike\n" #~ "* -s, --report-identical-files sporoči, ko sta dve datoteki enaki\n" #~ "* -x, --exclude=VZOREC brez datotek (imenikov), ki ustrezajo " #~ "VZORCU\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Prezri besedilo:\n" #~ " -B, --ignore-blank-lines prezri prazne vrstice\n" #~ "* -I, --ignore-matching-lines=REGEXP prezri vrstice, ki ustrezajo reg. " #~ "izrazu\n" #~ " -b, --ignore-space-change prezri količino praznega prostora\n" #~ " -i, --ignore-case obravnavaj male in velike črke " #~ "enako\n" #~ " -w, --ignore-all-space prezri prazne prostore\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Razvrščanje:\n" #~ " -G, --relist-files izpiši vse vhodne datoteke z opombami\n" #~ " -J, --minimum-size=ZADETEK prezri skupine brez tako veliko ZADETKOV\n" #~ " -j, --ignore-delimiters ne preštevaj predmetov, ki imajo samo " #~ "ločevala\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Podroben izhodni format:\n" #~ "* -D, --ifdef=IME izhod v obliki `#ifdef IME'\n" #~ "* --changed-group-format=FORMAT uporabi FORMAT za spremenjene " #~ "vrstice\n" #~ "* --new-group-format=FORMAT uporabi FORMAT za vnešene " #~ "vrstice\n" #~ "* --new-line-format=FORMAT uporabi FORMAT za vnešeno " #~ "vrstico\n" #~ "* --old-group-format=FORMAT uporabi FORMAT za izbrisane " #~ "vrstice\n" #~ "* --old-line-format=FORMAT uporabi FORMAT za izbrisano " #~ "vrstico\n" #~ "* --unchanged-group-format=FORMAT uporabi FORMAT za nespremenjene " #~ "vrstice\n" #~ "* --unchanged-line-format=FORMAT uporabi FORMAT za nespremenjeno " #~ "vrstico\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Skriptni formati:\n" #~ " (noben od -CDUcefnuy) izpis normalnih diferenc\n" #~ "* -e, --ed izpis veljavnega skripta »ed«\n" #~ "* -f, --forward-ed mešano med -e in -n (ni preveč uporabno)\n" #~ "* -n, --rcs izpis formata RCS (interno uporabljen v RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Kontekstni in enotni formati:\n" #~ "* -F, --show-function-line=REGEXP pokaži prejšnji konteksni vzorčni " #~ "REGEXP\n" #~ "* -p, --show-c-function pokaži C funkcijo za vsako " #~ "spremembo\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=VRSTIC kot -c, določi tudi število vrstic " #~ "konteksta\n" #~ "* -L, --label=OZNAKA uporabi od/do OZNAKE namesto imena " #~ "datoteke (2×)\n" #~ "* -U, --unified=VRSTIC kot -u, določi tudi število vrstic " #~ "konteksta\n" #~ "* -c, --context izpiši kontekstne razlike (privzeto 3 \n" #~ " vrstice konteksta)\n" #~ "* -u, --unified izpiši poenotene razlike (privzeto 3 \n" #~ " vrstice konteksta)\n" #~ "* -VRSTIC (opuščeno; nastavi število vrstic " #~ "konteksta)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Primerjalni format:\n" #~ "* -W, --width=STOLPCI uporabi širino STOLPCEV\n" #~ "* -y, --side-by-side uporabi primerjalni format izpisa\n" #~ "* --left-column pri skupnih izpiši samo vrstico levega " #~ "stolpca\n" #~ "* --sdiff-merge-assist (interno uporablja `sdiff')\n" #~ "* --suppress-common-lines ne izpiši skupnih vrstic\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT sestavljajo posamezni znaki, razen v naslednjih primerih:\n" #~ " %%%% znak za odstotek %%\n" #~ " %%c'C' navedeni znak C\n" #~ " %%c'\\\\O' znak z vrednostjo O, od 1 do 3 osmiške števke\n" #~ " %%(A=B?T:E) če A = B, potem T, sicer E; A in B sta števili ali \n" #~ " SPREMENLJIVKI, T in E sta FORMAT\n" #~ " %%FN uporabi določilo D za izpis vrednosti spremenljivke N\n" #~ " %%< [skupina] stara, vsaka vrstica z izbiro --old-line-" #~ "format\n" #~ " %%> [skupina] nova, vsaka vrstica z izbiro --old-line-format\n" #~ " %%= [skupina] nespremenjena, vsaka vrstica z izbiro --old-" #~ "line-format\n" #~ " %%l [vrstica] brez morebitnega znaka za konec vrstice na " #~ "koncu\n" #~ " %%L [vrstica] z morebitnim znakom za konec vrstice na koncu\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF je [-][W[.D]]{doxX} kot v C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "SPREMENLJIVKA je {eflmn} za staro skupino ali {EFLMN} za novo skupino\n" #~ " {eE} številka vrstice tik pred skupino\n" #~ " {fF} prva številka vrstice v skupini\n" #~ " {lL} zadnja številka vrstice v skupini\n" #~ " {mM} številka vrstice tik za skupino\n" #~ " {nN} število vrstic v skupini\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Standardne diff možnosti:\n" #~ " -i, --ignore-case privzemi velike in male črke kot enake\n" #~ " -w, --ignore-all-space prezri presledke\n" #~ " -b, --ignore-space-change prezri spremembe v številu presledkov\n" #~ " -B, --ignore-blank-lines prezri spremembe, ko so vrstice prazne\n" #~ " -I, --ignore-matching-lines=RE prezri vrstice, ki sovpadajo s " #~ "kriterijem RE\n" #~ " -a, --text obravnavaj vse datoteke kot tekstne\n" #~ " -c, --context[=ŠTEVILO] izpis regular context diffs,\n" #~ " s spremembo ŠTEVILA vrstic konteksta\n" #~ " -u, --unified[=ŠTEVILO] izpis unified context diffs ali unidiffs,\n" #~ " s spremembo ŠTEVILA vrstic konteksta\n" #~ " -C, --context=NUM izpis NUM vrstic kopiranega konteksta\n" #~ " -U, --unified=NUM izpis NUM vrstic unified konteksta\n" #~ " -L, --label=NASLOV uporabi NASLOV namesto imena datoteke\n" #~ " -p, --show-c-function pokaži v kateri C funkciji je sprememba\n" #~ " -F, --show-function-line=RE pokaži zadnji vzorec primerjave RE\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Privzeto imajo context diffs horizon dveh vrstic.\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Stare mdiff možnosti:\n" #~ "* -f, --fuzz-items=PREDMET nič več kot toliko PREDMETOV, ki se ne " #~ "ujemajo v skupini\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs prisilen izhod na context diffs\n" #~ " -e, --echo-comments echo pojasnila na standardne napake\n" #~ " -o, --old-diffs izhod stari-stil diffs, neglede na vse\n" #~ " -p, --patch-format ustvari patch format\n" #~ " -P enako kot -p\n" #~ " -s, --strip-comments izlušči vrstice pojasnil\n" #~ " -u, --unidiffs prisilen izhod na unidiffs\n" #~ " -U enako kot -p in -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Obvezni argumenti za daljše zastavice so obvezni tudi za krajše.\n" #~ "\n" #~ " -C, --copyright izpišii avtorske pravice in zaključi\n" #~ " -K, --no-init-term kot -t, brez termcap init/term niti\n" #~ " -V, --version izpiši verzijo programa in zaključi\n" #~ " -1, --no-deleted ustavi izpis izbrisanih besed\n" #~ " -2, --no-inserted ustavi izpis dodanih besed\n" #~ " -3, --no-common ustavi izpis splošnih besed\n" #~ " -a, --auto-pager avtomatično pokliče zaznamovalca\n" #~ " -h, --help izpiše to pomoč\n" #~ " -i, --ignore-case zavij velikost črk med primerjavo\n" #~ " -l, --less-mode možnost krajšega izpisa za \"less\"\n" #~ " -n, --avoid-wraps ne razširi polj preko novih linij\n" #~ " -p, --printer napni kot za tiskalnik\n" #~ " -s, --statistics izpiši koliko besed je izbrisanih, " #~ "dodanih...\n" #~ " -t, --terminal uporabi termcap kot terminalski način\n" #~ " -w, --start-delete=STRING nit, ki določa začetek izbrisane regije\n" #~ " -x, --end-delete=STRING nit, ki določa konec izbrisane regije\n" #~ " -y, --start-insert=STRING nit, ki določa začetek vnešene regije\n" #~ " -z, --end-insert=STRING nit, ki določa konec vnešene\n" wdiff-1.2.1/po/en@boldquot.po0000644000000000000000000005235612116513225012744 00000000000000# English translations for GNU wdiff package. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the GNU wdiff package. # Automatically generated, 2013. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2013-03-09 02:55+0100\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en@boldquot\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" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (for regexp ‘%s’)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "only one file may be standard input" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "directories not supported" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Reading %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d item\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Read summary:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d file," msgstr[1] " %d files," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d item\n" msgstr[1] " %d items\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorting" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", clustering" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", done\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorting members" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Work summary:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d cluster," msgstr[1] " %d clusters," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d member\n" msgstr[1] " %d members\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d member," msgstr[1] " %d members," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d overlap\n" msgstr[1] " %d overlaps\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "select a terminal through the TERM environment variable" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "could not access the termcap data base" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "terminal type ‘%s’ is not defined" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d word" msgstr[1] "%s: %d words" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% common" msgstr[1] " %d %.0f%% common" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% deleted" msgstr[1] " %d %.0f%% deleted" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% changed" msgstr[1] " %d %.0f%% changed" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% inserted" msgstr[1] " %d %.0f%% inserted" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try ‘%s --help’ for more information.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Usage: %s [OPTION]... [FILE]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Operation modes:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignored)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose report a few statistics on stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help display this help then exit\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version display program version then exit\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatting output:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab produce TAB instead of initial space\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate paginate output through ‘pr’\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] take note of another user STRING\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links give file and line references in annotations\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expand tabs to spaces in the output\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging output many details about what is going on\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Word mode options:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted inhibit output of deleted words\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted inhibit output of inserted words\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common inhibit output of common words\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automatically calls a pager\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variation of printer mode for “less”\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps do not extend fields through newlines\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer overstrike as for printers\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal use termcap as for terminal displays\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compare words instead of lines\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "With no FILE, or when FILE is -, read standard input.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Report bugs to .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ignoring option %s (not implemented)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "cannot use -z, termcap not available" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "word merging for two files only (so far)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Written by Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "options -123RSYZ meaningful only when two inputs" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "error redirecting stream" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "failed to execute %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "could not find a name for the diff at line %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "try ‘%s --help’ for more information\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transforms context diffs into unidiffs, or vice-versa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Usage: %s [OPTION]... [FILE]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs force output to context diffs\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments echo comments to standard error\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs output old-style diffs, no matter what\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format generate patch format\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P same as -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments strip comment lines\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs force output to unidiffs\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U same as -p and -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals replace spaces by equal signs in unidiffs\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "If FILE is not specified, read standard input.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "unable to open ‘%s’" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "only one filename allowed" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Written by Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "invalid unified diff header at line %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "malformed unified diff at line %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "context diff missing ‘old’ header at line %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "malformed context diff at line %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "context diff missing ‘new’ header at line %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "no suitable temporary directory exists" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: input program killed by signal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: output program killed by signal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Compares words in two files and report differences.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Mandatory arguments to long options are mandatory for short options too.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright display copyright then exit\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automatically calls a pager\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input use single unified diff as input\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help display this help then exit\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case fold character case while comparing\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode variation of printer mode for “less”\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps do not extend fields through newlines\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike as for printers\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics say how many words deleted, inserted etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal use termcap as for terminal displays\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version display program version then exit\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING string to mark beginning of delete region\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=STRING string to mark end of delete region\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING string to mark beginning of insert region\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=STRING string to mark end of insert region\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "cannot use -t, termcap not available" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "too many file arguments" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "missing file arguments" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Compute word differences by internally launching ‘mdiff -W’.\n" "This program exists mainly to support the now oldish ‘wdiff’ syntax.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Usage: %s [OPTION]... FILE1 FILE2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet inhibit the ‘mdiff’ call message\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "This program also tells how ‘mdiff’ could have been called directly.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Launching `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" wdiff-1.2.1/po/remove-potcdate.sin0000644000000000000000000000066011744500044013731 00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } wdiff-1.2.1/po/sl.gmo0000644000000000000000000004024012116513226011240 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""\$J$89%>r%%%%%3&,E&:r&>&c&OP'['W';T(:(;(7)J?)A)C)E*%V*;|*C*+*O(+=x+A+D+F=,6,(,?,X$-G}-G-= .@K.@.D.E/.X/E/@/H0,W0D0G0918K1F1J1G2I^2F2G2.73:f37333/ 4B=4464243 5=5;A5}5 5355\596J67S6666A797,9.(:TW:#:&:A:9;3H;3|;7;6;%<,E<r<<<%<+<&=#9=]== >*#> N>1o>/> >>+?:?7T?F??9f@_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-29 21:28+0200 Last-Translator: Primoz PETERLIN Language-Team: Slovenian Language: sl MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1997, 1998, 1999 Free Software Foundation, Inc. Odpravljanje napak: Oblikovanje izpisa: Načini delovanja: Možnosti besednega načina: Avtor François Pinard . Avtor Wayne Davison . --help izpiši ta navodila in zaključi --version izpiši izdajo programa in zaključi %d %.0f%% spremenjenih %d %.0f%% spremenjenih %d %.0f%% spremenjenih %d %.0f%% spremenjenih %d %.0f%% skupnih %d %.0f%% skupnih %d %.0f%% skupnih %d %.0f%% skupnih %d %.0f%% izbrisanih %d %.0f%% izbrisanih %d %.0f%% izbrisanih %d %.0f%% izbrisanih %d %.0f%% vrinjenih %d %.0f%% vrinjenih %d %.0f%% vrinjenih %d %.0f%% vrinjenih -0, --debugging izpiši veliko podrobnosti o izvajanju -1, --no-deleted brez izpisa izbrisanih besed -2, --no-inserted brez izpisa vstavljenih besed -3, --no-common brez izpisa skupnih besed -=, --use-equals v formatu unidiff nadomesti presledke z enačaji -A, --auto-pager samodejno izvede oblikovanje strani -C, --copyright izpiši avtorske pravice in zaključi -O, --item-regexp=REGEXP primerjaj predmete kot regularne izraze -P isto kot -p -S, --string[=NIZ] zabeleži drug uporabniški NIZ -T, --initial-tab izpiši TAB namesto začetnega presledka -U isto kot -p in -u -V, --show-links med zaznamki podaj informacije o datoteki in vrstici -W, --word-mode primerjaj besede namesto vrstic -a, --auto-pager samodejno izvede oblikovanje strani -c, --context-diffs izpiši izhod v formatu konstekualnih diff -d, --diff-input uporabi posamezni poenoteni diff za vhod -e, --echo-comments izpisuj komentarje na stderr -h (brez učinka) -h, --help prikaži ta navodila in zaključi -i, --ignore-case pri primerjanju ne razlikuj med velikimi in malimi črkami -k, --less-mode variacija tiskalniškega načina »less« -k, --less-mode variacija tiskalniškega načina »less« -l, --paginate izhod paginiraj s programom »pr« -m, --avoid-wraps ne razširi polj prek novih vrstic -n, --avoid-wraps ne razširi polj prek novih vrstic -o, --old-diffs v vsakem primeru izpisuj stari format diff -o, --printer poudarki z dvojnim udarcem za tiskalnik -p, --patch-format ustvari format patch -p, --printer poudarki z dvojnim udarcem za tiskalnik -q, --quiet brez sporočila o zagonu »mdiff« -s, --statistics podatki o izbrisanih, vrinjenih... besedah -s, --strip-comments poreži komentarje -t, --expand-tabs v izhodu razširi tabulatorje v presledke -z, --terminal uporabi termcap kot za terminalne zaslone -u, --unidiffs izpisuj izhod v formatu unidiff -v, --verbose z izpisom statistike na stderr -v, --version izpiši različico programa in zaključi -w, --start-delete=NIZ NIZ, ki zaznamuje začetek izbrisanega bloka -x, --end-delete=NIZ NIZ, ki zaznamuje konec izbrisanega bloka -y, --start-insert=NIZ NIZ, ki zaznamuje začetek vrinjenega bloka -z, --end-insert=NIZ NIZ, ki zaznamuje konec vrinjenega bloka -z, --terminal uporabi termcap kot za terminalne zaslone %d skupin %d skupina %d skupini %d skupine, %d datotek,, %d datoteka,, %d datoteki,, %d datoteke, %d predmetov %d predmet %d predmeta %d predmeti , %d članov , %d član , %d člana , %d člani %d članov, %d član, %d člana, %d člani, %d prekrivanj %d prekrivanje %d prekrivanji %d prekrivanja %s (za regularni izraz »%s«)%s: %d besed%s: %d beseda%s: %d besedi%s: %d besede%s: vhodni program je bil ustavljen s signalom %d %s: izhodni program je bil ustavljen s signalom %d « , %d predmetov , %d predmet , %d predmeta , %d predmeti , razvrščanje, končano Če DATOTEKA ni podana, beri s standardnega vhoda. Zaganjamo »%sArgumenti, navedeni kot obvezni pri dolgi obliki izbire, so obvezni tudi pri kratki obliki. Povzetek branja:Berem %sPoročila o napakah pošljite na . UrejanjeUrejanje članovTo je prost program; pogoji, pod katerimi ga lahko uporabljate, razmnožujete in razširjate so navedeni v izvorni kodi. Za program ni NOBENEGA JAMSTVA, niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO. Program pove tudi, kako je mogoče neposredno klicati »mdiff«. Ta program je prosti program; lahko ga razširjate in/ali spreminjate pod pogoji Splošne javne licence GNU (GNU GPL), izdane pri Free Software Foundation; verzija 3, ali (če je na razpolago) katerakoli poznejša različica. Ta program se razširja v upanju, da je koristen, vendar BREZ KAKRŠNEGAKOLI JAMSTVA, niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO. Za podrobnosti si oglejte Splošno javno licenco GNU. Kopijo Splošne javne licence GNU bi morali dobiti s tem programom. Če je niste, je na voljo na spletu: . Poskusite »%s --help« za več informacij. Uporaba: %s [MOŽNOST]... DATOTEKA1 DATOTEKA2 Uporaba: %s [MOŽNOST]... DATOTEKA1 DATOTEKA2 ali: %s -d [IZBIRA]... [DATOTEKA] Uporaba: %s [IZBIRA]... [DATOTEKA] Uporaba: %s [IZBIRA]... [DATOTEKA]... Ko DATOTEKA ni podana ali je enaka -, beri s standardnega vhoda. Povzetek dela:izbire -t ni mogoče uporabiti, termcap ni na voljoizbire -z ni mogoče uporabiti, termcap ni na voljov kontekstnem diffu manjka »nova« glava v vrstici %ldkontekstni diff pogreša »staro« glavo v vrstici %ldpodatkovna zbirka termcap ni dostopnani mogoče najti imena za diff v vrstici %ldimeniki niso podprtinapaka pri preusmeritvi tokaneuspel poskus izvajanja %sne upoštevamo izbire %s (ni podprto)napačena glava unified diff v vrstici %ldokvarjen kontekstni diff v vrstici %ldokvarjen unified diff v vrstici %ldmdiff - Preišče več datotek in išče podobna zaporedja. Na osnovi primerjave izdela mogočo podrobno listo razlik in podobnosti. manjkajoči argumenti datotekeni primernega začasnega imenikastandardni vhod je lahko samo ena datotekadovoljeno je le eno ime datotekeizbire -123RSYZ imajo smisel samo pri dveh vnosihizberite terminal z lupinsko spremenljivko TERMtip terminala »%s« ni določenpreveč argumentov datotekeposkusite »%s --help« za več informacij ni mogoče odpreti »%s«unify - Pretvori context diffs v unidiffs ali obratno. wdiff - Primerjanje besed v dveh datotekah in izpis razlik med njima. wdiff - Izračun razlik med besedami z interno izvedbo ukaza »mdiff -W«. Program obstaja predvsem za podporo zdaj zastarele skladnje »wdiff«. združevanje besed deluje samo za dve datoteki (trenutno)wdiff-1.2.1/po/tr.po0000644000000000000000000014260212116513226011110 00000000000000# translation of wdiff-0.5g.tr.po to Turkish # Turkish translation for wdiff. # Copyright (C) 2001, 2005 Free Software Foundation, Inc. # Deniz Akkus Kanca , 2001. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 21:02+0100\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (`%s' düzenli ifadesi için)" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Yalnızca bir dosya standart girdi olabilir." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Dizinler desteklenmiyor" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "%s okunuyor" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d öğe\n" msgstr[1] ", %d öğe\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d öğe\n" msgstr[1] ", %d öğe\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d öğe\n" msgstr[1] ", %d öğe\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sıralanıyor" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", topaklanıyor" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", bitti\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Üyeler sıralanıyor" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", topaklanıyor" msgstr[1] ", topaklanıyor" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d öğe\n" msgstr[1] ", %d öğe\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "TERM çevre değişkeni aracılığı ile bir terminal türü seçin." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Termcap veritabanına erişilemedi." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Terminal türü `%s' tanımlı değil." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d sözcük" msgstr[1] "%s: %d sözcük" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% ortak" msgstr[1] " %d %d%% ortak" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% silindi" msgstr[1] " %d %d%% silindi" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% değişti" msgstr[1] " %d %d%% değişti" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% yerleştirildi" msgstr[1] " %d %d%% yerleştirildi" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Daha fazla bilgi için `%s --help' yazın.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - birden fazla dosyayı inceler, benzeşen bölümleri arar, benzerlikler\n" "ve farklar hakkında detaylı rapor üretir.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Kullanım: %s [SEÇENEK]... [DOSYA]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Kullanım kipleri:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (yoksayılır)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose standart hataya bazı istatistikleri yazdırır\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help bu yardımı gösterir ve çıkar\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version sürüm bilgisini gösterir ve çıkar\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" # ? " -T, --initial-tab başa bir sekme ekleyerek sekmeleri hizalar" # ? " -T, --initial-tab Başlangıçta boşluk yerine sekme kullanır" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" # ? " -l, --paginate çıktıyı `pr' komutundan geçirerek sayfalar" # ? " -l, --paginate `pr' komutu ile çıktıyı sayfalar" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" " -S, --string[=DİZGE] başka bir kullanıcı DİZGEsini değerlendirir\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links açıklamalarda dosya ve satır referansları verir\n" # ? " -t, --expand-tabs çıktıda sekmeleri boşluğa dönüştürür" # ? " -t, --expand-tabs çıktıda sekmeler yerine boşluklar kullanır" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Hata ayıklanması:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging ne yapıldığı hakkında detaylı bilgi gösterir\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" # ? " -1, --no-deleted silinen sözcükleri göstermez" # ? " -1, --no-deleted silinmiş sözcükleri göstermez" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr "" # ? " -2, --no-inserted yerleştirilen sözcükleri göstermez" # ? " -2, --no-inserted yerleştirilmiş sözcükleri göstermez" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common ortak sözcükleri göstermez\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager bir sayfalama programı kullanır\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode \"less\" sayfalaması kipi\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps alanları satır sonlarını geçerek uzatmaz\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr "" " -o, --printer yazıcıya bastırmaya uygun çıktı üretir\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal ekranda göstermeye uygun çıktı üretir\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=DÜZENLİFADE DÜZENLİFADE'de belirtilen şekilde öğeleri\n" " karşılaştırır\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr "" " -W, --word-mode satır yerine sözcükleri karşılaştırır\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "DOSYA verilmemişse veya DOSYA - ise, standart girdi okunur.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "" "Yazılım hatalarını adresine,\n" "çeviri hatalarını adresine bildirin.\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "-z kullanılamaz, termcap yok. " #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "(şu ana kadar) yalnız iki dosyayı sözcük bazında birleştiriyor" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Telif Hakkı (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Bu bir serbest yazılımdır; kopyalama koşulları için kaynak koduna bakınız.\n" "Hiçbir garantisi yoktur; hatta SATILABİLİRLİĞİ veya HERHANGİ BİR AMACA\n" "UYGUNLUĞU için bile garanti verilmez.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "François Pinard tarafından yazıldı.\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "-123RSYZ seçenekleri yalnız iki girdi olduğu zaman anlamlıdır." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "%ld satırında diff için bir isim bulunamadı" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Daha fazla bilgi için `%s --help' yazın.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify - context biçemini unidiff biçemine dönüştürür (veya aksini yapar).\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Kullanım: %s [SEÇENEK]... [DOSYA]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs `context diff' biçeminde çıktı üretilir\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments yorumlar/açıklamalar gösterilir\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs ne olursa olsun, eski biçemde `diff' çıktısı " "üretilir\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format `patch' biçeminde çıktı üretilir\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P -p ile aynı\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments yorum/açıklama satırlarını göstermez\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs `unidiff' biçeminde çıktı üretilir\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U -p ve -u ile aynı\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals `unidiff' çıktılarında eşit işaretleri yerine " "boşluk\n" " kullanılır\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "DOSYA belirtilmezse standart girdi okunur.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "`%s' açılamadı" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Tek dosya adına izin var." #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Telif Hakkı (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" " Wayne Davison tarafından yazılmıştır.\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "%ld satırında geçersiz unified diff başlığı" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "%ld satırında hatalı unified diff başlığı" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "%ld satırında context diff `old' başlığı eksik" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "%ld satırında hatalı context diff" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "%ld satırında context diff `new' başlığı eksik" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Bu program bir serbest yazılımdır; Free Software Foundation tarafından\n" "yayınlanan GNU Genel Kamu Lisansı (sürüm 2, ya da isteğinize bağlı olarak\n" "sonraki sürümleri) koşulları altında değişiklik yapabilir ve/veya yeniden\n" "dağıtabilirsiniz.\n" "\n" "Bu program faydalı olabileceği umularak dağıtılmaktadır, fakat hiçbir\n" "GARANTİSİ YOKTUR; hatta SATILABİLİRLİĞİ veya HERHANGİ BİR AMACA UYGUNLUĞU\n" "için bile garanti verilmez. Daha fazla bilgi için GNU Genel Kamu Lisansına\n" "bakınız.\n" "\n" "GNU kamu Lisansının bir kopyasını bu program ile almış olacaksınız.\n" "Eğer yoksa, Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n" "Boston, MA 02111-1307, USA adresine yazınız.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - iki dosyadaki sözcükleri karşılaştırır ve farklarını gösterir.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Kullanım: %s [SEÇENEK]... DOSYA1 DOSYA2\n" " %s -d [SEÇENEK]... [DOSYA]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr "" " -C, --copyright telif hakkı bilgisini gösterir ve çıkar\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager bir sayfalama programı kullanır\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help bu yardımı gösterir ve çıkar\n" # ? " -i, --ignore-case büyük/küçük harf farklarını yoksayar" # ? " -i, --ignore-case büyük ve küçük harf farkını yoksayar" # ? " -i, --ignore-case karşılaştırma yaparken büyük/küçük harf farkı gözetmez" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode \"less\" sayfalaması kipi\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps alanları satır sonlarını geçerek uzatmaz\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr "" " -p, --printer yazıcıya bastırmaya uygun çıktı üretir\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics kaç sözcük silinmiş, yerleştirilmiş\n" " vs. gösterir\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal ekranda göstermeye uygun çıktı üretir\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version sürüm bilgisini gösterir ve çıkar\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=DİZGE silinecek bölgenin başlangıcını belirten " "DİZGE\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRING silinecek bölgenin sonunu belirten DİZGE\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING yerleştirilecek bölgenin başını belirten " "DİZGE\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING yerleştirilecek bölgenin sonunu belirten " "DİZGE\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "-t kullanılamıyor, termcap kullanımdışı" #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Telif Hakkı (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Dosya argümanları eksik" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Dosya argümanları eksik" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Telif Hakkı (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Kullanım: %s [SEÇENEK]... DOSYA1 DOSYA2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "%s okunuyor" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Okuma özeti: %d dosya, %d öğe\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "İş özeti: %d topak, %d üye\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "İş özeti: %d topak, %d üye, %d örtüşme\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term -z gibi fakat termcap değişkenini almaz\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Kullanım kipleri:\n" #~ " -h (yoksayılır)\n" #~ " -v, --verbose standart hataya bazı istatistikleri yazdırır\n" #~ " --help bu yardımı gösterir ve çıkar\n" #~ " --version sürüm bilgisini gösterir ve çıkar\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Çıktı biçemlenmesi:\n" #~ " -T, --initial-tab Başlangıçta boşluk yerine sekme kullanır\n" #~ " -l, --paginate `pr' komutu ile çıktıyı sayfalar\n" #~ " -S, --string[=DİZGE] başka bir kullanıcı DİZGEsini değerlendirir\n" #~ " -V, --show-links açıklamalarda dosya ve satır referansları " #~ "verir\n" #~ " -t, --expand-tabs çıktıda sekmeler yerine boşluklar kullanır\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Sözcük kipi seçenekleri:\n" #~ " -1, --no-deleted silinen sözcükleri göstermez\n" #~ " -2, --no-inserted yerleştirilen sözcükleri göstermez\n" #~ " -3, --no-common ortak sözcükleri göstermez\n" #~ " -A, --auto-pager bir sayfalama programı kullanır\n" #~ " -k, --less-mode \"less\" sayfalaması kipi\n" #~ " -m, --avoid-wraps alanları satır sonlarını geçerek " #~ "uzatmaz\n" #~ " -o, --printer yazıcıya bastırmaya uygun çıktı üretir\n" #~ " -z, --terminal ekranda göstermeye uygun çıktı üretir\n" #~ " -K, --no-init-term -z gibi fakat termcap değişkenini almaz\n" #~ " -O, --item-regexp=DÜZENLİFADE DÜZENLİFADE'de belirtilen şekilde " #~ "öğeleri\n" #~ " karşılaştırır\n" #~ " -W, --word-mode satır yerine sözcükleri karşılaştırır\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Dosya karşılaştırılması:\n" #~ "* -H, --speed-large-files çok sayıda küçük farklar olduğu zaman\n" #~ " daha hızlı sonuç alır\n" #~ "* -a, --text farkları satır bazında bildirir (metin\n" #~ " dosyaları için öntanımlı)\n" #~ "* -d, --minimal daha küçük bir fark kümesi oluşturur\n" #~ "* -q, --brief yalnızca dosyaların birbirinden farklı " #~ "olup\n" #~ " olmadığını bildirir (ikilik dosyalar için " #~ "öntanımlı)\n" #~ "* --horizon-lines=SATIR ortak ilkek/soneklerde SATIR sayıda satır " #~ "tutar\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Dizin karşılaştırması:\n" #~ "* -N, --new-file olmayan dosyaları boş farzeder\n" #~ "* -P, --unidirectional-new-file olmayan eski dosyaları boş farzeder\n" #~ "* -S, --starting-file=DOSYA dizin karşılaştırmasına DOSYA'dan devam " #~ "eder\n" #~ "* -X, --exclude-from=DOSYA DOSYA'da bulunan kalıplara uyan " #~ "DOSYALARI yoksayar\n" #~ "* -r, --recursive çevrimsel olarak alt dizinleri " #~ "karşılaştırır\n" #~ "* -s, --report-identical-files iki dosya birbirinin aynı ise bildirir\n" #~ "* -x, --exclude=KALIP KALIP'a uyan dosyaları (dizinleri) " #~ "yoksayar\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Metin yoksayılması:\n" #~ " -B, --ignore-blank-lines boş satırları yoksayar\n" #~ "* -I, --ignore-matching-lines=DÜZENLİFADE DÜZENLİFADE'ye uyan satırları " #~ "yoksayar\n" #~ " -b, --ignore-space-change boşluk sayısı farklarını " #~ "yoksayar\n" #~ " -i, --ignore-case büyük/küçük harf farklarını " #~ "yoksayar\n" #~ " -w, --ignore-all-space bütün boşlukları yoksayar\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Topaklama:\n" #~ " -G, --relist-files bütün girdi dosyalarını açıklama ile gösterir\n" #~ " -J, --minimum-size=ÖĞE ÖĞE sayısından az öğesi olan topakları " #~ "yoksayar\n" #~ " -j, --ignore-delimiters yalnız ayırıcı imi olan öğeleri saymaz\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Detaylı çıktı biçemleri:\n" #~ "* -D, --ifdef=İSİM `#ifdef İSİM' biçeminde çıktılar\n" #~ "* --changed-group-format=BİÇEM değiştirilen satırlar için BİÇEM'i " #~ "kullanır\n" #~ "* --new-group-format=BİÇEM yerleştirilen satırlar için BİÇEM'i " #~ "kullanır\n" #~ "* --new-line-format=BİÇEM yerleştirilen satır için BİÇEM'i " #~ "kullanır\n" #~ "* --old-group-format=BİÇEM silinen satırlar için BİÇEM'i " #~ "kullanır\n" #~ "* --old-line-format=BİÇEM silinen satır için BİÇEM'i " #~ "kullanır\n" #~ "* --unchanged-group-format=BİÇEM değişmeyen satırlar için BİÇEM'i " #~ "kullanır\n" #~ "* --unchanged-line-format=BİÇEM değişmeyen satır için BİÇEM'i " #~ "kullanır\n" #~ "* --line-format=BİÇEM bütün satırlar için BİÇEM'i " #~ "kullanır\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Betik benzeri biçemler:\n" #~ " (-CDUcefnuy seçenekleri kullanılmaz ise) normal diff çıktısı üretir\n" #~ "* -e, --ed `ed' betiği üretir\n" #~ "* -f, --forward-ed -e ile -n arasında bir çıktı " #~ "üretir (pek kullanılmaz)\n" #~ "* -n, --rcs RCS biçeminde çıktı üretir " #~ "(RCS tarafından kullanılır)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Context ve unidiff biçemleri:\n" #~ "* -F, --show-function-line=DÜZENLİFADE DÜZENLİFADE'ye uyan bir önceki " #~ "bağlamı gösterir\n" #~ "* -p, --show-c-function her fark için hangi C fonksiyonu " #~ "olduğunu gösterir\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=SATIR -c gibi, SATIR sayıda bağlam satırı " #~ "gösterir\n" #~ "* -L, --label=ETİKET dosya adı yerine başlangıç/son ETİKET'ini " #~ "kullanır (iki defa)\n" #~ "* -U, --unified=SATIR -u gibi, SATIR sayıda bağlam satırı " #~ "gösterir\n" #~ "* -c, --context farkları context biçeminde gösterir " #~ "(öntanımlı 3 bağlam satırı)\n" #~ "* -u, --unified farkları unidiff biçeminden gösterir " #~ "(öntanımlı 3 bağlam satırı)\n" #~ "* -SATIR (yürürlükten kalkmış: bağlam satır sayısını " #~ "belirler)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Yanyana biçemi:\n" #~ "* -W, --width=SÜTUN Sütun genişliğini belirler\n" #~ "* -y, --side-by-side yanyana çıktı biçemini kullanır\n" #~ "* --left-column aynı olduğu zaman yalnızca sol sütunu " #~ "gösterir\n" #~ "* --sdiff-merge-assist (`sdiff' içerisinde kullanılır)\n" #~ "* --suppress-common-lines ortak satırları göstermez\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "BİÇEM tek başına karakterlerden ve aşağıdaki biçemlerden oluşur:\n" #~ " %%%% tek bir %%\n" #~ " %%c'C' tırnak içerisinde C karakteri\n" #~ " %%c'\\O' 1'den üçe sekizlik haneye sahip sıfır değerinde karakter\n" #~ " %%(A=B?T:E) eğer A, B'ye eşitse T, değilse E; A, B sayı veya " #~ "DEĞİŞKEN; T, E BİÇEM\n" #~ " %%FN DEĞİŞKEN N değerini yazdırmak için F biçemini kullanır\n" #~ " %%< [gruplar için] eski, her satırı --old-line-format " #~ "biçeminde gösterir\n" #~ " %%> [gruplar için] yeni, her satırı --new-line-format " #~ "biçeminde gösterir\n" #~ " %%= [gruplar için] değişmemiş, her satırı --unchanged-line-" #~ "format\n" #~ " biçeminde gösterir\n" #~ " %%l [tek satır için] satır sonunda yenisatır karakterini " #~ "göstermez\n" #~ " %%L [tek satır için] satır sonunda (eğer varsa) yenisatır " #~ "karakterini gösterir\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "BELİRTEÇ C printf'de olduğu gibi [-][W[.D]]{doxX} değerleridir\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "DEĞİŞKEN eski grubu için {eflmn}, yeni grubu için {EFLMN} olabilir\n" #~ " {eE} gruptan önce satır numarası\n" #~ " {fF} grubun ilk satır numarası\n" #~ " {lL} grubun son satır numarası\n" #~ " {mM} gruptan sonra ilk satır numarası\n" #~ " {nN} gruptaki satır sayısı\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Standart diff seçenekleri:\n" #~ " -i, --ignore-case büyük ve küçük harf farkını yoksayar\n" #~ " -w, --ignore-all-space bütün boşlukları yoksayar\n" #~ " -b, --ignore-space-change boşluk sayılarında farkları yoksayar\n" #~ " -B, --ignore-blank-lines boş satır farklarını yoksayar\n" #~ " -I, --ignore-matching-lines=RE RE'ye uyan satır değişiklik farklarını " #~ "yoksayar\n" #~ " -a, --text bütün dosyaları metin kabul eder\n" #~ " -c, --context[=SAYI] normal context biçeminde çıktı üretir,\n" #~ " SAYI satır bağlam gösterir\n" #~ " -u, --unified[=SAYI] unidiff biçeminde çıktı üretir, \n" #~ " SAYI satır bağlam gösterir\n" #~ " -C, --context=SAYI SAYI satır kopyalanmış bağlam gösterir\n" #~ " -U, --unified=SAYI SAYI satır birleştirilmiş bağlam gösterir\n" #~ " -L, --label=ETİKET dosya ismi yerine ETİKET'i kullanır\n" #~ " -p, --show-c-function her değişikliğin içinde olduğu C fonksiyonu " #~ "gösterir\n" #~ " -F, --show-function-line=RE RE'ye uyan en son satırı gösterir\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief yalnızca dosyaların farklı olup olmadığını " #~ "gösterir\n" #~ " -e, --ed ed betiği çıktılar\n" #~ " -n, --rcs RCS biçeminde çıktı üretir\n" #~ " -y, --side-by-side iki sütun olarak çıktı üretir\n" #~ " -w, --width=SAYI satır genişliğini SAYI olarak belirler " #~ "(öntanımlı 130)\n" #~ " --left-column ortak satırları yalnız sol sütunda gösterir\n" #~ " --suppress-common-lines ortak satırları göstermez\n" #~ " -D, --ifdef=İSİM '#ifdef İSİM' biçeminde birleştirilmiş dosya " #~ "çıktılar\n" #~ " --GTÜR-group-format=GBÇ GTÜR'ünde girdi gruplarını GBÇ ile " #~ "biçemler\n" #~ " --line-format=SBÇ bütün girdi satırlarını SBÇ ile biçemler\n" #~ " --STÜR-line-format=SBÇ STÜR'ünde girdi satırlarını SBÇ ile " #~ "biçemler\n" #~ " -l, --paginate çıktıyı `pr' komutundan geçirerek sayfalar\n" #~ " -t, --expand-tabs çıktıda sekmeleri boşluğa dönüştürür\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab başa bir sekme ekleyerek sekmeleri hizalar\n" #~ " -r, --recursive çevrimsel olarak bulunan alt dizinleri\n" #~ " karşılaştırır\n" #~ " -N, --new-file olmayan dosyaları boş farzeder\n" #~ " -P, --unidirectional-new-file olmayan birinci dosyaları boş farzeder\n" #~ " -s, --report-identical-files iki dosya birbirinin aynı ise bildirir\n" #~ " -x, --exclude=KALIP KALIP'a uyan dosyaları işlemez\n" #~ " -X, --exclude-from=DOSYA DOSYA'da bulunan kalıplara uyan dosyaları " #~ "işlemez\n" #~ " -S, --starting-file=DOSYA dizinleri karşılaştırırken DOSYA ile başlar\n" #~ " --horizon-lines=SAYI ortak ilkek ve soneklerden SAYI satır tutar\n" #~ " -d, --minimal daha küçük bir değişiklik kümesi bulur\n" #~ " -H, --speed-large-files büyük dosyalar ve aralarında çok sayıda " #~ "küçük\n" #~ " farklar olduğunu farzeder.\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Öntanımlı olarak context biçeminde iki satır bağlam kabul edilir.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTÜR 'old' (eski), 'new' (yeni) veya 'unchanged' (değişmemiş) olabilir.\n" #~ "GTÜR, LTÜR seçeneklerinden veya 'changed' (değişmiş) olabilir.\n" #~ " %< DOSYA1'den satırlar\n" #~ " %> DOSYA2'den satırlar\n" #~ " %= DOSYA1 ve DOSYA2'de ortak olan satırlar\n" #~ " %[-][GENİŞ][.[KESİN]]{doxX}HARF HARF için printf tarzı biçem\n" #~ " HARFler yeni grubu için aşağıdaki gibi, eski grubu için küçük " #~ "harftir:\n" #~ " F ilk satır numarası\n" #~ " L son satır numarası\n" #~ " N satır sayısı = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LBÇ aşağıdaki biçemlerde olabilir:\n" #~ " %L satır içeriği\n" #~ " %l sonda satırsonu karakteri olmaksızın satır içeriği\n" #~ " %[-][GENİŞ][.[KESİN]]{doxX}n girdi satır numarası için printf tarzı " #~ "biçem\n" #~ "GBÇ veya LBÇ aşağıdakileri kapsayabilir:\n" #~ " %% %\n" #~ " %c'C' tek karakter C\n" #~ " %c'\\000' sekizlik biçemde tek karakter\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Eski mdiff seçenekleri:\n" #~ "* -f, --fuzz-items=ÖĞE bir topakta en fazla ÖĞE sayıda örtüşmeyen " #~ "öğe\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Telif Hakkı (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs `context diff' biçeminde çıktı üretilir\n" #~ " -e, --echo-comments yorumlar/açıklamalar gösterilir\n" #~ " -o, --old-diffs ne olursa olsun, eski biçemde `diff' çıktısı " #~ "üretilir\n" #~ " -p, --patch-format `patch' biçeminde çıktı üretilir\n" #~ " -P -p ile aynı\n" #~ " -s, --strip-comments yorum/açıklama satırlarını göstermez\n" #~ " -u, --unidiffs `unidiff' biçeminde çıktı üretilir\n" #~ " -U -p ve -u ile aynı\n" #~ " -=, --use-equals `unidiff' çıktılarında eşit işaretleri yerine " #~ "boşluk kullanılır\n" #~ " --help bu yardımı gösterir ve çıkar\n" #~ " --version sürüm bilgisini gösterir ve çıkar\n" #~ "\n" #~ "DOSYA belirtilmezse standart girdi okunur.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Uzun seçenekler için zorunlu argümanlar kısa seçenekler için de " #~ "zorunludur.\n" #~ "\n" #~ " -C, --copyright telif hakkı bilgisini gösterir ve çıkar\n" #~ " -K, --no-init-term -t gibi fakat termcap bilgisi almaz\n" #~ " -V, --version sürüm bilgisini gösterir ve çıkar\n" #~ " -1, --no-deleted silinmiş sözcükleri göstermez\n" #~ " -2, --no-inserted yerleştirilmiş sözcükleri göstermez\n" #~ " -3, --no-common ortak sözcükleri göstermez\n" #~ " -a, --auto-pager bir sayfalama programı kullanır\n" #~ " -h, --help bu yardımı gösterir ve çıkar\n" #~ " -i, --ignore-case karşılaştırma yaparken büyük/küçük harf " #~ "farkı gözetmez\n" #~ " -l, --less-mode \"less\" sayfalaması kipi\n" #~ " -n, --avoid-wraps alanları satır sonlarını geçerek uzatmaz\n" #~ " -p, --printer yazıcıya bastırmaya uygun çıktı üretir\n" #~ " -s, --statistics kaç sözcük silinmiş, yerleştirilmiş vs. " #~ "gösterir\n" #~ " -t, --terminal ekranda göstermeye uygun çıktı üretir\n" #~ " -w, --start-delete=DİZGE silinecek bölgenin başlangıcını belirten " #~ "DİZGE\n" #~ " -x, --end-delete=STRING silinecek bölgenin sonunu belirten DİZGE\n" #~ " -y, --start-insert=STRING yerleştirilecek bölgenin başını belirten " #~ "DİZGE\n" #~ " -z, --end-insert=STRING yerleştirilecek bölgenin sonunu belirten " #~ "DİZGE\n" wdiff-1.2.1/po/pl.gmo0000644000000000000000000004064312116513226011244 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""]$K$95%?o% %%%#%> &8J&B&G&C'@R'C':'G(@Z(=(?(F)G`)s)J*(g*R*:*,+DK+@+G+5,TO,Q,',D-rc-A-C.;\.C.C.8 /<Y/1/</N0TT090<0L 16m1D1J1L42I2K2H3G`3133'3'!4'I4Fq4$4)4/5/75g5'j5 5 5A5 5O5G6 ^6?j6 666S7}77T:%:G: :";A>;;%;%;?;. <'O<5w<<%<<+==;=3y=4=y=\>*y>4>!>L>7H?(??6??K@Fe@@-uA_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-26 00:01+0200 Last-Translator: Rafał Maszkowski Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatowanie wyniku: Tryby działania: Opcje trybu porównywania słów: Napisane przez Franc,oisa Pinarda . Napisane przez Wayne'a Davisona . --help wyświetlenie tego opisu i zakończenie --version wypisanie informacji o wersji i zakończenie %d %.0f%% zmieniony %d %.0f%% zmienione %d %.0f%% zmienionych %d %.0f%% wspólny %d %.0f%% wspólne %d %.0f%% wspólnych %d %.0f%% usunięty %d %.0f%% usunięte %d %.0f%% usuniętych %d %.0f%% dodany %d %.0f%% dodane %d %.0f%% dodanych -0, --debugging podawanie wielu szczegółów o tym co się dzieje -1, --no-deleted bez pokazywania skasowanych słów -2, --no-inserted bez pokazywania dodanych słów -3, --no-common bez pokazywania wspólnych słów -=, --use-equals zamiana spacji na `=' w diffie zunifikowanym -A, --auto-pager wywołanie programu do oglądania plików -C, --copyright wypisanie informacji o prawach autorskich i zakończenie -O, --item-regexp=WYRREG porównywanie elementów wg definicji WYRREG -P to samo co -p -S, --string[=NAPIS] informacja o użyciu NAPISU podanego przez użytkownika -T, --initial-tab TAB zamiast początkowej spacji -U to samo co -p i -u -V, --show-links podawanie odnośników do plików i linii -W, --word-mode porównywanie słów zamiast linii -a, --auto-pager wywołanie programu do oglądania plików -c, --context-diffs wynik jako diff kontekstowy -d, --diff-input użycie pojedyńczego diffa zunifikowanego na wejściu -e, --echo-comments wypisywanie komentarzy na standardowym wyjściu błędu -h (ignorowane) -h, --help wyświetlenie ten opisu i zakończenie -i, --ignore-case traktowanie małych i wielkich liter jako takich samych -k, --less-mode odmiana trybu drukowania dla "less" -l, --less-mode odmiana trybu drukowania dla "less" -l, --paginate formatowanie wyników przez `pr' -m, --avoid-wraps bez przenoszenia pól między liniami -n, --avoid-wraps bez przenoszenia pól do nowych linii -o, --old-diffs wynik jako diff w starym stylu -o, --printer nadrukowanie znaków na siebie -p, --patch-format wynik w formacie patcha -p, --printer nadrukowanie znaków na siebie -q, --quiet wyłączenie komunikatu o uruchomieniu `mdiff-a' -s, --statistics podanie ile słów zostało usuniętych, dodanych itp. -s, --strip-comments usunięcie linii z komentarzami -t, --expand-tabs zamiana TABów na spacje w wyniku -t, --terminal użycie termcapa do wyświetlania na terminalu -u, --unidiffs wynik jako diff zunifikowany -v, --verbose pokazanie przebiegu operacji przez stderr -v, --version wypisanie informacji o wersji i zakończenie -w, --start-delete=NAPIS NAPIS oznaczający początek obszaru kasowania -x, --end-delete=NAPIS NAPIS oznaczający koniec obszaru kasowania -y, --start-insert=NAPIS NAPIS oznaczający początek obszaru dodanego -z, --end-insert=NAPIS NAPIS oznaczający koniec obszaru dodanego -z, --terminal używanie termcapa do pisania na terminalu %d złączenie, %d złączenia, %d złączeń,%d plik,%d pliki,%d plików,%d element %d elementy %d elementów %d element %d elementy %d elementów %d element,%d elementy,%d elementów,%d zduplikowana linia %d zduplikowane linie %d zduplikowanych linii %s (dla wyrażenia regularnego `%s')%s: %d słowo%s: %d słowa%s: %d słów%s: program wejściowy zabity przez sygnał %d %s: program wyjściowy zabity przez sygnał %d ' %d element %d elementy %d elementów , łączenie, zrobione Bez PLIKU albo gdy PLIK to -, czytane jest standardowe wejście. Start `%sArgumenty obowiązkowe dla długich opcji są obowiązkowe też dla krótkich. Podsumowanie czytania:Czytanie %sInformacje o błędach należy wysyłać do wdiff-bugs@gnu.org SortowanieSortowanie elementówTen program jest darmowy; warunki kopiowania są opisane w źródłach. Autorzy nie dają ŻADNYCH gwarancji, w tym nawet gwarancji JAKOŚCI lub PRZYDATNOŚCI DO KONKRETNYCH CELÓW. Ten program pokazuje również jak `mdiff' mógł zostać wywołany bezpośrednio. Ten program to wolne oprogramowanie: możesz rozprowadzać go i/lub modyfikować zachowując warunki Powszechnej Licencji Publicznej GNU (General Public Licence), opublikowanej przez Free Software Foundation, w wersji 3 lub, zgodnie z twoim wyborem, wyższej. program ten jest rozprowadzany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI, nawet bez domyślnej gwarancji JAKOŚCI lub PRZYDATNOŚCI DO KONKRETNYCH ZASTOSOWAŃ. Szczegóły znajdziesz w Powszechnej Licencji Publicznej GNU. Wraz z tym programem powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU. Jeśli nie, zobacz http://www.gnu.org/licenses/ Napisz `%s --help' żeby otrzymać więcej informacji. Składnia: %s [OPCJA]... PLIK1 PLIK2 Składnia: %s [OPCJA]... PLIK1 PLIK2 albo: %s -d [OPCJA]... [PLIK] Składnia: %s [OPCJA]... [PLIK] Składnia %s [OPCJA]... [PLIK]... Bez PLIKU albo gdy PLIK to -, czytane jest standardowe wejście. Podsumowanie pracy:nie można użyć -t, nie ma termcapanie można użyć -z, nie ma termcapaplik różnic kontekstowych nie ma nagłówka 'new' w linii %ldplik różnic nie nagłówka 'old' w linii %ldnie ma dostępu do bazy danych termcapanie można znaleźć nazwy pliku różnic w linii %ldkatalogi nie są obsługiwanebłąd przy przekierowaniu strumienianie udało się uruchomić %sopcja %s zignorowana (nie zaimplementowana)błędny nagłówek zunifikowanego pliku różnic w linii %ldźle sformatowane różnice kontekstowe w linii %ldźle sformatowane różnice zunifikowane w linii %ldmdiff - szuka podobnych ciągów w plikach i tworzy możliwie najbardziej szczegółową listę różnic i podobieństw. brakujące argumenty plikowenie istnieje odpowiedni katalog tymczasowytylko jeden plik może być na standardowym wejściudozwolona tylko jedna nazwa plikuopcje -123RSYZ mają znaczenie tylko gdy są dwa zestawy danych wejściowychwybranie terminala poprzez zmienną środowiskową TERMtyp terminala `%s' nie jest zdefiniowanyza wiele argumentów plikowychnapisz `%s --help' żeby otrzymać więcej informacji nie można otworzyć `%s'unify - Przekształcenie diff-a kontekstowego w zunifikowany i odwrotnie. wdiff - Porównuje słowa w dwóch plikach i informuje o różnicach. wdiff - pokazuje różnice między słowami przez wewnętrzne wywołanie `mdiff -W'. Program ten istnieje głównie po to, żeby można było się nadal posługiwać przestrzałą składnią `wdiff'. łączenie słów z dwóch plików (na razie)wdiff-1.2.1/po/es.gmo0000644000000000000000000004076712116513226011247 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""]:$K$9$?%^%m%%%9%3%7)&8a&*&&&(&,'8B'>{'@'='j9(C(=(D&))k)>)H).*PL*B*C*D$+Ai+Q+&+0$,U,I,I1-@{-|-|9.I.L/5M/L/H/v0<0B0G1CX1R1I1O92O2r2oL3G34464S4n4$4443425M5P5 o5{575 5i536 G6R6 666S77+:2:_:*O;-z;D;;0<12<4d<4<-<B<?=Y=u=+=6=*=(>A>>/>3?%N?Ft?<?*? #@+D@p@G@G@A=A_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: GNU wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-27 16:41+0200 Last-Translator: Santiago Vila Doncel Language-Team: Spanish Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Depuración: Formato del resultado: Modos de operación: Opciones para las palabras: Escrito por François Pinard . Escrito por Wayne Davison . --help muestra esta ayuda y finaliza --version muestra la versión y finaliza %d %.0f%% cambiada %d %.0f%% cambiadas %d %.0f%% común %d %.0f%% comunes %d %.0f%% borrada %d %.0f%% borradas %d %.0f%% insertada %d %.0f%% insertadas -0, --debugging da muchos detalles de lo que ocurre -1, --no-deleted no muestra las palabras borradas -2, --no-inserted no muestra las palabras insertadas -3, --no-common no muestra las palabras comunes -=, --use-equals sustituye espacios por signos igual en diffs unificados -A, --auto-pager llama a un paginador automáticamente -C, --copyright muestra el copyright y finaliza -O, --item-regexp=EXPREG compara elementos definidos por EXPREG -P lo mismo que -p -S, --string[=CADENA] toma nota de otra CADENA de usuario -T, --initial-tab produce un TAB en lugar de un especio inicial -U lo mismo que -p y -u -V, --show-links da referencias de fichero y línea en las anotaciones -W, --word-mode compara palabras en lugar de líneas -a, --auto-pager llama a un paginador automáticamente -c, --context-diffs genera el resultado como diffs de contexto -d, --diff-input utiliza diff unificado como entrada -e, --echo-comments repite los comentarios por la salida de error estándar -h (sin efecto) -h, --help muestra esta ayuda -i, --ignore-case no tiene en cuenta las diferencias entre mayúsculas y minúsculas -k, --less-mode variante del modo de impresión para "less" -l, --less-mode variante del modo de impresión para "less" -l, --paginate pagina el resultado a través de `pr` -m, --avoid-wraps impide que los campos se extiendan más allá del final de línea -n, --avoid-wraps impide que los campos se extiendan más allá del final de línea -o, --old-diffs muestra diffs al viejo estilo, pase lo que pase -o, --printer utiliza sobreimpresión como en las impresoras -p, --patch-format genera en formato de parche -p, --printer utiliza sobreimpresión como en las impresoras -q, --quiet no muestra el mensaje de llamada a `mdiff' -s, --statistics indica cuántas palabras hay borradas, insertadas y comunes -s, --strip-comments elimina las líneas de comentarios -t, --expand-tabs expande tabs a espacios en el resultado -t, --terminal utiliza termcap para mostrar por terminal -u, --unidiffs genera el resultado como diffs unificados -v, --verbose da algunas estadísticas en la salida de error estándar -v, --version muestra la versión del programa y finaliza -w, --start-delete=CADENA cadena para marcar comienzo de la región borrada -x, --end-delete=CADENA cadena para marcar el final de la región borrada -y, --start-insert=CADENA cadena para marcar el comienzo de una región insertada -z, --end-insert=CADENA cadena para marcar el final de una región insertada -z, --terminal utiliza termcap para mostrar por terminal %d grupo, %d grupos, %d fichero, %d ficheros, %d elemento %d elementos %d miembro %d miembros %d miembro, %d miembros, %d solapamiento %d solapamientos %s (para la expreg `%s')%s: %d palabra%s: %d palabras%s: programa de entrada terminado por la señal %d %s: programa de salida terminado por la señal %d ' , %d elemento , %d elementos , agrupando, hecho Si no se especifica FICHERO, lee la entrada estándar. Lanzando `%sLos argumentos obligatorios para las opciones largas son también obligatorios para las opciones cortas. Resumen de lectura:Leyendo %sComunicar errores en el programa a . Comunicar errores de traducción a y al último traductor. OrdenandoOrdenando los miembrosEsto es software libre; vea el código fuente para las condiciones de copia. No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Este programa también dice cómo se podría haber llamado a `mdiff' directamente. Este programa es software libre: puede ser redistribuido y/o modificado bajo los términos de la Licencia Pública General de GNU tal y como se publica por la Free Software Foundation; bien en la versión 3 de la Licencia, o (a su elección) cualquier versión posterior. Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Véase la Licencia Pública General de GNU para más detalles. Usted debería haber recibido una copia de la Licencia Pública General de GNU junto con este programa. Si no, vea . Pruebe `%s --help' para más información. Modo de empleo: %s [OPCIÓN]... FICHERO1 FICHERO2 Modo de empleo: %s [OPCIÓN]... FICHERO1 FICHERO2 o bien: %s -d [OPCIÓN]... [FICHERO] Modo de empleo: %s [OPCIÓN]... [FICHERO] Modo de empleo: %s [OPCIÓN]... [FICHERO]... Si no hay FICHERO, o cuando FICHERO es -, lee la entrada estándar. Resumen de trabajo:no se puede usar -t, termcap no está disponibleno se puede usar -z, termcap no está disponible.diff de contexto sin cabecera `new' en la línea %lddiff de contexto sin cabecera `old' en la línea %ldno se pudo acceder a la base de datos termcapno se pudo encontrar un nombre para la diferencia en la línea %ldno se admiten directorioserror al redirigir el flujofallo al ejecutar %sse descarta la opción %s (no implementada)cabecera de diff unificado no válida en la línea %lddiff de contexto erróneo en la línea %lddiff unificado erróneo en la línea %ldmdiff - Estudia varios ficheros y busca fragmentos semejantes, entonces produce posibles listas detalladas de diferencias y similaridades. faltan argumentos (ficheros)no existe ningún directorio temporal apropiadoSolamente un fichero puede ser la entrada estándarsólo se permite un nombre de ficherolas opciones -123RSYZ solamente tienen sentido cuando hay dos entradasseleccione una terminal mediante la variable de entorno TERMel tipo de terminal `%s' no está definidodemasiados argumentos (ficheros)pruebe `%s --help' para más información. no se puede abrir `%s'unify - Transforma diffs de contexto en diffs unificados, o viceversa. wdiff - Compara palabras en dos ficheros e informa de las diferencias. wdiff - Calcula diferencias de palabras lanzando internamente `mdiff -W'. Este programa existe principalmente para admitir la ahora antigua sintaxis de `wdiff'. fusión de palabras para dos ficheros solamente (hasta ahora)wdiff-1.2.1/po/ro.po0000644000000000000000000013621012116513226011101 00000000000000# Mesajele n limba romn pentru wdiff. # Copyright (C) 2003 Free Software Foundation, Inc. # Acest fiier este distribuit sub aceeai licen ca i pachetul wdiff. # Laurentiu Buzdugan , 2003. # # # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:51+0100\n" "Last-Translator: Laurentiu Buzdugan \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (pentru regexp `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Un singur fiier poate fi intrare standard." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Directoarele nu sunt suportate" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Citesc %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elemente\n" msgstr[1] ", %d elemente\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d elemente\n" msgstr[1] ", %d elemente\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d elemente\n" msgstr[1] ", %d elemente\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sortez" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", clustering" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", terminat\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Membrii sortare" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", clustering" msgstr[1] ", clustering" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d elemente\n" msgstr[1] ", %d elemente\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Selectai un terminal setnd variabila de mediu TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Nu pot accesa baza de date termcap." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Tipul de terminal `%s' nu este definit." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d cuvinte" msgstr[1] "%s: %d cuvinte" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% comune" msgstr[1] " %d %d%% comune" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% terse" msgstr[1] " %d %d%% terse" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% schimbate" msgstr[1] " %d %d%% schimbate" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% inserate" msgstr[1] " %d %d%% inserate" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "ncercai `%s --help' pentru informaii suplimentare.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Studiaz multiple fiiere i caut pentru secvene similare,\n" "iar apoi produce liste detaliate cu diferenele i similaritile.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Folosire: %s [OPIUNE]... FIIER...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Moduri de operare:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (ignorat)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose raporteaz cteva statistici la stderr\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help afieaz acest mesaj i termin\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr "" " --version afieaz informaii despre versiune i termin\n" #: src/mdiff.c:3783 #, fuzzy msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatting output:\n" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab pune TAB n loc de spaiul iniial\n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate pagineaz ieirea prin `pr'\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] observ un alt IR definit de utilizator\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links arat referine despre fiier i linie n " "adnotri\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expandeaz tab-urile ca spaii n ieire\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Depanare:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging afieaz mai multe detalii despre ce se ntmpl\n" #: src/mdiff.c:3795 #, fuzzy msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opiuni modul cuvnt:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted inhibit output of deleted words\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted inhibit output of inserted words\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common inhibit output of common words\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager cheam automat un paginator\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variaia modului imprimant pentru \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps nu extinde cmpurile prin caractere linie nou\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer suprascrie ca pentru imprimant\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal folosete termcap ca pentru display terminal\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP compar elemente ca definite de REGEXP\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compar cuvinte n loc de linii\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Far FIIER, sau cnd FIIER este -, citete intrarea standard.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Raportai bug-uri la .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Nu se poate folosi -z, termcap nu este disponibil." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Cuvinte combinate pentru dou doar dou fiiere (pn acum)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Acesta este software liber; vedei codul surs pentru condiii despre " "copiere.\n" "Nu exist nici o garanie; nici chiar pentru VANDABILITATE sau POTRIVIRE\n" "PENTRU UN SCOP ANUME.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Scris de Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Opiunile -123RSYZ au sens numai cnd sunt dou intrri" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Nu am putut gsi un nume pentru diff la linia %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "ncercai `%s --help' pentru informaii suplimentare.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unific - Transform contextele diff n unidiff, sau vice-versa.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Folosire: %s [OPIUNE]... FIIER\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs foreaz ieire ca contexte diff\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments trimite comentariile la disp. eroare standard\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs afieaz diff-uri n vechiul stil, indiferent ce\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format genereaz format patch\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P la fel ca -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments elimin liniile de comentariu\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs foreaz ieire ca unidiff-uri\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U la fel ca -p i -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals nlocuiete spaiile cu caractere egal n unidiff\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Dac FIIER nu este specificat, citete intrarea standard.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Nu pot deschide `%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Un singur nume de fiier permis" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Scris de Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Header diff unificat invalid la linia %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Diff unificat malformat la linia %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Contextului diff i lipsete `vechiul' header la linia %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Context diff malformat la linia %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Contextului diff i lipsete `noul' header la linia %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Acesta program este software liber; l putei redistribui i/sau modifica\n" "conform termenilor Licenei Publice Generale GNU n forma publicat de\n" "Free Software Foundation; fie versiunea 2, fie (la alegerea d-voastr)\n" "orice versiune ulterioar.\n" "\n" "Acest program este distribuit n sperana c va fi folositor,\n" "dar FR NICI O GARANIE; chiar fr garania presupus a\n" "VANDABILITII sau POTRIVIRII PENTRU UN SCOP ANUME. Citii\n" "Licena Public General GNU pentru detalii suplimentare.\n" "\n" "Ar trebui s fi primit o copie a Licenei Publice Generale GNU\n" "mpreun cu acest program; dac nu, scriei la Free Software Foundation,\n" "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Compar cuvinte din dou fiiere i raporteaz diferenele.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Folosire: %s [OPIUNE]... FIIER1 FIIER2\n" " %s -d [OPIUNE]... [FIIER]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argumentele obligatorii pentru opiunile lungi sunt obligatorii i\n" "pentru opiunile scurte.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright afieaz copyright-ul i termin\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automatically calls a pager\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help print this help\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case fold character case while comparing\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation of printer mode for \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps do not extend fields through newlines\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike as for printers\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics say how many words deleted, inserted etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal use termcap as for terminal displays\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr "" " -V, --version afieaz versiunea programului i termin\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING string to mark beginning of delete region\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=STRING string to mark end of delete region\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING string to mark beginning of insert region\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=STRING string to mark end of insert region\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Nu se poate folosi -t, termcap nu este disponibil" #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Lipsesc argumentele fiier" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Lipsesc argumentele fiier" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Folosire: %s [OPIUNE]... FIIER1 FIIER2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "Citesc %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Rezumat citire: %d fiiere, %d elemente\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Rezumat lucru: %d clustere, %d membrii\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Rezumat lucru: %d clustere, %d membrii, %d suprapuneri\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term ca i -z, dar nici un ir termcap init/term\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term ca -t, dar fr iruri termcap init/term\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Moduri de operare:\n" #~ " -h (ignorat)\n" #~ " -v, --verbose raporteaz cteva statistici la stderr\n" #~ " --help afieaz acest mesaj i termin\n" #~ " --version afieaz informaii despre versiune i termin\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab pune TAB n loc de spaiul iniial\n" #~ " -l, --paginate pagineaz ieirea prin `pr'\n" #~ " -S, --string[=STRING] observ un alt IR definit de utilizator\n" #~ " -V, --show-links arat referine despre fiier i linie n " #~ "adnotri\n" #~ " -t, --expand-tabs expandeaz tab-urile ca spaii n ieire\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Opiuni modul cuvnt:\n" #~ " -1, --no-deleted nu afia cuvintele terse\n" #~ " -2, --no-inserted nu afia cuvintele inserate\n" #~ " -3, --no-common nu afia cuvintele comune\n" #~ " -A, --auto-pager cheam automat un paginator\n" #~ " -k, --less-mode variaia modului imprimant pentru \"less" #~ "\"\n" #~ " -m, --avoid-wraps nu extinde cmpurile prin caractere linie " #~ "nou\n" #~ " -o, --printer suprascrie ca pentru imprimant\n" #~ " -z, --terminal folosete termcap ca pentru display " #~ "terminal\n" #~ " -K, --no-init-term ca i -z, dar nici un ir termcap init/" #~ "term\n" #~ " -O, --item-regexp=REGEXP compar elemente ca definite de REGEXP\n" #~ " -W, --word-mode compar cuvinte n loc de linii\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files mai repede, pentru cnd sunt necesare " #~ "numeroase mici schimbri\n" #~ "* -a, --text reporteaz diferene pe linii (implicit " #~ "pentru fiiere text)\n" #~ "* -d, --minimal ncearc mai temeinic pentru un set mai " #~ "mic de diferene\n" #~ "* -q, --brief spune numai dac fiierere difer " #~ "(implicit pentru fiiere binare)\n" #~ "* --horizon-lines=LINII pstraz LINII n prefixe/sufixe comune\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Comparare directoare:\n" #~ "* -N, --new-file consider fiierele lips ca fiind " #~ "goale\n" #~ "* -P, --unidirectional-new-file consider fiierele vechi ca fiind " #~ "goale\n" #~ "* -S, --starting-file=FIIER rencepe comparaia directoarelor cu " #~ "FIIER\n" #~ "* -X, --exclude-from=FIIER ignor fiiere ce se potrivesc cu " #~ "tiparele gsite n FIIER\n" #~ "* -r, --recursive compar directoarele recursiv\n" #~ "* -s, --report-identical-files reporteaz cnd dou fiiere sunt " #~ "identice\n" #~ "* -x, --exclude=TIPAR ignore fiiere (directoare) ce " #~ "potrivesc TIPAR\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Ignorare text:\n" #~ " -B, --ignore-blank-lines ignor liniile goale\n" #~ "* -I, --ignore-matching-lines=REGEXP ignor liniile ce potrivesc " #~ "REGEXP\n" #~ " -b, --ignore-space-change ignor numrul spaiilor albe\n" #~ " -i, --ignore-case ignor diferene litere mari/mici\n" #~ " -w, --ignore-all-space ignor spaiile albe\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Clustere:\n" #~ " -G, --relist-files ignor toate fiierele de intrare cu " #~ "adnotri\n" #~ " -J, --minimum-size=ELEM ignor clustere ce nu au attea ELEMente\n" #~ " -j, --ignore-delimiters nu numra elemente avnd numai " #~ "delimitatoare\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Formate de ieire detaliate:\n" #~ "* -D, --ifdef=NAME afieaz format `#ifdef NAME'\n" #~ "* --changed-group-format=FORMAT folosete FORMAT pentru linii " #~ "schimbate\n" #~ "* --new-group-format=FORMAT folosete FORMAT pentru linii " #~ "inserate\n" #~ "* --new-line-format=FORMAT folosete FORMAT pentru linii " #~ "inserate\n" #~ "* --old-group-format=FORMAT folosete FORMAT pentru linii " #~ "terse\n" #~ "* --old-line-format=FORMAT folosete FORMAT pentru linii " #~ "terse\n" #~ "* --unchanged-group-format=FORMAT folosete FORMAT pentru linii " #~ "neschimbate\n" #~ "* --unchanged-line-format=FORMAT folosete FORMAT pentru linii " #~ "neschimbate\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formate ca scripturi:\n" #~ " (none of -CDUcefnuy) afieaz diferenele normal\n" #~ "* -e, --ed afieaz un script `ed' valid\n" #~ "* -f, --forward-ed amestec ntre -e i -n (nu foarte util)\n" #~ "* -n, --rcs afieaz format RCS (folosit intern RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Formate context i unificate:\n" #~ "* -F, --show-function-line=REGEXP arat contextul precedent ce " #~ "potrivete REGEXP\n" #~ "* -p, --show-c-function arat care funcie C pentru fiecare " #~ "schimbare\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LINII ca -c, selecteaz numr linii context\n" #~ "* -L, --label=ETICHET folosete din/ctre ETICHET n loc de " #~ "nume fiier (de dou ori)\n" #~ "* -U, --unified=LINII ca -u, selecteaz numr linii context\n" #~ "* -c, --context arat diferenele n context (implicit " #~ "3linii de context\n" #~ "* -u, --unified afieaz unidiffs (implicit 3 linii de " #~ "context)\n" #~ "* -LINII (vechi: selecteaz numr de linii de " #~ "context)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Format unul lng altul:\n" #~ "* -W, --width=COLOANE folosete numr COLOANE\n" #~ "* -y, --side-by-side folosete format ieire unul lng " #~ "altul\n" #~ "* --left-column afieaz numai linia pe coloana din " #~ "stnga cnd sunt identice\n" #~ "* --sdiff-merge-assist (folosit intern de `sdiff')\n" #~ "* --suppress-common-lines nu afia liniile identice\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% un singur %%\n" #~ " %%c'C' caracterul C n ghilimele\n" #~ " %%c'\\O' caracter avnd valoarea O, de la 1 la 3 cifre n octal\n" #~ " %%(A=B?T:E) dac A este B atunci T altfel E; A B numr VARIABILE; T E " #~ "FORMAT\n" #~ " %%FN folosete specificaia SPECIF F pentru a afia valoarea " #~ "VARIABILEI N\n" #~ " %%< [grup] vechi, fiecare linie prin --old-line-format\n" #~ " %%> [grup] nou, fiecare linie prin --new-line-format\n" #~ " %%= [grup] neschimbat, fiecare prin --unchanged-line-format\n" #~ " %%l [linie] fr posibilul su caracter linie_nou\n" #~ " %%L [linie] fr posibilul su caracter linie_nou\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF este [-][W[.D]]{doxX} ca n funcia C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABILA este {eflmn} pentru vechiul grup sau {EFLMN} pentru noul grup\n" #~ " {eE} numrul liniei imediat nainte de grup\n" #~ " {fF} numrul primei linii din grup\n" #~ " {lL} numrul ultimei linii din grup\n" #~ " {mM} numrul liniei imediat dup grup\n" #~ " {nN} numrul de linii n grup\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Opiuni diff standard:\n" #~ " -i, --ignore-case consider literele mari i mici ca identice\n" #~ " -w, --ignore-all-space ignor toate spaiile albe\n" #~ " -b, --ignore-space-change ignore schimbrile n numrul spaiilor albe\n" #~ " -B, --ignore-blank-lines ignor schimbrile a cror linii sunt goale\n" #~ " -I, --ignore-matching-lines=ER ignor schimbrile a cror linii se " #~ "potrivesc cu ER (expresie regular)\n" #~ " -a, --text trateaz toate fiierele ca text\n" #~ " -c, --context[=NUMR] ieire context diff regular,\n" #~ " schimb numrul liniilor context ca NUMR\n" #~ " -u, --unified[=NUMR] ieire context diff unificat sau unidiff,\n" #~ " cu NUMR linii de context\n" #~ " -C, --context=NUM ieire NUM linii de context copiate\n" #~ " -U, --unified=NUM ieire NUM linii de context unificat\n" #~ " -L, --label=ETICHET folosete ETICHET n loc de nume fiier\n" #~ " -p, --show-c-function arat n ce funcie C este schimbarea\n" #~ " -F, --show-function-line=ER arat cea mai recent linia ce se " #~ "potrivete cu ER\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief ieire numai dac fiierele difer\n" #~ " -e, --ed ieire un script ed\n" #~ " -n, --rcs ieire un diff n format RCS\n" #~ " -y, --side-by-side ieire pe dou coloane\n" #~ " -w, --width=NUM ieire de cel mult NUM (implicit 130) " #~ "caractere pe linie\n" #~ " --left-column afieaz numai coloana din stnga pentru " #~ "linii identice\n" #~ " --suppress-common-lines nu afia liniile comune\n" #~ " -D, --ifdef=NUME afieaz fiierul combinat pentru a arta " #~ "differenele `#ifdef NAME'\n" #~ " --GTYPE-group-format=GFMT GTYPE grupuri intrare cu GFMT\n" #~ " --line-format=LFMT toale liniile de intrare cu LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE linii intrare cu LFMT\n" #~ " -l, --paginate paseaz ieirea prin `pr' pentru a pagina-o\n" #~ " -t, --expand-tabs expandeaz tab-urile ca spaii n ieire\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab aliniaz tab-urile prefixnd cu un tab\n" #~ " -r, --recursive compar recursiv orice subdirectoare gsite\n" #~ " -N, --new-file trateaz fiierele absente ca goale\n" #~ " -P, --unidirectional-new-file trateaz fiierele absente ca goale\n" #~ " -s, --report-identical-files reporteaz cnd dou fiiere sunt " #~ "identice\n" #~ " -x, --exclude=TIPAR exclude fiierele care se potrivesc cu " #~ "TIPAR\n" #~ " -X, --exclude-from=FIIER exclude fiiere ce se potrivesc cu tiparele " #~ "specificate n FIIER\n" #~ " -S, --starting-file=FIIER ncepe cu FIIER cnd compari directoare\n" #~ " --horizon-lines=NUM pstreaz NUM linii ale prefixelor i " #~ "sufixelor comune\n" #~ " -d, --minimal ncearc din greu s gseti un set mai mic " #~ "de diferene\n" #~ " -H, --speed-large-files presupune fiiere mari i multe schimbri " #~ "mici i mprtiate\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Implicit, contextul diff are un orizont de dou linii.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE este `old', `new', sau `unchanged'. GTYPE este LTYPE sau " #~ "`changed'.\n" #~ "GFMT poate conine:\n" #~ " %< linii din FIIER1\n" #~ " %> linii din FIIER2\n" #~ " %= linii comune pentru FIIER1 i FIIER2\n" #~ " %[-][LIME][.[PREC]]{doxX}LITERA specificaii gen printf pentru " #~ "LITERA\n" #~ " LITERA poate fi pentru noul grup, litere mici pentru vechiul grup:\n" #~ " F numrul primei linii\n" #~ " L numrul ultimei linii\n" #~ " N numr de linii = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT poate conine:\n" #~ " %L coninutul liniei\n" #~ " %l coninutul liniei, fr eventualul caracter linie_nou\n" #~ " %[-][LIME][.[PREC]]{doxX}n specificaie gen printf pentru numrul " #~ "liniei de intrare\n" #~ "Fie GFMT fie LFMT poate conine:\n" #~ " %% %\n" #~ " %c'C' caracterul C\n" #~ " %c'\\OOO' caracterul cu codul octal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Opiuni mdiff vechi:\n" #~ "* -f, --fuzz-items=ELEM nu mai mult de ELEM ce nu se potrivesc ntr-" #~ "un cluster\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs foreaz ieire ca contexte diff\n" #~ " -e, --echo-comments trimite comentariile la disp. eroare standard\n" #~ " -o, --old-diffs afieaz diff-uri n vechiul stil, indiferent " #~ "ce\n" #~ " -p, --patch-format genereaz format patch\n" #~ " -P la fel ca -p\n" #~ " -s, --strip-comments elimin liniile de comentariu\n" #~ " -u, --unidiffs foreaz ieire ca unidiff-uri\n" #~ " -U la fel ca -p i -u\n" #~ " -=, --use-equals nlocuiete spaiile cu caractere egal n " #~ "unidiff\n" #~ " --help afieaz acest mesaj i termin\n" #~ " --version afieaz informaii despre versiune i termin\n" #~ "\n" #~ "Dac FIIER nu este specificat, citete intrarea standard.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Argumentele obligatorii pentru opiunile lungi sunt obligatorii i pentru " #~ "opiunile scurte.\n" #~ "\n" #~ " -C, --copyright afieaz copyright-ul i termin\n" #~ " -K, --no-init-term ca -t, dar fr iruri termcap init/term\n" #~ " -V, --version afieaz versiunea programului i termin\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" wdiff-1.2.1/po/ca.gmo0000644000000000000000000003514112116513226011211 00000000000000d<\K9? G T i | 8 1 5 ;2 ?n = > <+ Ch 9 9 @ $a ; ? + G. <v 9 7 >%9d#9AB>B7CC@@8/8.>gG->B[2;? GMAGABa / I Y%dE:d&" / M6n$$--&K.r$'""+N&#>0X7!%!?5<u(=]fJ8 >H    8 1!=J!=!D!@ "?L"="Q"B#6_#O#*#@$MR$/$S$A$%Bf%=%F%D.&&s&A&v&LS'L'>'q,(t(L)K`)4)K)L-*tz*=*D-+Lr+3+K+A?,q,n,pb-m-LA.....:./h//-////S0053,3%4(,4>U40404949053j5;5!5056-6*d6(66C7&c7-7!7@7=8-Y88388F8G/9w97):+:^ ,aZB=?Q;(84PX C@6V/3IU2&1DdSW<]G\$7`c"KF LOJ9[AHT'>NY*) _50 %- !E#.bRM Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %s (for regexp `%s')' , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportedignoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 0.6.3 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-11-05 00:36+0100 Last-Translator: Jordi Mallach Language-Team: Catalan Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1997, 1998, 1999 Free Software Foundation, Inc. Depuració: Format de l'eixida: Modes d'operació: Opcions del mode de paraula: Escrit per François Pinard . Escrit per Wayne Davison . --help mostra aquest missatge d'ajuda i ix --version mostra la versió del programa i ix -0, --debugging mostra molts detalls sobre el que està passant -1, --no-deleted no mostres les paraules suprimides -2, --no-inserted no mostres les paraules inserides -3, --no-common no mostres les paraules comunes -=, --use-equals reemplaça els espais per signes d'igualtat als unidiff -A, --auto-pager crida a un paginador automàticament -C, --copyright mostra el copyright i ix -O, --item-regexp=EXPREG compara elements tal i com es defineixen a EXPREG -P el mateix que -p -S, --string[=CADENA] pren nota d'una altra CADENA d'usuari -T, --initial-tab produeix una tabulació en lloc d'un espai inicial -U el mateix que -p i -u -V, --show-links dóna referències del fitxer i línia en les anotacions -W, --word-mode compara paraules en lloc de línies -a, --auto-pager crida a un paginador automàticament -c, --context-diffs força l'eixida a diffs contextuals -d, --diff-input empra diff unificat simple com a entrada -e, --echo-comments mostra els comentaris per l'eixida d'error -h (descartada) -h, --help mostra aquest missatge d'ajuda i ix -i, --ignore-case no distingueixes enre majúscules i minúscules en comparar -k, --less-mode variació del mode d'impressió per a «less» -l, --less-mode variació del mode d'impressió per a «less» -l, --paginate pagina l'eixida a través de «pr» -m, --avoid-wraps no estengues els camps més enllà del final de línia -n, --avoid-wraps no estengues els camps més enllà del final de la línia -o, --old-diffs produeix diffs a l'estil antic, passe el que passe -o, --printer empra la sobreimpresió com a les impressores -p, --patch-format genera el format de pedaç -p, --printer empra la sobreimpresió com a les impressores -q, --quiet inhabilita el missatge d'execució d'«mdiff» -s, --statistics informa de quantes paraules s'han suprimit, inserit, etc. -s, --strip-comments suprimeix les línies de comentaris -t, --expand-tabs expandeix tabulacions a espais a l'eixida -t, --terminal empra termcap com les pantalles dels terminals -u, --unidiffs força l'eixida a unidiff -v, --verbose mostra algunes estadístiques en l'eixida d'error -v, --version mostra la versió del programa i ix -w, --start-delete=CADENA cadena per a marcar el principi de la regió suprimida -x, --end-delete=CADENA cadena per a marcar el final de la regió suprimida -y, --start-insert=CADENA cadena per a marcar el principi de la regió inserida -z, --end-insert=STRING cadena per a marcar el final de la regió inserida -z, --terminal empra termcap com les pantalles dels terminals %s (per a la expreg «%s»)» , s'està agrupant, fet Si no s'especifica FITXER és, llig l'entrada estàndard. S'està llançant «%sEls arguments obligatoris per les opcions llargues també ho són per les opcions curtes corresponents. S'està llegint %sInformeu dels errors a . S'està ordenantS'estan ordenant els membresAquest és programari lliure; vegeu el codi font per les condicions de còpia. No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o ADEQUACIÓ A UN PROPÒSIT PARTICULAR. Aquest programa també mostra com s'hauria pogut executar l'«mdiff» directament. Aquest és programari lliure; podeu redistribuir-lo i/o modificar-lo sota els termes de la Llicència Pública General GNU tal i com ha estat publicada per la Free Software Foundation; bé sota la versió 3 o bé (si ho preferiu) sota qualsevol versió posterior. Aquest programa es distribueix amb l'expectativa de que serà útil, però SENSE CAP GARANTIA; ni tan sols la garantia implícita de COMERCIABILITAT o ADEQUACIÓ PER UN PROPÒSIT PARTICULAR. Vegeu la Llicència Pública General GNU per obtenir-ne més detalls. Hauríeu d'haver rebut una còpia de la Llicència Pública General GNU juntament amb aquest programa; en cas contrari, vegeu . Proveu «%s --help» per a obtenir més informació. Forma d'ús: %s [OPCIÓ]… FITXER1 FITXER2 Forma d'ús: %s [OPCIÓ]… [FITXER] Forma d'ús: %s [OPCIÓ]… [FITXER]… Sense FITXER, o quan FITXER és -, llig l'entrada estàndard. no es pot emprar -t, termcap no està disponibleno es pot emprar -z, termcap no està disponiblediff contextual sense capçalera «new» en la línia %lddiff contextual sense capçalera «old» en la línia %ldno s'ha pogut accedir a la base de dades de termcapno s'ha trobat un nom per a la diferència en la línia %ldels directoris no estan suportatss'està descartant l'opció %s (no implementada)capçalera de diff unificat invàlida en la línia %lddiff contextual malformat en la línia %lddiff unificat malformat en la línia %ldmdiff - Estudia múltiples fitxers i cerca sequències similars, i produeix llistes possiblement detallades de diferències i similituds. manquen fitxers com a argumentsno hi ha un directori temporal adequatnomés un fitxer pot ser l'entrada estàndar.només es permet un nom de fitxerles opcions -123RSYZ només tenen sentit quan hi ha dos entradesseleccioneu un terminal mitjançant la variable d'entorn TERMel tipus de terminal «%s» no està definit.hi ha massa argumentsproveu «%s --help» per a obtenir mes informació no es pot obrir «%s»unify - Transforma diffs contextuals en diffs unificats, o viceversa. wdiff - Compara paraules en dos fitxers i informa de les diferències. wdiff - Computa diferències de paraules mitjançant la crida interna a «mdiff -W». Aquest programa existeix principalment per a recolzar la sintaxi «wdiff», ara antiquada. fusió de paraules per a només dos fitxers (de moment)wdiff-1.2.1/po/ga.po0000644000000000000000000014667612116513225011070 00000000000000# Irish translations for wdiff. # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Kevin Patrick Scannell , 2003, 2008. msgid "" msgstr "" "Project-Id-Version: wdiff 0.5.93\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 21:21+0100\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (ar regexp `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "N cheadatear ach comhad amhin mar ghnth-ionchur." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "N thacatear le comhadlanna" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "%s lamh" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d mr\n" msgstr[1] ", %d mr\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d mr\n" msgstr[1] ", %d mr\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d mr\n" msgstr[1] ", %d mr\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Srtil" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", mhogall" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", crochnaithe\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Baill srtil" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", mhogall" msgstr[1] ", mhogall" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d mr\n" msgstr[1] ", %d mr\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" # KDE --KPS #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "" "Sonraigh cinel an teirminil mar at socruithe\n" "san athrg thimpeallachta TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Norbh fhidir an bunachar sonra termcap a rochtain." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "T an teirminal `%s' gan sainmhni." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d focal" msgstr[1] "%s: %d focal" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% coitianta" msgstr[1] " %d %d%% coitianta" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% scriosta" msgstr[1] " %d %d%% scriosta" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% athraithe" msgstr[1] " %d %d%% athraithe" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% ionsite" msgstr[1] " %d %d%% ionsite" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fhil.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Danann mdiff staidar ar il-chomhaid chun teaghrin at\n" "cosil le chile a aimsi; ansin taispenann s liosta, b'fhidir\n" "mionchruinn, de dhifrochta agus coslacht.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "sid: %s [ROGHA]... [COMHAD]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Roghanna:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (as feidhm)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose taispein staitistic ar ghnth-aschur earride\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help taispein an chabhair seo agus scoir\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version taispein eolas faoin leagan agus scoir\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" # ? " -T, --initial-tab cuir tb ar dts chun iad a ailni" # ? " -T, --initial-tab taispein tb in ionad sps tosaigh" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" # ? " -l, --paginate scag an t-aschur le `pr' chun leathanaigh a uimhri" # ? " -l, --paginate uimhrigh leathanaigh le `pr'" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=TEAGHRN] tabhair suntas do THEAGHRN sideora eile\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links taispein tagairt chomhaid/lne in antlacha\n" # ? " -t, --expand-tabs tiontaigh tib go spsanna san aschur" # ? " -t, --expand-tabs leathnaigh tib go spsanna san aschur" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Dfhabht:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging taispein go leor mionsonra maidir le cad at ar sil\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted cuir cosc ar aschur d'fhocail scriosta\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted cuir cosc ar aschur d'fhocail ionsite\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr "" " -3, --no-common cuir cosc ar aschur d'fhocail choitianta\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr "" " -A, --auto-pager sid brabhsla leathanach go huathoibroch\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode leagan de mhd printara do \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps n taispein rims trasna lnte\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer muinbhuail, mar le printir\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal sid termcap mar le teirminil\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=SLONN cimheas de rir an SLONN ionadaochta\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode cimheas focail in ionad lnte\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Mura bhfuil COMHAD ann, n ms '-' , ligh n ghnth-ionchur.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Seol tuairisc faoi fhabhtanna chuig .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "N fidir -z a sid; nl termcap ar fil." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "N fidir cumasc de rir focail a dhanamh le nos m n dh chomhad" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Cipcheart/Copyright 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Is saorbhogearra an romhchlr seo; fach ar an bhunchd le haghaidh\n" "coinnollacha cipela. Nl barnta ar bith ann; go fi nl barnta ann\n" "d'INDOLTACHT n FEILINACHT D'FHEIDHM AR LEITH.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Le Franois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "N fidir na roghanna -123RSYZ a sid le hionchur aonraic." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Nl aon ainm ar fil don `diff' ar lne %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fhil.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Tiontaigh diff-a chomhthacs go unidiff-a agus vice versa.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "sid: %s [ROGHA]... [COMHAD]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs aschur i gcruth diff-a comhthacs\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments dan macalla de nta trchta ar ghnth-aschur " "earride\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs aschur de rir sean-ns, is cuma na tosca\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format aschur i gcruth paist\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P ar comhbhr le -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments struipeil nta trchta\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs aschur i gcruth unidiff-a\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U ar comhbhr le -p agus -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals cuir `=' in ionad spsanna in unidiff-a\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Mura bhfuil COMHAD ann, ligh n ghnth-ionchur.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "N fidir `%s' a oscailt" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "N ghlactar ach le comhad amhin" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Le Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Ceanntsc neamhbhail do `diff' comhaontaithe ar lne %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Diff comhaontaithe mchumtha ar lne %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Ceanntsc `old' ar iarraidh i n`diff' comhthacs ar lne %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Diff comhthacs mchumtha ar lne %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Ceanntsc `nua' ar iarraidh i ndiff comhthacs ar lne %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, fuzzy, c-format msgid "no suitable temporary directory exists" msgstr "Nl comhadlann oirinach shealadach ann" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" # Diarmaid Mac Mathna did some of this for our GaelSpell project - KPS #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Is saorbhogearra an romhchlr seo; is fidir leat a scaipeadh agus/n\n" "a athr de rir na gcoinnollacha den GNU General Public License mar at\n" "foilsithe ag an Free Software Foundation; faoi leagan 2 den cheadnas,\n" "n (ms mian leat) aon leagan nos dana.\n" "\n" "Scaiptear an romhchlr seo le sil go mbeidh s isiil,\n" "ach GAN AON BHARNTA; go fi gan an barntas intuigthe\n" "d'INDOLTACHT n FEILINACHT D'FHEIDHM AR LEITH. Fach ar an\n" "GNU General Public License chun nos m sonra a fhil.\n" "\n" "Ba chir go mbeife tar is cip den GNU General Public License a fhil in\n" "ineacht leis an romhchlr seo; mura bhfuair, scrobh chuig an Free " "Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Cimheas focail as dh chomhad agus taispein difrochta.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "sid: %s [ROGHA]... COMHAD1 COMHAD2\n" " %s -d [ROGHA]... [COMHAD]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Is riachtanach le rogha ghearr aon argint at riachtanach leis an rogha " "fhada.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright taispein cipcheart agus scoir\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr "" " -a, --auto-pager sid brabhsla leathanach go huathoibroch\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help taispein an chabhair seo\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case srtil litreacha beaga le ceannlitreacha\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode leagan de mhd phrintara do \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps n bain fad as rims thar lnte nua\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer muinbhuail, mar le printir\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics taispein lon na bhfocal scriosta, ionsite, " "srl\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal bain sid as termcap do theirminil\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version taispein leagan an romhchlir agus scoir\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=TEAGHRN marcil tosach an tsleachta scriosta\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=TEAGHRN marcil deireadh an tsleachta scriosta\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=TEAGHRN marcil tosach an tsleachta ionsite\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=TEAGHRN marcil deireadh an tsleachta ionsite\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "N fidir -t a sid; nl termcap ar fil." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Cipcheart/Copyright 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Ainmneacha comhaid ar iarraidh" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Ainmneacha comhaid ar iarraidh" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Aimsigh difrochta idir focail tr `mdiff -W' a thos go " "hinmhenach.\n" "T an romhchlr seo ann chun an chomhrir measartha seanfhaiseanta `wdiff' " "a\n" "thac.\n" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "sid: %s [ROGHA]... COMHAD1 COMHAD2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet cuir cosc ar theachtaireacht ghlao `mdiff'\n" #: src/wdiff2.c:208 #, fuzzy msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Taispenann an romhchlr seo duit conas b'fhidir `mdiff' a chur ar sil " "go\n" "dreach.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr " Thos: `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Gearrchuntas ar lamh: %d comhad, %d mr\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Gearrchuntas ar obair: %d mogall, %d ball\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Gearrchuntas ar obair: %d mogall, %d ball, %d forlu\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term mar -z, ach nl aon teaghrn termcap init/" #~ "term\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term mar -t, ach gan teaghrin termcap init/" #~ "term\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Roghanna:\n" #~ " -h (as feidhm)\n" #~ " -v, --verbose taispein staitistic ar ghnth-aschur earride\n" #~ " --help taispein an chabhair seo agus scoir\n" #~ " --version taispein eolas faoin leagan agus scoir\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Leagan amach den aschur:\n" #~ " -T, --initial-tab taispein tb in ionad sps tosaigh\n" #~ " -l, --paginate uimhrigh leathanaigh le `pr'\n" #~ " -S, --string[=TEAGHRN] tabhair suntas do THEAGHRN sideora eile\n" #~ " -V, --show-links taispein tagairt chomhaid/lne in antlacha\n" #~ " -t, --expand-tabs leathnaigh tib go spsanna san aschur\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Roghanna md focail:\n" #~ " -1, --no-deleted n taispein focail scriosta\n" #~ " -2, --no-inserted n taispein focail ionsite\n" #~ " -3, --no-common n taispein focail coitianta\n" #~ " -A, --auto-pager sid brabhsla leathanach go " #~ "huathoibroch\n" #~ " -k, --less-mode leagan de mhd printara do \"less\"\n" #~ " -m, --avoid-wraps n taispein rims trasna lnte\n" #~ " -o, --printer muinbhuail, mar le printir\n" #~ " -z, --terminal sid termcap mar le teirminil\n" #~ " -K, --no-init-term mar -z, ach nl aon teaghrn termcap init/" #~ "term\n" #~ " -O, --item-regexp=SLONN cimheas de rir an SLONN ionadaochta\n" #~ " -W, --word-mode cimheas focail in ionad lnte\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Cimheas comhaid:\n" #~ "* -H, --speed-large-files nos gasta, m t mionathruithe go leor " #~ "ann\n" #~ "* -a, --text taispein difrochta (ramhshocr: " #~ "tacs)\n" #~ "* -d, --minimal obair go crua le haghaidh nos l " #~ "athruithe\n" #~ "* -q, --brief an difriil iad? (ramhshocr: dnrtha)\n" #~ "* --horizon-lines=LNTE coinnigh LNTE lne i bhfoircinn " #~ "coitianta\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Cimheas comhadlanna:\n" #~ "* -N, --new-file caith le comhaid ar iarraidh mar " #~ "folamh\n" #~ "* -P, --unidirectional-new-file caith le seanchomhaid ar iarraidh mar " #~ "folamh\n" #~ "* -S, --starting-file=COMHAD atosaigh cimheas comhadlanna ag " #~ "COMHAD\n" #~ "* -X, --exclude-from=COMHAD dan neamhshuim ar chomhaid at " #~ "comhoirinacha\n" #~ " le slonn ionadaochta as an gCOMHAD\n" #~ "* -r, --recursive cimheas fochomhadlanna go " #~ "hathchrsach\n" #~ "* -s, --report-identical-files taispein nuair at comhaid mar an " #~ "gcanna\n" #~ "* -x, --exclude=SLONN dan neamhshuim ar chomhaid(lanna) " #~ "at\n" #~ " comhoirinacha leis an SLONN " #~ "ionadaochta\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Danamh neamhshuim ar thacs:\n" #~ " -B, --ignore-blank-lines dan neamhshuim ar lnte folmha\n" #~ "* -I, --ignore-matching-lines=SLONN \" \" ar lnte comhoirinacha " #~ "le SLONN\n" #~ " -b, --ignore-space-change \" \" ar lon an spis bn\n" #~ " -i, --ignore-case \" \" ar cheannlitreacha vs. " #~ "beaga\n" #~ " -w, --ignore-all-space \" \" ar sps bn\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Mogall:\n" #~ " -G, --relist-files liostaigh gach inchomhad le hantlacha\n" #~ " -J, --minimum-size=LON dan neamhshuim ar mhogaill gan LON rud ar " #~ "a laghad\n" #~ " -j, --ignore-delimiters n cuir san ireamh mura bhfuil ach " #~ "teormharcir\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Formid aschuir mionsonraithe:\n" #~ "* -D, --ifdef=AINM aschuir i gcruth `#ifdef AINM'\n" #~ "* --changed-group-format=FORMID sid FORMID do lnte " #~ "athraithe\n" #~ "* --new-group-format=FORMID sid FORMID do lnte ionsite\n" #~ "* --new-line-format=FORMID sid FORMID do lne ionsite\n" #~ "* --old-group-format=FORMID sid FORMID do lnte scriosta\n" #~ "* --old-line-format=FORMID sid FORMID do lne scriosta\n" #~ "* --unchanged-group-format=FORMID sid FORMID do lnte gan " #~ "athr\n" #~ "* --unchanged-line-format=FORMID sid FORMID do lne gan athr\n" #~ "* --line-format=FORMID --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formid mar scripteanna:\n" #~ " (nl aon cheann de -CDUcefnuy) scrobh diff-a de ghnth\n" #~ "* -e, --ed scrobh script `ed' bhail\n" #~ "* -f, --forward-ed meascn -e agus -n (n sideach go " #~ "speisialta)\n" #~ "* -n, --rcs scrobh i gcruth inmhenach RCS\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Comhthacs agus leaganacha amach comhaontaithe:\n" #~ "* -F,--show-function-line=SLONN taispein comhthacs comhoirinach " #~ "roimhe seo\n" #~ "* -p, --show-c-function taispein an fheidhm C do gach " #~ "athrach\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LNTE mar -c, ach socraigh LNTE de chomhthacs " #~ "fosta\n" #~ "* -L, --label=LIPAD sid LIPAD /chuig in ionad ainm comhaid " #~ "(2x)\n" #~ "* -U, --unified=LNTE mar -u, ach socraigh LNTE de chomhthacs " #~ "fosta\n" #~ "* -c, --context scrobh diff-a i gcomhthacs (ramhshocr 3 " #~ "lne)\n" #~ "* -u, --unified scrobh unidiff-a i gcomhthacs (ramhshocr 3 " #~ "lne)\n" #~ "* -LNTE (i lig: socraigh LNTE de chomhthacs)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Formid taobh le taobh:\n" #~ "* -W, --width=COLIN socraigh leithead de COLIN\n" #~ "* -y, --side-by-side taispein tortha taobh le taobh\n" #~ "* --left-column n taispein an coln ar dheis ms " #~ "ionann iad\n" #~ "* --sdiff-merge-assist (sidte go hinmhenach le `sdiff')\n" #~ "* --suppress-common-lines n taispein lnte at i bpirt acu\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "Is ard at i bhFORMID n carachtair n-ionad fin, ach amhin:\n" #~ " %%%% %% aonarach\n" #~ " %%c'C' an carachtar C idir comhartha athfhriotail\n" #~ " %%c'\\O' carachtar le luach O, le 1, 2, n 3 dhigit ochtnrtha\n" #~ " %%(A=B?T:E) m A=B ansin T, agus E i ngach cs eile; is uimhreacha " #~ "n\n" #~ " ATHRGA A agus B; is FORMID T agus E\n" #~ " %%FN taispein luach na hATHRIGE N de rir an SONR F\n" #~ " %%< [grpa] sean, cuir gach lne tr --old-line-format\n" #~ " %%> [grpa] nua, cuir gach lne tr --new-line-format\n" #~ " %%= [grpa] gan athr, cuir gach lne tr --unchanged-line-" #~ "format\n" #~ " %%l [line] gan lne nua foirceanta, mar at\n" #~ " %%L [line] le lne nua foirceanta, mar at\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "Is [-][W[.D]]{doxX} SONR, mar C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "is ard at in ATHRG n {eflmn} don sheanghrpa n {EFLMN} don ghrpa " #~ "nua\n" #~ " {eE} lne-uimhir dreach roimh an ghrpa\n" #~ " {fF} an chad lne-uimhir sa ghrpa\n" #~ " {lL} an lne-uimhir dheiridh sa ghrpa\n" #~ " {mM} lne-uimhir dreach tar is an ghrpa\n" #~ " {nN} lon na lnte sa ghrpa\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Roghanna diff coitianta:\n" #~ " -i, --ignore-case caith le cs uachtair agus cs ochtair le " #~ "chile\n" #~ " -w, --ignore-all-space dan neamhshuim ar sps bn\n" #~ " -b, --ignore-space-change dan neamhshuim ar mhid an spis bhin\n" #~ " -B, --ignore-blank-lines dan neamhshuim ar lnte folmha\n" #~ " -I, --ignore-matching-lines=SLONN dan neamhshuim ar lnte at " #~ "comhoirinach\n" #~ " leis an SLONN ionadaochta\n" #~ " -a, --text caith le gach comhad mar thacschomhad\n" #~ " -c, --context[=UIMHIR] taispein diff-a le comhthacs coitianta,\n" #~ " ach socraigh UIMHIR lne de chomhthacs\n" #~ " -u, --unified[=UIMHIR] taispein diff-a le comhthacs comhaontaithe " #~ "n\n" #~ " unidiff-a le hUIMHIR lne de chomhthacs\n" #~ " -C, --context=UIMHIR taispein UIMHIR lne de chomhthacs " #~ "cipeilte\n" #~ " -U, --unified=UIMHIR taispein UIMHIR lne de chomhthacs " #~ "comhaontaithe\n" #~ " -L, --label=LIPAD bain sid as LIPAD in ionad ainm comhaid\n" #~ " -p, --show-c-function taispein an fheidhm C do gach difrocht\n" #~ " -F, --show-function-line=SLONN taispein an lne is dana at\n" #~ " comhoirinach leis an SLONN " #~ "ionadaochta\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief n taispein ach difriil n nach ea\n" #~ " -e, --ed taispein script `ed'\n" #~ " -n, --rcs taispein diff i gcruth RCS\n" #~ " -y, --side-by-side taispein le dh choln\n" #~ " -w, --width=UIMHIR taispein UIMHIR carachtar sa lne ar a " #~ "mhad,\n" #~ " (ramhshocr=130)\n" #~ " --left-column n taispein ach an coln ar cl do lnte " #~ "canna\n" #~ " --suppress-common-lines n taispein lnte canna\n" #~ " -D, --ifdef=AINM taispein comhad cumaiscthe chun na diff-a\n" #~ " `#ifdef AINM' a liri\n" #~ " --GCINL-group-format=GLA taispein grpa GCINL ionchuir de rir " #~ "GLA\n" #~ " --line-format=LLA taispein gach lne ionchuir de rir LLA\n" #~ " --LCINL-line-format=LLA taispein lnte LCINL ionchuir de rir " #~ "LLA\n" #~ " -l, --paginate scag an t-aschur le `pr' chun leathanaigh a " #~ "uimhri\n" #~ " -t, --expand-tabs tiontaigh tib go spsanna san aschur\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab cuir tb ar dts chun iad a ailni\n" #~ " -r, --recursive dan comparid ar fhochomhadlanna go " #~ "hathchrsach\n" #~ " -N, --new-file caith le comhad ar iarraidh mar chomhad " #~ "folamh\n" #~ " -P, --unidirectional-new-file ms ar iarraidh, caith leis an chad " #~ "chomhad\n" #~ " mar chomhad folamh\n" #~ " -s, --report-identical-files tuairiscigh nuair at dh chomhad " #~ "chomhionanna\n" #~ " -x, --exclude=SLONN fg comhaid as m t siad comhoirinach le " #~ "SLONN\n" #~ " -X, --exclude-from=COMHAD fg comhaid as m t siad comhoirinach le " #~ "haon\n" #~ " slonn ionadaochta as an CHOMHAD\n" #~ " -S, --starting-file=COMHAD tosaigh le COMHAD agus comhadlanna " #~ "gcimheas\n" #~ " --horizon-lines=UIMH coinnigh UIMH lne den rimr/iarmhr " #~ "coiteann\n" #~ " -d, --minimal obair go crua le haghaidh nos l athruithe\n" #~ " -H, --speed-large-files comhaid mhra agus go leor mionathruithe " #~ "forleata\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "De rir ramhshocraithe, t dh lne de chomhthacs i `diff' " #~ "chomhthacs.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LCINL = `old', `new', n `unchanged'. GCINL = LCINL n `changed'.\n" #~ "Is ard at i GLA n:\n" #~ " %< lnte as COMHAD1\n" #~ " %> lnte as COMHAD2\n" #~ " %= lnte at i gCOMHAD1 agus COMHAD2 araon\n" #~ " %[-][LEITHEAD][.[SONR]]{doxX}LITIR sonr do litir mar C `printf'\n" #~ " Is LITIR mar a leanas (agus litreacha beaga don ghrpa `old'):\n" #~ " F an chad lne-uimhir\n" #~ " L an lne-uimhir dheiridh\n" #~ " N lon na lnte = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "Is ard at i LLA n::\n" #~ " %L bhar na lne\n" #~ " %l bhar na lne, gan aon lne nua\n" #~ " %[-][LEITHEAD][.[SONR]]{doxX}n sonr do lne-uimhir mar C `printf'\n" #~ "Is fidir na teaghrin a leanas a bheith i GLA n LLA:\n" #~ " %% %\n" #~ " %c'C' an carachtar litriil C\n" #~ " %c'\\OOO' an carachtar le cd ochtnrtha OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Seanroghanna mdiff:\n" #~ "* -f, --fuzz-items=UIMHIR UIMHIR rud neamhoirinach i mogall, ar a " #~ "mhad\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs aschur i gcruth diff-a comhthacs\n" #~ " -e, --echo-comments dan macalla de nta trchta ar ghnth-aschur " #~ "earride\n" #~ " -o, --old-diffs aschur de rir sean-ns, is cuma na tosca\n" #~ " -p, --patch-format aschur i gcruth paist\n" #~ " -P ar comhbhr le -p\n" #~ " -s, --strip-comments struipeil nta trchta\n" #~ " -u, --unidiffs aschur i gcruth unidiff-a\n" #~ " -U ar comhbhr le -p agus -u\n" #~ " -=, --use-equals cuir `=' in ionad spsanna in unidiff-a\n" #~ " --help taispein an chabhair seo agus scoir\n" #~ " --version taispein eolas faoin leagan agus scoir\n" #~ "\n" #~ "Mura bhfuil COMHAD ann, ligh n ghnth-ionchur.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ msgstr "" #~ "Is riachtanach le rogha ghearr aon argint at riachtanach leis an rogha " #~ "fhada.\n" #~ "\n" #~ " -C, --copyright taispein cipcheart agus scoir\n" #~ " -K, --no-init-term mar -t, ach gan teaghrin termcap init/" #~ "term\n" #~ " -1, --no-deleted cuir cosc ar aschur d'fhocail scriosta\n" #~ " -2, --no-inserted cuir cosc ar aschur d'fhocail ionsite\n" #~ " -3, --no-common cuir cosc ar aschur d'fhocail choitianta\n" #~ msgid "" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ msgstr "" #~ " -a, --auto-pager sid brabhsla leathanach go " #~ "huathoibroch\n" #~ " -h, --help taispein an chabhair seo\n" #~ " -i, --ignore-case srtil litreacha beaga le ceannlitreacha\n" #~ " -l, --less-mode leagan de mhd phrintara do \"less\"\n" #~ " -n, --avoid-wraps n bain fad as rims thar lnte nua\n" #~ " -p, --printer muinbhuail, mar le printir\n" #~ msgid "" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -v, --version print program version then exit\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ " -s, --statistics taispein lon na bhfocal scriosta, " #~ "ionsite, srl\n" #~ " -t, --terminal bain sid as termcap do theirminil\n" #~ " -v, --version taispein leagan an romhchlir agus scoir\n" #~ " -w, --start-delete=TEAGHRN marcil tosach an tsleachta scriosta\n" #~ " -x, --end-delete=TEAGHRN marcil deireadh an tsleachta scriosta\n" #~ " -y, --start-insert=TEAGHRN marcil tosach an tsleachta ionsite\n" #~ " -z, --end-insert=TEAGHRN marcil deireadh an tsleachta ionsite\n" #~ msgid "Unknown system error" #~ msgstr "Earrid anaithnid chrais" #~ msgid "memory exhausted" #~ msgstr "cuimhne dithe" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Is riachtanach le rogha ghearr aon argint at riachtanach leis an rogha " #~ "fhada.\n" #~ " -C, --copyright taispein cipcheart agus scoir\n" #~ " -K, --no-init-term mar -t, ach gan teaghrin termcap init/" #~ "term\n" #~ " -V, --version taispein leagan agus scoir\n" #~ " -1, --no-deleted cuir cosc ar aschur d'fhocail scriosta\n" #~ " -2, --no-inserted cuir cosc ar aschur d'fhocail ionsite\n" #~ " -3, --no-common cuir cosc ar aschur d'fhocail coitianta\n" #~ " -a, --auto-pager sid brabhsla leathanach go " #~ "huathoibroch\n" #~ " -h, --help taispein an chabhair seo\n" #~ " -i, --ignore-case srtil litreacha beaga le ceannlitreacha\n" #~ " -l, --less-mode leagan de mhodh phrintara do \"less\"\n" #~ " -n, --avoid-wraps n bain fad as rims thar lnte nua\n" #~ " -p, --printer muinbhuail, mar le printir\n" #~ " -s, --statistics taispein lon na bhfocal scriosta, " #~ "ionsite, srl\n" #~ " -t, --terminal bain sid as termcap do theirminil\n" #~ " -w, --start-delete=TEAGHRN marcil tosach de phirt scriosta\n" #~ " -x, --end-delete=TEAGHRN marcil deireadh de phirt scriosta\n" #~ " -y, --start-insert=TEAGHRN marcil tosach de phirt ionsite\n" #~ " -z, --end-insert=TEAGHRN marcil deireadh de phirt ionsite\n" wdiff-1.2.1/po/quot.sed0000644000000000000000000000023111744500044011577 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g wdiff-1.2.1/po/it.gmo0000644000000000000000000003760412116513226011250 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""]>$K$9$?"% b%o%%$%7%1%51&Bg&)&%&'&)"'EL'D'E'F(Hd(D(9(H,)%u)G):)**GI*E*D*/+?L+?+$+9+I+,Cu,C,5,A3-Au-A-?-.9.?h.K.Q.4F/F{/8/-/>)0Fh0F0E0G<1F1812202L2d2)|2$220213J3M3k3|3433L34(4(?4 h4t4?4[5'6.8!8@9D9a9@99-9-:A3:@u:+:5:;%.;T;&r;7;);';#<<2<)< ==>=7|=(==-=$>><>A{>>,W?_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-09-25 10:49+0100 Last-Translator: Marco Colombo Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formattazione dell'output: Modi di operazione: Opzioni di controllo delle parole: Scritto da Franois Pinard . Scritto da Wayne Davison . --help stampa questo aiuto ed esce --version stampa la versione del programma ed esce %d %.0f%% cambiata %d %.0f%% cambiate %d %.0f%% comune %d %.0f%% comuni %d %.0f%% rimossa %d %.0f%% rimosse %d %.0f%% inserita %d %.0f%% inserite -0, --debugging stampa diversi dettagli su quanto sta succedendo -1, --no-deleted inibisce l'output delle parole rimosse -2, --no-inserted inibisce l'output delle parole inserite -3, --no-common inibisce l'output delle parole in comune -=, --use-equals usa "=" al posto di spazi in formato unificato -A, --auto-pager chiama automaticamente un impaginatore -C, --copyright mostra il copyright ed esce -O, --item-regexp=REGEXP confronta gli elementi in base alla REGEXP -P uguale a -p -S, --string[=STRINGA] prendi nota della STRINGA scelta dall'utente -T, --initial-tab usa tabulazioni invece di spazi -U uguale a -p e -u -V, --show-links fornisci il nome del file e i numeri di riga -W, --word-mode confronta le parole invece che le righe -a, --auto-pager chiama automaticamente un impaginatore -c, --context-diffs crea diff contestuali -d, --diff-input usa una diff unificata come input -e, --echo-comments riporta commenti sullo standard error -h (ignorato) -h, --help stampa questo aiuto ed esce -i, --ignore-case ignora differenze tra maiuscole e minuscole -k, --less-mode variante del modo di stampa di "less" -l, --less-mode variante del modo di stampa di "less" -l, --paginate impagina l'output con "pr" -m, --avoid-wraps non estende i campi oltre i newline -n, --avoid-wraps non estende i campi oltre i newline -o, --old-diffs crea in ogni caso diff in vecchio stile -o, --printer sovraimponi come per le stampanti -p, --patch-format genera formato patch -p, --printer sovraimponi come per le stampanti -q, --quiet inibilsce il messaggio di apertura di "mdiff" -s, --statistics riporta il numero di parole rimosse, inserite, ecc. -s, --strip-comments togli le righe di commento -t, --expand-tabs espandi le tabulazioni in spazi nell'output -t, --terminal usa termcap come terminale -u, --unidiffs crea diff unificate -v, --verbose riporta alcune statistiche su stderr -v, --version stampa la versione del programma ed esce -w, --start-delete=STRINGA marcatore d'inizio della regione rimossa -x, --end-delete=STRINGA marcatore di fine della regione rimossa -y, --start-insert=STRINGA marcatore d'inizio della regione inserita -z, --end-insert=STRINGA marcatore di fine della regione inserita -z, --terminal use termcap come terminale %d gruppo, %d gruppi,, %d file, %d file %d elemento %d elementi %d membro %d membri %d membro, %d membri, %d sovrapposizione %d sovrapposizioni %s (per l'espressione regolare `%s')%s: %d parola%s: %d parole%s: programma di input terminato dal segnale %d %s: programma di output terminato dal segnale %d " , %d elemento , %d elementi , raggruppamento, fatto Se nessun FILE indicato, leggi lo standard input. Apertura di "%sArgomenti obbligatori per le opzioni lunghe lo sono anche per quelle corte. Letto riepilogo:Lettura di %s in corsoSegnalare i bug a . OrdinamentoOrdinamento dei membriThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Questo software libero; si veda il sorgente per le condizioni di copiatura. NON c' alcuna garanzia; neppure di COMMERCIABILIT o IDONEIT AD UNO SCOPO PARTICOLARE. Questo programma riporta anche come sarebbe stato possibile chiamare "mdiff" direttamente. Questo programma software libero; potete redistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation; o la versione 3, o (a vostra scelta) ogni versione successiva. Questo programma distribuito con la speranza che possa essere utile, ma SENZA ALCUNA GARANZIA; anche senza la garanzia implicita di COMMERCIABILIT o di IDONEIT AD UNO SCOPO PARTICOLARE. Si consulti la GNU General Public License per maggiori dettagli. Dovreste aver ricevuto una copia della GNU General Public License con questo questo programma. In caso contrario, consultare . Usare "%s --help" per ulteriori informazioni. Uso: %s [OPZIONE]... FILE1 FILE2 Uso: %s [OPZIONE]... FILE1 FILE2 o: %s -d [OPZIONE]... [FILE] Uso: %s [OPZIONE]... [FILE] Uso: %s [OPZIONE]... [FILE]... Se nessun FILE indicato, o FILE -, leggi lo standard input. Riepilogo di lavoro:impossibile usare -t, termcap non disponibileimpossibile usare -z, termcap non disponibileintestazione "new"' mancante nella diff contestuale alla riga %ldintestazione "old" mancante nella diff contestuale alla riga %ldimpossibile accedere al database di termcapimpossibile trovare un nome per la diff alla riga %lddirectory non gestiteerrore nella redirezione dello streamesecuzione di %s non riuscitaopzione %s ignorata (non implementata)intestazione di diff unificata non valida alla riga %lddiff contestuale malformata alla riga %lddiff unificata malformata alla riga %ldmdiff - Analizza diversi file, ricerca sequenze simile, e produce un elenco, possibilmente dettagliato, di differenze e similarit. argomenti di file mancantinon esiste alcuna directory temporanea appropriatasolo un file pu essere lo standard inputsolo un nome di file permessole opzioni -123RSYZ hanno senso solo quando ci sono due inputscegli un terminale usando la variabile d'ambiente TERMil tipo di terminale "%s" non definitotroppi argomenti di fileusare "%s --help" per ulteriori informazioni impossibile aprire "%s"unify - Trasforma diff contestuali in unificate, o viceversa. wdiff - Confronta la parole in due file e riporta le differenze. wdiff - Calcola le differenze tra le parole lanciando internamente "mdiff -W". Questo programma esiste solo per gestire la precedente sintassi di wdiff. unione di parole solo per due file (per ora)wdiff-1.2.1/po/vi.gmo0000644000000000000000000004312712116513226011247 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!("""m$V;%C%Q% (&6&U&,n&:&2&H 'QR'9'#'+(?.(On(=(>(9;)iu)B)S"*Wv***M*PG+1+j+L5,B,N,Y-Jn-)-L-S0.J.H.B/V[/J/R/HP0A0F0D"1]g101Z1UQ2P2C2T<3K3I3L'4Jt4V45(5F5#d5#5'5&55M6Na66666V6M7ve777>7>8"P8s8]p99R<7A=gy=-=0>o@>>@>K ?KV?I?;?8(@a@+~@@C@S A:]A?AAB/B=B*CEBC;C=C"DQ%DwDDOEaEJ F_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff-1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-26 07:44+0700 Last-Translator: Trần Ngọc Quân Language-Team: Vietnamese Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=1; X-Generator: LocFactoryEditor 1.8 X-Poedit-Language: Vietnamese X-Poedit-Country: VIET NAM X-Poedit-SourceCharset: utf-8 Tác quyền © năm 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 của Tổ Chức Phần Mềm Tự Do. Tác quyền (C) năm 1992, 1997, 1999, 2010 của Tổ Chức Phần Mềm Tự Do. Tác quyền © năm 1994, 1997 Tổ Chức Phần Mềm Tự Do. Bản quyền (C) năm 1997, 1998, 1999 của Tổ Chức Phần Mềm Tự Do. Gỡ rối: Định dạng kết xuất: Chế độ thao tác: Tuỳ chọn về chế độ từng từ: Viết bởi Franc,ois Pinard . Tác giả: Wayne Davison . --help hiển thị trợ giúp này, sau đó thoát --version hiển thị phiên bản đang chạy, sau đó thoát %d %.0f%% đã thay đổi %d %.0f%% đã thay đổi %d %.0f%% chung %d %.0f%% chung %d %.0f%% đã xóa %d %.0f%% đã xóa %d %.0f%% được chèn vào %d %.0f%% được chèn vào -0, --debugging xuất thông tin chi tiết về tiến trình gỡ rối -1, --no-deleted thu hồi xuất từ bị xoá -2, --no-inserted thu hồi xuất từ bị chèn -3, --no-common thu hồi xuất từ chung -=, --use-equals thay thế khoảng cách bằng dấu bằng trong khác biệt kiểu unidiff -A, --auto-pager tự động gọi trình dàn trang -C, --copyright hiển thị thông tin tác quyền, sau đó thoát -O, --item-regexp=BTCQ so sánh các mục tùy theo biểu thức chính quy này -P giống với -p -S, --string[=CHUỖI] lưu ý đến chuỗi của người dùng khác -T, --initial-tab xuất cột tab thay cho khoảng cách đầu tiên -U giống với -p và -u -V, --show-links phụ chú cũng chứa tham chiếu đến tập tin và số thứ tự dòng -W, --word-mode so sánh theo từng từ thay cho toàn dòng -a, --auto-pager tự động gọi trình dàn trang -c, --context-diffs ép buộc kết xuất ra khác biệt ngữ cảnh -d, --diff-input đầu vào là một khác biệt thống nhất (unidiff) -e, --echo-comments xuất ghi chú ra đầu ra lỗi tiêu chuẩn -h (bị bỏ qua) -h, --help hiển thị trợ giúp này, sau đó thoát -i, --ignore-case so sánh thì không phân biệt chữ HOA/thường -k, --less-mode biến dạng chế độ máy in cho "less" -l, --less-mode thay đổi chế độ máy in cho "less" -l, --paginate đánh số trang kết xuất qua `pr' -m, --avoid-wraps không nên kéo dài trường qua ký tự dòng mới -n, --avoid-wraps không nên xuống dòng cho các trường -o, --old-diffs vẫn còn xuất khác biệt kiểu cũ (bất chấp) -o, --printer gạch đè lên chữ, như trên máy in -p, --patch-format xuất định dạng của miếng vá -p, --printer in chồng lên chữ như trên máy in -q, --quiet thu hồi thông điệp gọi `mdiff' -s, --statistics thống kê xem bao nhiêu từ bị xoá, được chèn v.v.. -s, --strip-comments bước dòng ghi chú -t, --expand-tabs mở rộng cột tab ra các khoảng cách trong kết xuất -t, --terminal dùng termcap cho trình bày trên thiết bị cuối -u, --unidiffs ép buộc kết xuất ra khác biệt kiểu unidiff -v, --verbose thông báo vài thống kê trên stderr -v, --version hiển thị phiên bản đang chạy sau đó thoát -w, --start-delete=CHUỖI chuỗi đánh dấu đầu của vùng xoá -x, --end-delete=CHUỖI chuỗi đánh dấu cuối của vùng xoá -y, --start-insert=CHUỖI chuỗi đánh dấu đầu của vùng chèn -z, --end-insert=CHUỖI chuỗi đánh dấu cuối của vùng chèn -z, --terminal dùng termcap như trên trình bày thiết bị cuối %d bó, %d bó, %d tập tin, %d tập tin, %d mục tin %d mục tin %d thành viên %d thành viên %d thành viên, %d thành viên, %d đè lên nhau %d đè lên nhau %s (cho biểu thức chính quy `%s')%s: %d từ%s: %d từ%s: đầu vào của chương trình bị chấm dứt bởi tín hiệu %d %s: kết xuất của chương trình bị chấm dứt bởi tín hiệu %d ' , %d mục tin , %d mục tin , đang xếp nhóm, hoàn tất Nếu TẬP_TIN không được chỉ ra thì đọc đầu vào tiêu chuẩn stdin. Đang khởi chạy `%sMọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn ngắn. Đọc tóm tắt:Đang đọc %sHãy thông báo lỗi cho địa chỉ . Đang sắp xếpĐang sắp xếp các bộ phạnĐây là phần mềm tự do; hãy xem mã nguồn để tìm thấy điều kiện sao chép. KHÔNG CÓ BẢO HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý KHẢ NĂNG BÁN HAY KHẢ NĂNG LÀM ĐƯỢC VIỆC DỨT KHOÁT. Chương trình này cũng diễn tả phương pháp có thể gọi trực tiếp `mdiff'. Chương trình này là phần mềm tự do; bạn có thể phát hành lại nó và/hoặc sửa đổi nó với điều kiện của Giấy Phép Công Cộng GNU như được xuất bản bởi Tổ Chức Phần Mềm Tự Do; hoặc phiên bản 3 của Giấy Phép này, hoặc (tùy chọn) bất kỳ phiên bản sau nào. Chương trình này được phát hành vì mong muốn nó có ích, nhưng KHÔNG CÓ BẢO HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý KHẢ NĂNG BÁN HAY KHẢ NĂNG LÀM ĐƯỢC VIỆC DỨT KHOÁT. Xem Giấy Phép Công Cộng GNU để biết thêm chi tiết. Bạn đã nhận một bản sao của Giấy Phép Công Cộng GNU cùng với chương trình này; nếu không, hãy xem . Hãy thử chạy câu lệnh trợ giúp `%s --help' để xem thêm thông tin. Sử dụng: %s [TÙY_CHỌN]... TẬP_TIN1 TẬP_TIN2 Sử dụng: %s [TÙY_CHỌN]... TẬP_TIN_1 TẬP_TIN_2 hoặc: %s -d [TÙY_CHỌN]... [TẬP_TIN] Sử dụng: %s [TÙY_CHỌN]... [TẬP_TIN] Sử dụng: %s [TÙY_CHỌN]... [TẬP_TIN]... Không có TẬP_TIN hoặc khi TẬP_TIN là - thì đọc đầu vào thiết bị vào stdin tiêu chuẩn. Tóm tắt công việc:không thể dùng tùy chọn -t vì termcap không sẵn sàngkhông thể dùng tùy chọn -z, termcap hiện thời không sẵn dùngkhác biệt ngữ cảnh còn thiếu đầu trang `mới' trên dòng %ldkhác biệt ngữ cảnh còn thiếu đầu trang `cũ' trên dòng %ldkhông thể truy cập đến cơ sở dữ liệu termcapkhông tìm thấy tên cho khác biệt trên dòng %ldkhông hỗ trợ thư mụclỗi chuyển hướng luồng dữ liệulỗi khi thực hiện %sđang bỏ qua tuỳ chọn %s (chức năng chưa được viết)gặp đầu trang khác biệt đã hợp nhất không hợp lệ trên dòng %ldgặp khác biệt ngữ cảnh dạng sai trên dòng %ldgặp khác biệt đã hợp nhất dạng sai trên dòng %ldmdiff — xử lý nhiều tập tin và tìm kiếm các chuỗi tương tự, sau đó xuất danh sách có thể chi tiết chứa các mục khác biệt và tượng tự. thiếu đối số tập tinkhông có thư mục tạm thời thích hợpchỉ cho phép một tập tin là đầu vào tiêu chuẩncho phép chỉ một tên tập tin thôinhững tùy chọn -123RSYZ chỉ có nghĩa khi có hai đầu vàochọn thiết bị cuối dùng biến môi trường TERMthiết bị cuối kiểu `%s' chưa được định nghĩaquá nhiều đối số tập tinhãy thử chạy câu lệnh trợ giúp `%s --help' để xem thêm thông tin không thể mở `%s'unify — Chuyển đổi dữ liệu khác biệt ngữ cảnh thành dữ liệu khác biệt hợp nhất, hay ngược lại. wdiff — So sánh các từ trong hai tập tin và thông báo khác biệt. wdiff — so sánh theo mỗi từ bằng cách khởi chạy nội bộ `mdiff -W'. Chương trình này tồn tại chính để hỗ trợ cú pháp hơi cũ `wdiff'. chỉ hòa trộn từ cho hai tập tin (ít nhất là đến lúc này)wdiff-1.2.1/po/sv.gmo0000644000000000000000000003750412116513226011263 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""\:$J$8$>%Z%i%%%8%1%;&>O&*&-&-&*'@@'5'4'6'N#(=r(9(F(&1)9X)I)-)E *?P*=*A*>+=O+%+<+B+@3,@t,I,E,;E-T-<-6.>J.I.I.1/MO/=/;/F0>^0R0Q0OB1N1B1$2<2P2f22#2!22&2&3F3I3 a3m3u3 3P33 3|4444=J5 5/8&8J9"K9%n9/99696 :3C:6w: :-::;0;)G;-q;';!;;t<)<"<<?<71=$i==/==D==0>n>??_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-30 09:07+0200 Last-Translator: Jan Djärv Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1997, 1998, 1999 Free Software Foundation, Inc. Felsökning: Formatera resultat: Arbetslägen: Flaggor för ordläge: Skriven av François Pinard . Skriven av Wayne Davison . --help visa denna hjälptext och avsluta --version visa versionsinformation och avsluta %d %.0f %% ändrad %d %.0f %% ändrade %d %.0f %% gemensam %d %.0f %% gemensamma %d %.0f %% borttagen %d %.0f %% borttagna %d %.0f %% tillagd %d %.0f %% tillagda -0, --debugging skriv ut många detaljer om vad som händer -1, --no-deleted visa inte borttagna ord -2, --no-inserted visa inte tillagda ord -3, --no-common visa inte gemensamma ord -=, --use-equals ersätt mellanslag med likhetstecken i enad skillnad -A, --auto-pager ge resultatet till en sidvisare -C, --copyright skriv copyright och avsluta -O, --item-regexp=REGEXP jämför poster som definieras av REGEXP -P samma som -p -S, --string[=STRÄNG] ta även hänsyn till STRÄNG -T, --initial-tab skriv TAB instället för inledande mellanslag -U samma som -p och -u -V, --show-links ange fil- och radreferenser i annoteringar -W, --word-mode jämför ord istället för rader -a, --auto-pager ge resultatet till en sidvisare -c, --context-diffs visa resultatet som sammanhangsskillnad -d, --diff-input använd enad skillnad som indata -e, --echo-comments skriv kommentarer till standard fel -h (ignorerad) -h, --help skriv denna hjälp och avsluta -i, --ignore-case ignorera skiftläge vid jämförelse -k, --less-mode speciell variant av -o för "less" -l, --less-mode variation av --printer för "less" -l, --paginate skicka resultatet genom "pr" för sidindelning -m, --avoid-wraps låt inte fält löpa över flera rader -n, --avoid-wraps utöka inte fält genom nyrad -o, --old-diffs visa under alla omständigheter skillnader på gammal stil -o, --printer dubbelskrift som för skrivare -p, --patch-format generera format för "patch" -p, --printer överskrivning som för skrivare -q, --quiet undertryck meddelandet för "mdiff"-anropet -s, --statistics visa hur många ord borttagna, insatta etc. -s, --strip-comments ta bort kommentarsrader -t, --expand-tabs ersätt tabulatortecken med mellanslag i reultatet -t, --terminal använd termcap för terminaler -u, --unidiffs visa resultatet som enad skillnad -v, --verbose rapportera en del statistik på standard fel -v, --version skriv programversion och avsluta -w, --start-delete=STRÄNG sträng som markerar början av en borttagen region -x, --end-delete=STRÄNG sträng som markerar slutet av en borttagen region -y, --start-insert=STRÄNG sträng som markerar början av en insatt region -z, --end-insert=STRÄNG sträng som markerar slutet av en insatt region -z, --terminal använd termcap för att markera ord %d grupp, %d grupper, %d fil, %d filer, %d post %d poster %d medlem %d medlemmar %d medlem, %d medlemmar, %d överlapp %d överlappningar %s (för reguljärt uttryck "%s")%s: %d ord%s: %d ord%s: indataprogram dödat av signal %d %s: utdataprogram dödat av signal %d " , %d post , %d poster , grupperar, klar Utan FIL, läs standard in. Startar "%sObligatoriska argument för långa flaggor är obligatoriska för korta flaggor Lässummering:Läser %sRapportera fel till Rapportera fel eller synpunkter på översättningen till . SorterarSorterar medlemmarDetta är fri programvara; se källkoden för kopieringsvillkor. Det finns INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Detta program talar även om hur "mdiff" kan anropas direkt. Följande text är en informell översättning som enbart tillhandahålls i informativt syfte. För alla juridiska tolkningar gäller den engelska originaltexten. Detta program är fri programvara. Du kan distribuera det och/eller modifiera det under villkoren i GNU General Public License, publicerad av Free Software Foundation, antingen version 2 eller (om du så vill) någon senare version. Detta program distribueras i hopp om att det ska vara användbart, men UTAN NÅGON SOM HELST GARANTI, även utan den underförstådda garantin om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public License för ytterligare information. Du bör ha fått en kopia av GNU General Public License tillsammans med detta program. Om inte, se . Försök med "%s --help" för mer information. Användning: %s [FLAGGA]... FIL1 FIL2 Användning: %s [FLAGGA]... FIL1 FIL2 eller: %s -d [FLAGGA]... [FIL] Användning: %s [FLAGGA]... [FIL] Användning: %s [FLAGGA]... [FIL]... Utan FIL eller om FIL är -, läs standard in. Arbetssummering:kan inte använda -t, termcap finns inte tillgängligtkan inte använda -z, termcap finns inte tillgängligtsammanhangsskillnad saknar "nytt" huvud på rad %ldsammanhangsskillnad saknar "gammalt" huvud på rad %ldkan inte läsa termcap-databasenkan inte hitta ett namn för diff på rad %ldkataloger stöds intefel vid omdirigering av datakunde inte exekvera %signorerar flaggan %s (inte implementerad)ogiltigt huvud för enad skillnad på rad %ldkorrupt sammanhangsskillnad på rad %ldkorrupt enad skillnad på rad %ldmdiff - Läser flera filer och letar efter liknande sekvenser, därefter visas en möjligen detaljerad lista med skillnader och likheter. filargument saknasingen lämplig temporärkatalog existerarendast en fil kan vara standard inendast ett filnamn tillåtetflaggorna -123RSYZ är bara meningsfulla med två indatakällorvälj terminaltyp genom att sätta miljövariabeln TERMterminaltyp "%s" är inte definieradför många filargumentförsök med "%s --help" för mer information. kan inte öppna "%s"unify - Konvertera sammanhangsskillnad till enad, eller vice versa. wdiff - Jämför ord i två filer och rapportera skillnader. wdiff - Beräkna ordskillnader genom att internt köra "mdiff -W". Detta program finns huvudsakligen för att stödja den nu gamla "wdiff"-syntaxen. ordsammanslagning finns endast för två filer (än så länge)wdiff-1.2.1/po/Makefile.in.in0000644000000000000000000003744111744500575012612 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.18 GETTEXT_MACRO_VERSION = 0.18 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: check-macro-version all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. check-macro-version: @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC cannot be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo 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 stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$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; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # 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: wdiff-1.2.1/po/id.gmo0000644000000000000000000000530412116513226011220 00000000000000L9814>f   &?P<X99-3g?     (4H/ @ G       Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . -q, --quiet inhibit the `mdiff' call message %s (for regexp `%s')' , clustering, done Launching `%sReading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. Project-Id-Version: wdiff 0.5.93 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 21:22+0100 Last-Translator: Arif E. Nugroho Language-Team: Indonesian Language: id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 0.9.5 Copyright (c) 1994, 1997 Free Software Foundation, Inc. Ditulis oleh Francois Pinard . Ditulis oleh Wayne Davison . -q, --quiet halangi pesan pemanggilan `mdiff' %s (untuk regexp `%s')' , clustering, selesai Menjalankan `%sMembaca %sMengurutkanMengurutkan anggotaThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Coba `%s --help' untuk informasi lebih lanjut. mdiff - Mempelajari banyak file dan mencari urutan yang serupa, ia kemudian menghasilkan daftar rinci perbedaan dan persamaan. unify - Transformasi context diffs ke unidiff, atau sebaliknya. wdiff - Membandingkan kata dalam dua file dan melaporkan perbedaannya. wdiff - Menghitung perbedaan kata dengan secara internal menjalankan `mdiff -W'. Aplikasi ini ada hanya untuk mendukung sintaks yang sekarang sudah ditinggalkan `wdiff'. wdiff-1.2.1/po/uk.po0000644000000000000000000006636312116513226011113 00000000000000# Translation of wdiff to Ukrainian # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # # Yuri Chornoivan , 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-25 22:47+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.5\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" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (для формального виразу «%s»)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "стандартним джерелом даних може бути лише один файл" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "каталоги не підтримуються" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Читання %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d пункт\n" msgstr[1] ", %d пункти\n" msgstr[2] ", %d пунктів\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Підсумки читання:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d файл," msgstr[1] " %d файли," msgstr[2] " %d файлів," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d пункт\n" msgstr[1] " %d пункти\n" msgstr[2] " %d пунктів\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Впорядкування" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", групування" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", виконано\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Впорядкування елементів" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Підсумки обробки:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d група," msgstr[1] " %d групи," msgstr[2] " %d груп," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d елемент\n" msgstr[1] " %d елементи\n" msgstr[2] " %d елементів\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d елемент," msgstr[1] " %d елементи," msgstr[2] " %d елементів," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d перекриття\n" msgstr[1] " %d перекриття\n" msgstr[2] " %d перекриттів\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "вибір термінала за допомогою змінної середовища TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "не вдалося отримати доступ до бази даних termcap" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "тип термінала «%s» не визначено" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d слово" msgstr[1] "%s: %d слова" msgstr[2] "%s: %d слів" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% спільні" msgstr[1] " %d %.0f%% спільні" msgstr[2] " %d %.0f%% спільні" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% вилучено" msgstr[1] " %d %.0f%% вилучено" msgstr[2] " %d %.0f%% вилучено" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% змінено" msgstr[1] " %d %.0f%% змінено" msgstr[2] " %d %.0f%% змінено" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% вставлено" msgstr[1] " %d %.0f%% вставлено" msgstr[2] " %d %.0f%% вставлено" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Виконайте команду «%s --help», щоб дізнатися більше.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff виконує обробку декількох файлів і знаходить подібні послідовності " "символів, а потім\n" "створює докладні списки відмінностей і подібностей.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Використання: %s [ПАРАМЕТР]... [ФАЙЛ]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Режими обробки:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (проігноровано)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose звітувати щодо статистичних даних до stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr "" " --help показати ці довідкові дані і завершити роботу\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr "" " --version показати дані щодо версії програми і завершити " "роботу\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Форматування результатів:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab додавати TAB замість початкового пробілу\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" " -l, --paginate поділити виведені дані на сторінки за допомогою " "«pr»\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=РЯДОК] звернути увагу на інший РЯДОК користувача\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links додати посилання на файли і рядки до анотацій\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs перетворити символи табуляції у виведених даних на " "пробіли\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Зневаджування:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging показувати докладні повідомлення щодо дій, які " "виконуються\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Параметри режиму слів:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr "" " -1, --no-deleted блокувати виведення даних щодо вилучених слів\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" " -2, --no-inserted блокувати виведення даних щодо вставлених слів\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr "" " -3, --no-common блокування виведення даних щодо спільних слів\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager автоматично поділяти на сторінки\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode різновид режиму принтера для \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps не розгортати поля додаванням символів розбиття " "на рядки\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr "" " -o, --printer надкреслювати дані, подібно форматування для " "друку\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal використовувати termcap, подібно до виведення " "даних на термінал\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=ФОРМ_ВИР порівняти дані відповідно до вказаного " "ФОРМ_ВИР\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode порівнювати слова, а не рядки\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "" "Якщо не вказано ФАЙЛ або вказано значення -, дані буде прочитано зі " "стандартного джерела вхідних даних.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Про вади слід повідомляти на адресу .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "пропущено параметр %s (обробку цього параметра не реалізовано)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "не можна використовувати -z, не виявлено termcap" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "об’єднання за словами реалізовано лише для пар файлів (поки що)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Авторські права належать Free Software Foundation, Inc., 1992, 1997, 1998, " "1999, 2010\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Це програмне забезпечення є вільним, умови копіювання викладено у його " "початкових кодах.\n" "Умовами ліцензування програми НЕ передбачено жодних гарантій, зокрема " "гарантій працездатності\n" "або придатності для певної мети.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Автором програми є François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "" "параметри -123RSYZ мають сенс, лише якщо використано два файли вхідних даних" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "помилка під час спроби переспрямування потоку даних" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "не вдалося виконати %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "не вдалося виявити назву для diff у рядку %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "виконайте команду «%s --help», щоб дізнатися більше.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify — програма для перетворення контекстних даних відмінностей на " "уніфіковані дані, і навпаки.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Використання: %s [ПАРАМЕТР]... [ФАЙЛ]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr "" " -c, --context-diffs виводити дані у форматі контекстних відмінностей\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments дублювати коментарі до стандартного виводу помилок\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs виводити дані у старому форматі diff, без " "врахування їхнього характеру\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format створити дані у форматі латки\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P те саме, що і -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments вилучати рядки коментарів\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs виводити дані у форматі unidiff\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U те саме, що -p і -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals замінити пробіли символами рівності у даних " "unidiff\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "" "Якщо ФАЙЛ не вказано, дані буде прочитано зі стандартного джерела вхідних " "даних.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "не вдалося відкрити «%s»" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "можна вказувати лише одну назву файла" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Авторські права належать Free Software Foundation, Inc., 1994, 1997\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Створено Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "некоректний заголовок даних уніфікованих відмінностей, рядок %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "помилка форматування уніфікованих даних відмінностей у рядку %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "у даних контекстних відмінностей немає заголовка «old» у рядку %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "помилкове форматування даних контекстних відмінностей у рядку %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "у даних контекстних відмінностей немає заголовка «new» у рядку %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "не виявлено відповідного каталогу тимчасових даних" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: виконання програми-джерела даних було припинено сигналом %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: програму-отримувач даних було зупинено сигналом %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Ця програма є вільним програмним забезпеченням; ви можете поширювати її \n" "і/або змінювати її за умов дотримання GNU General Public License у тому \n" "вигляді, у якому її оприлюднено Free Software Foundation; версії 3 цієї \n" "ліцензії, або (за потреби) будь-якої пізнішої версії.\n" "\n" "Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ-\n" "ЯКИХ ГАРАНТІЙ; навіть без очевидної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ або \n" "ПРИДАТНОСТІ ДЛЯ ЯКОЇСЬ МЕТИ. Докладніше про це ви можете дізнатися з \n" "GNU General Public License.\n" "Разом з цією програмою ви маєте отримати копію GNU General Public License. \n" "Якщо ви її не отримали, зверніться за адресою , щоб дізнатися про подальші дії.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff — програма для порівняння слів у двох файлах і створення звітів щодо " "відмінностей.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Використання: %s [ПАРАМЕТР]... ФАЙЛ1 ФАЙЛ2\n" " або: %s -d [ПАРАМЕТР]... [ФАЙЛ]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Обов’язкові аргументи для довгих форм запису параметрів є обов’язковими і " "для скорочених форм.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr "" " -C, --copyright показати дані щодо авторських прав і завершити " "роботу\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager автоматично поділяти на сторінки\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input використовувати для виведення єдиний файл " "уніфікованих даних відмінностей\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr "" " -h, --help показати ці довідкові дані і завершити роботу\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case не зважати не регістр літер під час порівняння\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode різновид режиму принтера для \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps не розгортати поля додаванням символів розбиття " "на рядки\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr "" " -p, --printer виводити над заміненими символами, як на " "принтері\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics повідомити про кількість вилучених слів, " "доданих слів тощо\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal використовувати termcap, подібно до виведення " "даних на термінал\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version показати дані щодо версії програми і завершити " "роботу\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=РЯДОК рядок, який позначатиме початок вилученого " "фрагмента\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=РЯДОК рядок, який позначатиме завершення вилученого " "фрагмента\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=РЯДОК рядок, який позначатиме початок доданого " "фрагмента\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=РЯДОК рядок, який позначатиме завершення доданого " "фрагмента\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "не можна використовувати -t, не виявлено termcap" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Авторські права належать Free Software Foundation, Inc.,\n" "1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "занадто багато аргументів-назв файлів" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "не вказано аргументів-назв файл" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Авторські права належать Free Software Foundation, Inc., 1997, 1998, 1999\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff — програма для визначення відмінностей у словах текстів за допомогою " "команди «mdiff -W».\n" "Основним призначенням цієї програми є підтримка застарілих синтаксичних " "конструкцій «wdiff».\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Використання: %s [ПАРАМЕТР]... ФАЙЛ1 ФАЙЛ2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet блокувати повідомлення щодо виклику «mdiff»\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Крім того, ця програма повідомляє про те, у який спосіб можна викликати " "«mdiff» безпосередньо.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Запуск «%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "»\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Резюме читання: %d файлів, %d пунктів\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Резюме обробки: %d груп, %d елементів\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Резюме обробки: %d груп, %d елементів, %d перекриття\n" wdiff-1.2.1/po/nb.gmo0000644000000000000000000000374012116513226011225 00000000000000H8I1  &?N<~7J1   &Aa<    Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: GNU wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 17:43+0100 Last-Translator: Eivind Tagseth Language-Team: Norwegian Bokmaal Language: nb MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Skrevet av Franois Pinard . Skrevet av Wayne Davison . %s (for regulrt uttrykk %s), klynger, ferdig Leser %sSortererSorterer medlemmerDette er fri programvare; se kildekoden for kopieringsbetingelser. Det er INGEN garanti; ikke engang for SALGBARHET eller EGNETHET FOR NOEN SPESIELL OPPGAVE. Prv %s --help for mer informasjon. mdiff - Studerer flere filer og sker etter liknende sekvenser. Deretter produseres muligens detaljerte lister med forskjeller og likheter. unift - Transformer kontekstdiffer til unidiffer, eller motsatt. wdiff - Sammenlikn ord i to filer og rapporter forskjeller. wdiff-1.2.1/po/it.po0000644000000000000000000005256712116513226011111 00000000000000# Italian messages for wdiff. # Copyright (C) 2005, 2008, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Marco Colombo , 2005, 2008, 2010. # msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-09-25 10:49+0100\n" "Last-Translator: Marco Colombo \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (per l'espressione regolare `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "solo un file pu essere lo standard input" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "directory non gestite" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lettura di %s in corso" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elemento\n" msgstr[1] ", %d elementi\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Letto riepilogo:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d file" msgstr[1] ", %d file" #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d elemento\n" msgstr[1] " %d elementi\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Ordinamento" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", raggruppamento" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", fatto\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Ordinamento dei membri" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Riepilogo di lavoro:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d gruppo," msgstr[1] " %d gruppi," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d membro\n" msgstr[1] " %d membri\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d membro," msgstr[1] " %d membri," # FIXME #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d sovrapposizione\n" msgstr[1] " %d sovrapposizioni\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "scegli un terminale usando la variabile d'ambiente TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "impossibile accedere al database di termcap" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "il tipo di terminale \"%s\" non definito" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d parola" msgstr[1] "%s: %d parole" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% comune" msgstr[1] " %d %.0f%% comuni" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% rimossa" msgstr[1] " %d %.0f%% rimosse" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% cambiata" msgstr[1] " %d %.0f%% cambiate" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% inserita" msgstr[1] " %d %.0f%% inserite" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Usare \"%s --help\" per ulteriori informazioni.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Analizza diversi file, ricerca sequenze simile, e produce un " "elenco,\n" "possibilmente dettagliato, di differenze e similarit.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Uso: %s [OPZIONE]... [FILE]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Modi di operazione:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignorato)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose riporta alcune statistiche su stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help stampa questo aiuto ed esce\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version stampa la versione del programma ed esce\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formattazione dell'output:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab usa tabulazioni invece di spazi\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate impagina l'output con \"pr\"\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" " -S, --string[=STRINGA] prendi nota della STRINGA scelta dall'utente\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links fornisci il nome del file e i numeri di riga\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs espandi le tabulazioni in spazi nell'output\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging stampa diversi dettagli su quanto sta succedendo\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opzioni di controllo delle parole:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted inibisce l'output delle parole rimosse\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted inibisce l'output delle parole inserite\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr "" " -3, --no-common inibisce l'output delle parole in comune\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager chiama automaticamente un impaginatore\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variante del modo di stampa di \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps non estende i campi oltre i newline\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer sovraimponi come per le stampanti\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal use termcap come terminale\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP confronta gli elementi in base alla REGEXP\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode confronta le parole invece che le righe\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Se nessun FILE indicato, o FILE -, leggi lo standard input.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Segnalare i bug a .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "opzione %s ignorata (non implementata)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "impossibile usare -z, termcap non disponibile" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "unione di parole solo per due file (per ora)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "\n" "Questo software libero; si veda il sorgente per le condizioni di " "copiatura.\n" "NON c' alcuna garanzia; neppure di COMMERCIABILIT o IDONEIT AD UNO\n" "SCOPO PARTICOLARE.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Scritto da Franois Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "le opzioni -123RSYZ hanno senso solo quando ci sono due input" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "errore nella redirezione dello stream" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "esecuzione di %s non riuscita" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "impossibile trovare un nome per la diff alla riga %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "usare \"%s --help\" per ulteriori informazioni\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Trasforma diff contestuali in unificate, o viceversa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Uso: %s [OPZIONE]... [FILE]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs crea diff contestuali\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments riporta commenti sullo standard error\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs crea in ogni caso diff in vecchio stile\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format genera formato patch\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P uguale a -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments togli le righe di commento\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs crea diff unificate\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U uguale a -p e -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals usa \"=\" al posto di spazi in formato unificato\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Se nessun FILE indicato, leggi lo standard input.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "impossibile aprire \"%s\"" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "solo un nome di file permesso" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Scritto da Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "intestazione di diff unificata non valida alla riga %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "diff unificata malformata alla riga %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "intestazione \"old\" mancante nella diff contestuale alla riga %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "diff contestuale malformata alla riga %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "intestazione \"new\"' mancante nella diff contestuale alla riga %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "non esiste alcuna directory temporanea appropriata" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: programma di input terminato dal segnale %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: programma di output terminato dal segnale %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Questo programma software libero; potete redistribuirlo e/o modificarlo\n" "secondo i termini della GNU General Public License come pubblicata\n" "dalla Free Software Foundation; o la versione 3, o (a vostra scelta)\n" "ogni versione successiva.\n" "\n" "Questo programma distribuito con la speranza che possa essere utile,\n" "ma SENZA ALCUNA GARANZIA; anche senza la garanzia implicita di\n" "COMMERCIABILIT o di IDONEIT AD UNO SCOPO PARTICOLARE.\n" "Si consulti la GNU General Public License per maggiori dettagli.\n" "\n" "Dovreste aver ricevuto una copia della GNU General Public License con " "questo\n" "questo programma. In caso contrario, consultare .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Confronta la parole in due file e riporta le differenze.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Uso: %s [OPZIONE]... FILE1 FILE2\n" " o: %s -d [OPZIONE]... [FILE]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argomenti obbligatori per le opzioni lunghe lo sono anche per quelle corte.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright mostra il copyright ed esce\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager chiama automaticamente un impaginatore\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input usa una diff unificata come input\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help stampa questo aiuto ed esce\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case ignora differenze tra maiuscole e minuscole\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variante del modo di stampa di \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps non estende i campi oltre i newline\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer sovraimponi come per le stampanti\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics riporta il numero di parole rimosse, inserite, " "ecc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal usa termcap come terminale\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version stampa la versione del programma ed esce\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRINGA marcatore d'inizio della regione rimossa\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=STRINGA marcatore di fine della regione rimossa\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRINGA marcatore d'inizio della regione inserita\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRINGA marcatore di fine della regione inserita\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "impossibile usare -t, termcap non disponibile" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "troppi argomenti di file" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "argomenti di file mancanti" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Calcola le differenze tra le parole lanciando internamente \"mdiff -W" "\".\n" "Questo programma esiste solo per gestire la precedente sintassi di wdiff.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Uso: %s [OPZIONE]... FILE1 FILE2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet inibilsce il messaggio di apertura di \"mdiff" "\"\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Questo programma riporta anche come sarebbe stato possibile chiamare \"mdiff" "\"\n" "direttamente.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Apertura di \"%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "\"\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Letto sommario: %d file, %d elementi\n" # clusters: gruppi? #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Sommario di lavoro: %d gruppi, %d membri\n" # overlaps: sovrapposizioni? #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Sommario di lavoro: %d gruppi, %d membri, %d sovrapposizioni\n" #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term come -z, ma senza le stringhe init/term di " #~ "termcap\n" #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term come -t, ma senza le stringhe init/term di " #~ "termcap\n" wdiff-1.2.1/po/ca.po0000644000000000000000000014331712116513225011051 00000000000000# Catalan translation of wdiff. # Copyright © 2002, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Jordi Mallach , 2002, 2010. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.6.3\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-11-05 00:36+0100\n" "Last-Translator: Jordi Mallach \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (per a la expreg «%s»)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "només un fitxer pot ser l'entrada estàndar." #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "els directoris no estan suportats" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "S'està llegint %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elements\n" msgstr[1] ", %d elements\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d elements\n" msgstr[1] ", %d elements\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d elements\n" msgstr[1] ", %d elements\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "S'està ordenant" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", s'està agrupant" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", fet\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "S'estan ordenant els membres" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", s'està agrupant" msgstr[1] ", s'està agrupant" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d elements\n" msgstr[1] ", %d elements\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "seleccioneu un terminal mitjançant la variable d'entorn TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "no s'ha pogut accedir a la base de dades de termcap" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "el tipus de terminal «%s» no està definit." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d paraules" msgstr[1] "%s: %d paraules" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% comunes" msgstr[1] " %d %d%% comunes" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% suprimides" msgstr[1] " %d %d%% suprimides" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% canviades" msgstr[1] " %d %d%% canviades" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% inserides" msgstr[1] " %d %d%% inserides" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Proveu «%s --help» per a obtenir més informació.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Estudia múltiples fitxers i cerca sequències similars, i\n" "produeix llistes possiblement detallades de diferències i similituds.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Forma d'ús: %s [OPCIÓ]… [FITXER]…\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Modes d'operació:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (descartada)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose mostra algunes estadístiques en l'eixida d'error\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help mostra aquest missatge d'ajuda i ix\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version mostra la versió del programa i ix\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Format de l'eixida:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab produeix una tabulació en lloc d'un espai inicial\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate pagina l'eixida a través de «pr»\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=CADENA] pren nota d'una altra CADENA d'usuari\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links dóna referències del fitxer i línia en les " "anotacions\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expandeix tabulacions a espais a l'eixida\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Depuració:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging mostra molts detalls sobre el que està passant\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opcions del mode de paraula:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted no mostres les paraules suprimides\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted no mostres les paraules inserides\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common no mostres les paraules comunes\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager crida a un paginador automàticament\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variació del mode d'impressió per a «less»\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps no estengues els camps més enllà del final\n" " de línia\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr "" " -o, --printer empra la sobreimpresió com a les impressores\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal empra termcap com les pantalles dels terminals\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=EXPREG compara elements tal i com es defineixen a " "EXPREG\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compara paraules en lloc de línies\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Sense FITXER, o quan FITXER és -, llig l'entrada estàndard.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Informeu dels errors a .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "s'està descartant l'opció %s (no implementada)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "no es pot emprar -z, termcap no està disponible" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "fusió de paraules per a només dos fitxers (de moment)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Aquest és programari lliure; vegeu el codi font per les condicions de " "còpia.\n" "No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o ADEQUACIÓ A UN\n" "PROPÒSIT PARTICULAR.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Escrit per François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "les opcions -123RSYZ només tenen sentit quan hi ha dos entrades" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "no s'ha trobat un nom per a la diferència en la línia %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "proveu «%s --help» per a obtenir mes informació\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify - Transforma diffs contextuals en diffs unificats, o viceversa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Forma d'ús: %s [OPCIÓ]… [FITXER]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs força l'eixida a diffs contextuals\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments mostra els comentaris per l'eixida d'error\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs produeix diffs a l'estil antic, passe el que passe\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format genera el format de pedaç\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P el mateix que -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments suprimeix les línies de comentaris\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs força l'eixida a unidiff\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U el mateix que -p i -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals reemplaça els espais per signes d'igualtat als " "unidiff\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Si no s'especifica FITXER és, llig l'entrada estàndard.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "no es pot obrir «%s»" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "només es permet un nom de fitxer" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Escrit per Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "capçalera de diff unificat invàlida en la línia %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "diff unificat malformat en la línia %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "diff contextual sense capçalera «old» en la línia %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "diff contextual malformat en la línia %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "diff contextual sense capçalera «new» en la línia %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "no hi ha un directori temporal adequat" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Aquest és programari lliure; podeu redistribuir-lo i/o modificar-lo\n" "sota els termes de la Llicència Pública General GNU tal i com ha estat\n" "publicada per la Free Software Foundation; bé sota la versió 3 o bé (si ho\n" "preferiu) sota qualsevol versió posterior.\n" "\n" "Aquest programa es distribueix amb l'expectativa de que serà útil,\n" "però SENSE CAP GARANTIA; ni tan sols la garantia implícita de\n" "COMERCIABILITAT o ADEQUACIÓ PER UN PROPÒSIT PARTICULAR. Vegeu la\n" "Llicència Pública General GNU per obtenir-ne més detalls.\n" "\n" "Hauríeu d'haver rebut una còpia de la Llicència Pública General GNU\n" "juntament amb aquest programa; en cas contrari, vegeu\n" ".\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Compara paraules en dos fitxers i informa de les diferències.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Forma d'ús: %s [OPCIÓ]… FITXER1 FITXER2\n" " %s -d [OPCIÓ]… [FITXER]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Els arguments obligatoris per les opcions llargues també ho són per les\n" "opcions curtes corresponents.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright mostra el copyright i ix\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager crida a un paginador automàticament\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input empra diff unificat simple com a entrada\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help mostra aquest missatge d'ajuda i ix\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case no distingueixes enre majúscules i minúscules " "en\n" " comparar\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode variació del mode d'impressió per a «less»\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps no estengues els camps més enllà del final de\n" " la línia\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr "" " -p, --printer empra la sobreimpresió com a les impressores\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics informa de quantes paraules s'han suprimit,\n" " inserit, etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal empra termcap com les pantalles dels terminals\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version mostra la versió del programa i ix\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=CADENA cadena per a marcar el principi de la regió\n" " suprimida\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=CADENA cadena per a marcar el final de la regió\n" " suprimida\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=CADENA cadena per a marcar el principi de la regió\n" " inserida\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING cadena per a marcar el final de la regió\n" " inserida\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "no es pot emprar -t, termcap no està disponible" #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "hi ha massa arguments" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "manquen fitxers com a arguments" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Computa diferències de paraules mitjançant la crida interna a\n" "«mdiff -W».\n" "Aquest programa existeix principalment per a recolzar la sintaxi «wdiff»,\n" "ara antiquada.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Forma d'ús: %s [OPCIÓ]… FITXER1 FITXER2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet inhabilita el missatge d'execució d'«mdiff»\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Aquest programa també mostra com s'hauria pogut executar l'«mdiff» " "directament.\n" # Well, this is very broken. jm #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "S'està llançant «%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "»\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Resum de la lectura: %d fixers, %d elements\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Resum del treball: %d clústers, %d membres\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Resum del treball: %d clústers, %d membres, %d línies duplicades\n" #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term com -z, però sense cadenes d'inici/fi de " #~ "termcap\n" #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term com -t, però sense cadenes d'inici/fi de " #~ "termcap\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Modes d'operació:\n" #~ " -h (ignorat)\n" #~ " -v, --verbose mostra algunes estadístiques en la eixida " #~ "d'error\n" #~ " --help mostra aquesta ajuda i surt\n" #~ " --version mostra la versió i surt\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Format del resultat:\n" #~ " -T, --initial-tab produeix un TAB en lloc de un espai inicial\n" #~ " -l, --paginate pagina el resultat a través de `pr`\n" #~ " -S, --string[=CADENA] pren nota de una altra CADENA d'usuari\n" #~ " -V, --show-links dona referències de fitxer i línia en les " #~ "anotacions\n" #~ " -t, --expand-tabs expandeix tabs a espais en el resultat\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Opcions per a les paraules:\n" #~ " -1, --no-deleted no mostra les paraules esborrades\n" #~ " -2, --no-inserted no mostra les paraules inserides\n" #~ " -3, --no-common no mostra les paraules comuns\n" #~ " -A, --auto-pager crida a un paginador automàticament\n" #~ " -k, --less-mode variació del mode d'impresió per a «less»\n" #~ " -m, --avoid-wraps no exté els camps més enllà del final de " #~ "línia\n" #~ " -o, --printer utilitza sobreimpresió com a les " #~ "impresores\n" #~ " -z, --terminal utilitza termcap per a mostrar per " #~ "terminal\n" #~ " -K, --no-init-term com -z, però sense cadenes d'inici/fi de " #~ "termcap\n" #~ " -O, --item-regexp=EXPREG compara elements definits per EXPREG\n" #~ " -W, --word-mode compara paraules en lloc de línies\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparació de fitxers:\n" #~ "* -H, --speed-large-files anar més ràpid, per a quan hi ha molts " #~ "canvis\n" #~ " xicotets.\n" #~ "* -a, --text informa de les diferències en les línies\n" #~ " (forma predeterminada per a fitxers de " #~ "texte)\n" #~ "* -q, --brief només diu si els fitxers difereixen\n" #~ " (forma predeterminada per a fitxers " #~ "binaris)\n" #~ "* --horizon-lines=LÍNIES manté LÍNIES línies en els prefixes/" #~ "sufixes\n" #~ " comuns\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Comparació de directoris:\n" #~ "* -N, --new-file considera buits els fitxers " #~ "inexistents\n" #~ "* -P, --unidirectional-new-file considera buits els fitxers antics\n" #~ " inexistents\n" #~ "* -S, --starting-file=FITXER inicia la comparació de directoris " #~ "amb\n" #~ " FITXER\n" #~ "* -X, --exclude-from=FITXER ignora els fitxers que encaixen amb " #~ "els\n" #~ " patrons de FITXER\n" #~ "* -r, --recursive compara subdirectoris recursivament\n" #~ "* -s, --report-identical-files informa dels fitxers que son iguals\n" #~ "* -x, --exclude=PATRÓ ignora fitxers (directoris que " #~ "encaixen\n" #~ " amb PATRÓ\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Ignorar text:\n" #~ " -B, --ignore-blank-lines ignora les línies en blanc\n" #~ "* -I, --ignore-matching-lines=EXPREG ignora les línies que encaixen " #~ "amb\n" #~ " EXPREG\n" #~ " -b, --ignore-space-change ignora la quantitat d'espai en " #~ "blanc\n" #~ " -i, --ignore-case ignora les diferències entre\n" #~ " majúscules i minúscules\n" #~ " -w, --ignore-all-space ignora el espai en blanc\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Agrupament:\n" #~ " -G, --relist-files llista tots els fitxers d'entrada amb " #~ "anotacions\n" #~ " -J, --minimum-size=ELEMENTS descarta els grups que no tinguen tants " #~ "ELEMENTS\n" #~ " -j, --ignore-delimiters no conta els elements que només tinguen\n" #~ " delimitadors\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Formats d'eixida detallada:\n" #~ "* -D, --ifdef=NOM utilitza el format «#ifdef NOM»\n" #~ "* --changed-group-format=FORMAT utilitza FORMAT per a les " #~ "línies\n" #~ " canviades\n" #~ "* --new-group-format=FORMAT utilitza FORMAT per a les " #~ "línies\n" #~ " insertades\n" #~ "* --new-line-format=FORMAT utilitza FORMAT per a la línia\n" #~ " insertada\n" #~ "* --old-group-format=FORMAT utilitza FORMAT per a les " #~ "línies\n" #~ " eliminades\n" #~ "* --old-line-format=FORMAT utilitza FORMAT per a la línia\n" #~ " eliminada\n" #~ "* --unchanged-group-format=FORMAT utilitza FORMAT per a les " #~ "línies\n" #~ " no canviades\n" #~ "* --unchanged-line-format=FORMAT utilitza FORMAT per a la línia\n" #~ " no canviada\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formats a l'estil «script»:\n" #~ " (cap de -CDUcefnuy) produeix diffs normals\n" #~ "* -e, --ed produeix un script «ed» vàlid\n" #~ "* -f, --forward-ed mescla entre -e i -n (no massa útil)\n" #~ "* -n, --rcs format RCS (utilitzat internament per RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Formats contextual i unificat:\n" #~ "* -F, --show-function-line=EXPREG mostra el context previ que encaixe " #~ "amb\n" #~ " EXPREG\n" #~ "* -p, --show-c-function mostra la funció C a la qual " #~ "correspón\n" #~ " cada canvi\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LÍNIES com -c, també selecciona la mida del " #~ "context\n" #~ " en línies\n" #~ "* -L, --label=ETIQUETA utilitza una ETIQUETA from/to en comptes " #~ "del\n" #~ " nom del fitxer (per duplicat)\n" #~ "* -U, --unified=LÍNIES com -u, també selecciona la mida del " #~ "context\n" #~ " en línies\n" #~ "* -c, --context produeix diffs contextuals (per defecte 3 " #~ "línies)\n" #~ "* -u, --unified produeix diffs unificats (per defecte 3 " #~ "línies)\n" #~ "* -LÍNIES (obsoleta: selecciona la mida del context " #~ "en\n" #~ " línies\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Format de costat a costat:\n" #~ "* -W, --width=COLUMNES utilitza un ample de COLUMNES\n" #~ "* -y, --side-by-side utilitza el format d'eixida de costat a " #~ "costat\n" #~ "* --left-column només mostra la columna esquerra quan és " #~ "comú\n" #~ "* --sdiff-merge-assist (utilitzat internament per «sdiff»)\n" #~ "* --suppress-common-lines no mostra les línies comuns.\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT es composa de caràcters que es representen per ells mateixos, " #~ "excepte:\n" #~ " %%%% un simple %%\n" #~ " %%c'C' el caràcter C entre cometes\n" #~ " %%c'\\O' el caràcter que te valor O, de 1 a 3 dígits octals\n" #~ " %%(A=B?T:E) si A és B aleshores T i si no E; A B són números o " #~ "VARIABLE;\n" #~ " T i E són FORMAT\n" #~ " %%FN utilitza l'especificació SPECIF F per a mostrar el valor " #~ "N\n" #~ " de VARIABLE\n" #~ " %%< [grup] vell, cada línia a través de --old-line-format\n" #~ " %%> [grup] nou, cada línia a través de --new-line-format\n" #~ " %%= [grup] no canvia, cada línia a través de\n" #~ " --unchanged-line-format\n" #~ " %%l [línia] sense la seua possible nova línia final\n" #~ " %%L [línia] amb la seua possible nova línia final\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF és [-][W[.D]]{doxX} com en el printf de C\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABLE és {eflmn} per a grups vells o {EFLMN} per a grups nous\n" #~ " {eE} número de línia just abans del grup\n" #~ " {fF} primera línia del grup\n" #~ " {lL} última línia del grup\n" #~ " {mM} número de línia just després del grup\n" #~ " {nN} número de línies en el grup\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Opcions estàndar de diff:\n" #~ " -i, --ignore-case considera iguals majúscules i minúscules\n" #~ " -w, --ignore-all-space ignora els espais en blanc\n" #~ " -b, --ignore-space-change ignora els canvis en la quantitat de espai en " #~ "blanc\n" #~ " -B, --ignore-blank-lines ignora els canvis en línies totalment en " #~ "blanc\n" #~ " -I. --ignore-matching-lines=ER ignora els canvis en línies que\n" #~ " coincideixen amb ER\n" #~ " -a, --text tracta tots els fitxers com text\n" #~ " -c, --context[=NÚMERO] produeix diffs contextuals normals,\n" #~ " canviant a NÚMERO línies de context\n" #~ " -u, --unified[=NÚMERO] produeix diffs contextuals unificats o " #~ "unidiffs,\n" #~ " amb NÚMERO línies de context\n" #~ " -C, --context=NÚM produeix NÚM línies de context copiat\n" #~ " -U, --unified=NÚM produeix NÚM línies de context unificat\n" #~ " -L, --label=ETIQUETA utilitza ETIQUETA en comptes del nom del " #~ "fitxer\n" #~ " -p, --show-c-function mostra en quina funció de C està cada canvi\n" #~ " -F, --show-function-line=ER mostra la línia més recent que coincideixe " #~ "amb RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief mostra només si els fitxers són o no " #~ "diferents\n" #~ " -e, --ed produeix un script ed\n" #~ " -n, --rcs produeix un diff en format RCS\n" #~ " -y, --side-by-side mostra en dos columnes\n" #~ " -w, --width=NÚM mostra com a molt NÚM (per defecte 130) " #~ "caràcters per línia\n" #~ " --left-column mostra només la columna esquerra dels fitxers " #~ "comuns\n" #~ " --suppress-common-lines no mostra les línies comuns\n" #~ " -D, --ifdef=NOM mostra un fitxer fusionat amb diffs «#ifdef " #~ "NOM»\n" #~ " --GTYPE-group-format=GFMT grups d'entrada GTYPE amb GFMT\n" #~ " --line-format=LFMT totes les línies d'entrada amb LFMT\n" #~ " --LTYPE-line-format=LFMT línies d'entrada LTYPE amb LFMT\n" #~ " -l, --paginate passa l'eixida a través de «pr» per a paginar-" #~ "ho\n" #~ " -t, --expand-tabs expadeix les tabulacions a espais en " #~ "l'eixida\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab alínia els tabs afegint un tab al principi\n" #~ " -r, --recursive compara recursivament qualsevol directori " #~ "trobats\n" #~ " -N, --new-file tracta els fitxers absents com buits\n" #~ " -P, --unidirectional-new-file tracta els fitxers primers absents com " #~ "buits\n" #~ " -s, --report-identical-files informa quan dos fitxers són el mateix\n" #~ " -x, --exclude=PAT exclueix fitxers que coincideixen amb PAT\n" #~ " -X, --exclude-from=FITXER exclueix fitxers que coincideixen amb " #~ "qualsevol\n" #~ " patró en FITXER\n" #~ " -S, --starting-file=FITXER comença amb FITXER quan es comparen " #~ "directoris\n" #~ " --horizon-lines=NÚM manté NÚM línies del prefix i sufix comuns\n" #~ " -d, --minimal intenta trobar conjunts de canvis més " #~ "xicotets\n" #~ " -H, --speed-large-files assumeix fitxers grans i molts canvis " #~ "xicotets\n" #~ " i desperdigats\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Per defecte, els diffs contextuals tenen un horitzó de dos línies.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE és «old», «new», o «unchanged». GTYPE és LTYPE o «changed».\n" #~ "GFMT pot contindre:\n" #~ " %< línies del FITXER1\n" #~ " %> línies del FITXER2\n" #~ " %= línies comuns a FITXER1 i FITXER2\n" #~ " %[-][AMPLE]þ.[PREC]]{doxX}LLETRA spec a l'estil printf per a LLETRA\n" #~ " Les LLETRES són com segueix per a un grup nou, minúscules per a un " #~ "grup\n" #~ " antic:\n" #~ " F primer número de línia\n" #~ " L última número de línia\n" #~ " N número de línies = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT pot contindre:\n" #~ " %L continguts de la línia\n" #~ " %l continguts de la línia, excloïent qualsevol nova línia final\n" #~ " %[-][AMPLE][.[PREC]]{doxX}n spec a l'estil printf per al número de la\n" #~ " línia d'entrada\n" #~ "Tant GFMT com LFMT poden contindre:\n" #~ " %% %\n" #~ " %c'C' el caràcter C\n" #~ " %c'\\OOO' el caràcter amb codi octal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Opcions antigues d'mdiff:\n" #~ "* -f, --fuzz-items=ELEMENTS número màxim d'ELEMENTS que no encaixen en " #~ "un\n" #~ " grup\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright © 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs força la producció de diffs contextuals\n" #~ " -e, --echo-comments mostra els comentaris per la eixida d'error " #~ "estàndar\n" #~ " -o, --old-diffs produeix diffs a l'estil vell, pase el que pase\n" #~ " -p, --patch-format genera en format de pedaç\n" #~ " -P igual que -p\n" #~ " -s, --strip-comments elimina les línies de comentaris\n" #~ " -u, --unidiffs força la producció d'unidiffs\n" #~ " -=, --use-equals reemplaça els espais per signes d'igualtat en " #~ "unidiffs\n" #~ " --help mostra aquesta ajuda i eix\n" #~ " --version mostra la informació sobre la versió i eix\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Els arguments obligatoris per a opcions llargues també són obligatores " #~ "per a\n" #~ "les opcions curtes.\n" #~ "\n" #~ " -C, --copyright mostra el copyright i eix\n" #~ " -K, --no-init-term com -t, però sense cadenes d'inici/fi de " #~ "termcap\n" #~ " -V, --version mostra la versió del programa i eix\n" #~ " -1, --no-deleted no mostra les paraules esborrades\n" #~ " -2, --no-inserted no mostra les paraules insertades\n" #~ " -3, --no-common no mostra les paraules comuns\n" #~ " -a, --auto-pager crida a un paginador automàticament\n" #~ " -h, --help mostra aquesta ajuda\n" #~ " -i, --ignore-case no distingueix majúscules i minúscules al " #~ "comparar\n" #~ " -l, --less-mode variació del mode d'impressió per a «less»\n" #~ " -n, --avoid-wraps no extén camps més enllà del final de línia\n" #~ " -p, --printer utilitza sobreimpressió com a les " #~ "impresores\n" #~ " -s, --statistics informa de quantes paraules borrades,\n" #~ " insertades, etc.\n" #~ " -t, --terminal utilitza termcap com per a mostrar per " #~ "terminal\n" #~ " -w, --start-delete=CADENA cadena per a marcar el principi de la regió\n" #~ " esborrada\n" #~ " -x, --end-delete=CADENA cadena per a marcar el final de la regió " #~ "esborrada\n" #~ " -y, --start-insert=CADENA cadena per a marcar el principi de la regió\n" #~ " insertada\n" #~ " -z, --end-insert=CADENA cadena per a marcar el final de la regió " #~ "insertada\n" wdiff-1.2.1/po/zh_TW.gmo0000644000000000000000000000421312116513226011655 00000000000000 h9i81 #0 8CK[&?<%56//"_   7icK9Q     Copyright (C) 1994, 1997 Free Software Foundation, Inc. Written by Franc,ois Pinard . Written by Wayne Davison . %s (for regexp `%s'), clustering, done Reading %sSortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. mdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. Project-Id-Version: wdiff 0.5g Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-01 18:14+0100 Last-Translator: Wei-Lun Chao Language-Team: Chinese (traditional) Language: zh_TW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; 版權所有 (C) 1994-1997 自由軟體基金會。 作者 Franc,ois Pinard 。 作者 Wayne Davison 。 %s (對於正規表示式「%s」),叢集中,已完成 正在讀取 %s排序中排列編號中這是自由軟體;請參考原始碼的版權聲明。本軟體不提供任何保證,甚至不會包括 可售性或適用於任何特定目的的保證。 請嘗試執行‘%s --help’來獲取更多資訊。 mdiff - 探究多個檔案並搜尋相同的序列,從而產生儘可能詳細的異同列表。 unify - 轉換內容差異的形式為 unidiffs,或是相反的作用。 wdiff - 比較兩個檔案中的字組並回報差異。 wdiff-1.2.1/po/de.gmo0000644000000000000000000004044312116513226011217 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""\b$J$8 %>C%%%%%=%6 &:C&D~&-&%&+'-C'@q'G'H'GC(N(B(<)MZ) )=)O*'W*H*E*F+=U+F+L+%',>M,N,E,H!-Ej-8-M-I7.=./.9.O)/qy/3/I0Ni090@0H31N|1L1P2Ni2N23!393T3r3%3 33232%4X4]4z4 4B4 4O435G5O5556T6 7,9% :G3:{:":E:;=;>Z;8;8;6 <=B<'< < <)<&=';=#c==>12>5d>>0>@>(&?O?,g??@?J?<@3@_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: GNU wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-29 22:00+0200 Last-Translator: Michael Piefel Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=2; plural=(n != 1); Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1997, 1998, 1999 Free Software Foundation, Inc. Fehlersuche: Ausgabe-Formatierung: Arbeitsmodi: Wortmodus-Optionen: Geschrieben von François Pinard . Geschrieben von Wayne Davison . --help diese Hilfe anzeigen und beenden --version Versionsinformationen anzeigen und beenden %d %.0f%% verändert %d %.0f%% verändert %d %.0f%% gleich %d %.0f%% gleich %d %.0f%% gelöscht %d %.0f%% gelöscht %d %.0f%% eingefügt %d %.0f%% eingefügt -0, --debugging viele Details über alle Vorgänge ausgeben -1, --no-deleted Ausgabe gelöschter Wörter unterdrücken -2, --no-inserted Ausgabe eingefügter Wörter unterdrücken -3, --no-common Ausgabe gemeinsamer Wörter unterdrücken -=, --use-equals in Uni-Diffs Leer- durch Gleichheitszeichen ersetzen -A, --auto-pager automatisch Anzeigeprogramm aufrufen -C, --copyright Copyright ausgeben und beenden -O, --item-regexp=REGEXP Elemente wie durch REGEXP definiert vergleichen -P wie -p -S, --string[=ZKETTE] eine weiter Nutzer-ZKETTE beachten -T, --initial-tab Tabs anstelle von führenden Leerzeichen produzieren -U wie -p und -u -V, --show-links Datei- und Zeilenbezug in Anmerkungen angeben -W, --word-mode Wörter anstelle von Zeilen vergleichen -a, --auto-pager ruft automatisch ein Anzeigeprogramm auf -c, --context-diffs Ausgabe von Kontext-Diffs erzwingen -d, --diff-input einzelnes Uni-Diff als Eingabe verwenden -e, --echo-comments Kommentare auf Standardfehlerausgaben weiterleiten -h (ignoriert) -h, --help diese Hilfe ausgeben und beenden -i, --ignore-case beim Vergleich Groß-/Kleinschreibung ignorieren -k, --less-mode Ausgabevariante für „less“-Ausgabe -l, --less-mode Variation des Ausgabemodus für „less“ -l, --paginate Ausgabe durch „pr“ in Seiten aufteilen -m, --avoid-wraps Zeilenende begrenzt Felder -n, --avoid-wraps Felder nicht über Zeilenumbrüche gehen lassen -o, --old-diffs Diffs im alten Stil ausgeben, egal was passiert -o, --printer wie bei Druckern überschreiben -p, --patch-format Patch-Format erzeugen -p, --printer Überdrucken (für Drucker) -q, --quiet Ausgabe des Aufrufs von „mdiff“ unterdrücken -s, --statistics Anzahl gelöschter, eingefügter etc. Wörter ausgeben -s, --strip-comments Kommentarzeilen weglassen -t, --expand-tabs Tabs in der Ausgabe durch Leerzeichen ersetzen -t, --terminal „termcap“ benutzen wie für Terminalanzeigen -u, --unidiffs Ausgabe von Uni-Diffs erzwingen -v, --verbose einige Statistiken auf stderr ausgeben -v, --version Versionsinformationen ausgeben und beenden -w, --start-delete=ZKETTE Kennzeichnung für den Anfang einer Löschregion -x, --end-delete=ZKETTE Kennzeichnung für das Ende einer Löschregion -y, --start-insert=ZKETTE Kennzeichnung für den Anfang einer Einfügeregion -z, --end-insert=ZKETTE Kennzeichnung für das Ende einer Einfügeregion -z, --terminal „termcap“ wie für Terminalanzeigen benutzen %d Cluster, %d Cluster, %d Datei, %d Dateien, %d Element %d Elemente %d Mitglied %d Mitglieder %d Mitglied, %d Mitglieder, %d Überlappung %d Überlappungen %s (für reg. Ausdruck „%s“)%s: %d Wort%s: %d Wörter%s: Eingabeprogramm wurde durch Signal %d beendet %s: Ausgabeprogramm wurde durch Signal %d beendet “ , %d Element , %d Elemente , zusammenfassen, fertig Wird DATEI nicht angegeben, wird aus der Standardeingabe gelesen. Lese „%sErforderliche Argumente für lange Optionen sind auch für kurze erforderlich. LesezusammenfassungLese %sMelden Sie Übersetzungsfehler an , Programmfehler dagegen (auf Englisch, mit LC_ALL=C) an . SortiereSortiere ElementeDies ist freie Software; Kopierbedingungen finden sich in den Quellen. Es gibt KEINE Garantie; nicht einmal für MARKTFÄHIGKEIT oder der ERFÜLLUNG EINES BESTIMMTEN ZWECKES. Dieses Programm gibt zudem aus, wie man „mdiff“ direkt hätte aufrufen können. Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe . „%s --help“ gibt weitere Informationen. Aufruf: %s [OPTION]... DATEI1 DATEI2 Aufruf: %s [OPTION]... DATEI1 DATEI2 oder: %s -d [OPTION]... [DATEI] Aufruf: %s [OPTION]... [DATEI] Aufruf: %s [OPTION]... [DATEI]... Ohne DATEI, oder wenn DATEI - ist, wird die Standardeingabe gelesen. Arbeitszusammenfassung:kann -t nicht benutzen, da „termcap“ nicht verfügbar istKann -z nicht benutzen, da „termcap“ nicht verfügbar ist.Kontext-Diff enthält keinen „neu“-Kopf in Zeile %ldKontext-Diff enthält keinen „alt“-Kopf in Zeile %ldkonnte auf die „termcap“-Datenbank nicht zugreifenkonnte keinen Namen für die Unterschiede in Zeile %ld findenVerzeichnisse werden nicht unterstütztFehler beim Umleiten des StreamsAusführen von %s fehlgeschlagenignoriere Option %s (nicht implementiert)ungültiger Uni-Diff-Kopf in Zeile %ldunzulässiges Kontext-Diff in Zeile %ldunzulässiges Uni-Diff in Zeile %ldmdiff – Untersucht mehrere Dateien und sucht nach ähnlichen Abschnitten, erstellt dann ausführliche Liste von Unterschieden und Ähnlichkeiten. Dateiargumente fehlenkein brauchbares temporäres Verzeichnis gefundenes kann nur eine Datei aus der Standardeingabe kommennur ein Dateiname erlaubtOptionen -123RSYZ nur mit zwei Eingaben sinnvollwählen Sie mit der Umgebungsvariable TERM einen Terminaltyp ausTerminaltyp „%s“ ist nicht definiertzu viele Dateiargumente„%s --help“ gibt weitere Informationen. kann „%s“ nicht öffnenunify – Überführt Kontext-Diffs in Uni-Diffs und umgekehrt. wdiff – Vergleicht Wörter in zwei Dateien und führt Unterschiede auf. wdiff – Wortunterschiede berechnen, indem intern „mdiff -W“ gerufen wird. Dieses Programm existiert hauptsächlich, um die angestaubte „wdiff“-Syntax zu unterstützen. Wortzusammenfassung nur für zwei Dateien (bislang)wdiff-1.2.1/po/zh_CN.po0000644000000000000000000006674012116513226011474 00000000000000# Simplified Chinese translation for wdiff. # Copyright (C) 2005 Free Software Foundation, Inc. # Meng Jie , 2004. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 21:08+0100\n" "Last-Translator: Meng Jie \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (对于正规表示式 “%s”)" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "只有一个文件可以是标准输入。" #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "不支持目录操作" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "读取 %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ",%d 个条目\n" msgstr[1] ",%d 个条目\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ",%d 个条目\n" msgstr[1] ",%d 个条目\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ",%d 个条目\n" msgstr[1] ",%d 个条目\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "排序" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr "" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ",完成\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "排序成员" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ",%d 个条目\n" msgstr[1] ",%d 个条目\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "从 TERM 环境变量中选择一个终端类型。" #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "无法访问 termcap 数据库。" #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "终端类型‘%s’未定义。" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d 个词" msgstr[1] "%s: %d 个词" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% 共同" msgstr[1] " %d %d%% 共同" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% 删除" msgstr[1] " %d %d%% 删除" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% 更改" msgstr[1] " %d %d%% 更改" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% 插入" msgstr[1] " %d %d%% 插入" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "请尝试执行‘%s --help’以得到更多信息。\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "用法:%s [选项]... [文件]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (忽略)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" # ? " --help display this help and exit" # ? " --help 显示本帮助信息并退出" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr "" # ? " --version output version information and exit" # ? " --version 显示版本信息并退出" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr "" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs 输出中将制表符扩展为空格\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr "" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted 不输出被删除的词\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted 不输出插入的词\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common 不输出相同的词\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager 自动调用分页程序\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation of printer mode for \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps 字段不跨行\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike as for printers\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal use termcap as for terminal displays\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr "" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "如果没有指定<文件>或<文件>是 -,则从标准输入读取资料。\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "请向 报告程序缺陷。\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "无法使用 -z,termcap 不可用。" #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "单词合并目前只能用于两个文件" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "版权所有 (C) 1992,1997 自由软件基金会\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "本程序是自由软件;请参看源代码的版权声明。本软件不提供任何担保;包括没有适销" "性和\n" "某一专用目的下的适用性担保。\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "由 Franc,ois Pinard 编写。\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "第 %ld 行上下文 diff 格式不对" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "请尝试执行‘%s --help’以得到更多信息。\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "用法:%s [选项] [文件]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr "" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr "" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P 与 -p 相同\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr "" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr "" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U same as -p and -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals replace spaces by equal signs in unidiffs\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "如果没有指定<文件>或<文件>是 -,则从标准输入读取资料。\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "无法打开‘%s’" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "只接受一个文件名" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "版权所有 (C) 1994,1997 自由软件基金会\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "由 Wayne Davison 编写。\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "第 %ld 行的 unidiff 头无效" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "第 %ld 行 unidiff 格式不对" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "第 %ld 行的上下文 diff 缺少‘old’头" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "第 %ld 行上下文 diff 格式不对" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "第 %ld 行的上下文 diff 缺少‘new’头" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "此程序是自由软件;您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下\n" "重新分发和(或)修改它;您可以选择使用 GPL 第二版,或(按照您的意愿)任何更新\n" "的版本。\n" "\n" "该程序分发的目的是为了其他人可以使用它,但是没有任何担保;也没有对其适销性\n" "和某一特定目的下的适用性的担保。请查阅 GNU 通用公共许可证来获得更多的信息。\n" "\n" "你应该已经跟本程序一起收到一份 GNU 通用公共许可证;如果没有,请写信至:\n" "Free Software Foundation, Inc., \n" "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - 比较两个文件中的词汇并报告区别。\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "用法:%s [选项]... 文件1 文件2\n" " %s [选项]... [文件]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright 打印版权信息并退出\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager 自动调用分页程序\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help 打印此帮助\n" # ? " -i, --ignore-case 比较时忽略字符大小写" # ? " -i, --ignore-case 忽略大小写" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation of printer mode for \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps 字段不跨行\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike as for printers\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics say how many words deleted, inserted etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal use termcap as for terminal displays\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version 打印程序版本并退出\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=字符串 标记删除区域起始的字符串\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=字符串 标记删除区域结束的字符串\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=字符串 标记插入区域起始的字符串\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=字符串 标记插入区域结束的字符串\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "无法使用 -t,termcap 不可用。" #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "版权所有 (C) 1992,1997 自由软件基金会\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "缺少文件参数" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "缺少文件参数" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "版权所有 (C) 1994,1997 自由软件基金会\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "用法:%s [选项]... 文件1 文件2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "读取 %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "读取小结:%d 个文件,%d 条目\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "操作模式:\n" #~ " -h (忽略)\n" #~ " -v,--verbose 在标准错误上报告一些统计信息\n" #~ " --help 显示本帮助信息并退出\n" #~ " --version 显示版本信息并退出\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "标准的 diff 选项:\n" #~ " -i, --ignore-case 忽略大小写\n" #~ " -w, --ignore-all-space 忽略所有空白符\n" #~ " -b, --ignore-space-change 忽略空白符的多少\n" #~ " -B, --ignore-blank-lines 忽略空白行\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text 将所有文件视作文本\n" #~ " -c, --context[=N] 输出正规上下文 diff,带 N 行上下文\n" #~ " -u, --unified[=N] 输入统一上下文 diff,带 N 行上下文\n" #~ " -C, --context=N 输入 N 行复制上下文\n" #~ " -U, --unified=N 输出 N 行统一上下文\n" #~ " -L, --label=标号 使用“标号”而不是文件名\n" #~ " -p, --show-c-function 显示有改变的 C 函数\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief 只输出文件是否不同\n" #~ " -e, --ed 输出一个 ed 脚本\n" #~ " -n, --rcs 输出为 RCS 格式\n" #~ " -y, --side-by-side 输出两列\n" #~ " -w, --width=数 指定每行最多的字符数(默认为 130)\n" #~ " --left-column 只在左边一列输出相同的行\n" #~ " --suppress-common-lines 不输出相同的行\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs 输出中将制表符扩展为空格\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "版权所有 (C) 1997 自由软件基金会\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c,--context-diffs 强制输出上下文格式 diff\n" #~ " -e,--echo-comments 将注释输出到标准错误设备上\n" #~ " -o,--old-diffs 输出旧式风格的 diff\n" #~ " -p,--patch-format 生成 patch 格式\n" #~ " -P 与 -p 相同\n" #~ " -s,--strip-comments 剥离注释行\n" #~ " -u,--unidiffs 强制输出 unidiff\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "长选项必须用的参数在使用短选项时也是必须的。\n" #~ "\n" #~ " -C, --copyright 打印版权信息并退出\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version 打印程序版本并退出\n" #~ " -1, --no-deleted 不输出被删除的词\n" #~ " -2, --no-inserted 不输出插入的词\n" #~ " -3, --no-common 不输出相同的词\n" #~ " -a, --auto-pager 自动调用分页程序\n" #~ " -h, --help 打印此帮助\n" #~ " -i, --ignore-case 比较时忽略字符大小写\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps 字段不跨行\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=字符串 标记删除区域起始的字符串\n" #~ " -x, --end-delete=字符串 标记删除区域结束的字符串\n" #~ " -y, --start-insert=字符串 标记插入区域起始的字符串\n" #~ " -z, --end-insert=字符串 标记插入区域结束的字符串\n" wdiff-1.2.1/po/et.po0000644000000000000000000013251712116513225011076 00000000000000# Estonian translations for wdiff # Copyright (C) 2000 Free Software Foundation, Inc. # Toomas Soome , 2001. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:25+0100\n" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8-bit\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (regulaaravaldisele `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Standardsisendiks saab olla ainult ks fail." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Kataloogid pole lubatud" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Loen %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elementi\n" msgstr[1] ", %d elementi\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d elementi\n" msgstr[1] ", %d elementi\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d elementi\n" msgstr[1] ", %d elementi\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Jrjestan" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", klasterdan" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", valmis\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Jrjestan liikmeid" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", klasterdan" msgstr[1] ", klasterdan" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d elementi\n" msgstr[1] ", %d elementi\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Kasutage terminali mramiseks keskkonnamuutujat TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Termcap andmebaasile pole juurdepsu." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Terminali tp `%s' pole defineeritud." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d sna" msgstr[1] "%s: %d sna" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% hiseid" msgstr[1] " %d %d%% hiseid" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% kustutatud" msgstr[1] " %d %d%% kustutatud" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% muudetud" msgstr[1] " %d %d%% muudetud" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% lisatud" msgstr[1] " %d %d%% lisatud" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Lisainfo saamiseks proovige `%s --help'.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Uurib faile ning otsib sarnaseid jrjendeid. Seejrel koostab\n" "vimalikult detailse erinevuste ja sarnasuste loendid.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Kasuta: %s [VTI]... [FAIL]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Tmoodid:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (ignoreeritakse)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose vljasta stderr voogu mningat statistikat\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help esita see abiinfo ja lpeta t\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version esita versiooniinfo ja lpeta t\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" # ? " -T, --initial-tab lisa rea algusse tabulaator" # ? " -T, --initial-tab thiku asemel kasuta alguses tabulaatorit" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" # ? " -l, --paginate saada vljund programmi `pr'" # ? " -l, --paginate kljenda vljund programmiga `pr'" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=SNE] kasuta kasutaja teksti SNE\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links kasuta mrkmetes viiteid failidele ja ridadele\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs asenda vljundis tabulaatorid thikutega\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Silumine:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging vljasta tehtava t kohta palju infot\n" #: src/mdiff.c:3795 #, fuzzy msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Sna moodi vtmed:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted ra vljasta kustutatud snu\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted ra vljasta lisatud snu\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common ra vljasta hiseid snu\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager kasuta automaatselt lehitsejat\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode printeri mood ksule \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps ra kasuta mitmerealisi vlju\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer lekirjutamine nagu trkkalites\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal kasuta termcap terminali infot\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP vrdle REGEXP mratud elemente\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode vrdle ridade asemel snu\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Kui FAIL puudub vi on -, loen standardsisendit.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Vigadest teatage aadressil .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Vtit -z ei saa kasutada, termcap faili pole." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Snade mestimist saab kasutada (veel) ainult kahe faili korral" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Autoriigus (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "See programm on vaba tarkvara; kopeerimise tingimused leiate\n" "lhtetekstidest. Programmil POLE garantiid; isegi mtteliselt\n" "vljendatud garantiid TURUVRTUSELE vi KINDLA EESMRGIGA \n" "KASUTAMISE sobivusele.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Kirjutanud Franois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Vtmeid -123RSYZ saab kasutada ainult kahe sisendfaili olemasolul." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Erinevustel real %ld pole nime" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Lisainfo saamiseks proovige `%s --help'.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify - Teisendab konteksti erinevused unidiff esitusse vi vastupidi.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Kasuta: %s [VTI]... FAIL...\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs vljund konteksti erinevuste formaadis\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments kommentaarid standard vea voogu\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs vljund vana-stiili diff formaadis\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format vljund paranduste formaadis\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P sama kui -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments eemalda kommentaarid\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs vljund unidiff formaadis\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U sama kui -p ja -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals asenda unidiff vljundis thikud vrdusmrkidega\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Kui faili ei antud, loe standardsisendit.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "`%s' ei saa avada" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Lubatud on ainult ks failinimi" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Autoriigus (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Kirjutanud Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Vigane unifitseeritud erinevuse pis real %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Vigane unifitseeritud erinevus real %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Real %ld puudub konteksti erinevuse `vana' pis" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Vigane konteksti erinevus real %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Real %ld puudub konteksti erinevuse `uus' pis" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "See programm on vaba tarkvara; seda vib levitada vi modifitseerida\n" "vastavalt Free Sofrtware Foundation poolt avaldatud GNU ldise avaliku\n" "litsensi tingimustele; kas litsensi versioon 2 vi (teie valikul)\n" "mne uuema litsensiversiooni tingimustele.\n" "\n" "Seda programmi levitatakse lootuses et see on kasutatav, ILMA IGASUGUSE\n" "garantiita;isegi ilma mtteliselt vljendatud garantiita TURUVRTUSELE vi\n" "SOBIVUSELE KINDLAKS EESMRGIKS. Detailide suhtes vaadake GNU ldist " "avalikku\n" "litsentsi.\n" "\n" "Te peaksite saama selle programmiga koos ka GNU ldise avaliku litsensi\n" "koopia; kui ei, kirjutage palun aadressil Free Software Foundation,\n" "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Vrdleb snu kahes failis ja teatab erinevustest.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Kasutage: %s [VTI]... FAIL1 FAIL2\n" " %s -d [VTI]... [FAIL]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright esita autoriigused ja lpeta t\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager kasuta automaatselt lehitsejat\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help esita see abiinfo\n" # ? " -i, --ignore-case tstutundetu" # ? " -i, --ignore-case vrdle tstutundetult" # ? " -i, --ignore-case tta tstutundetuna" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode kasuta \"less\" moodi\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps ra kasuta mitmerealisi vlju\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer lekirjutamine nagu trkkalites\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr " -s, --statistics esita t statistikat\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal kasuta termcap terminali infot\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version esita versiooniinfo ja lpeta t\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=SNE kustutamisregiooni alguse marker\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=SNE kustutamisregiooni lpu marker\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=SNE lisamisregiooni alguse marker\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=SNE lisamisregiooni lpu marker\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Vtit -t ei saa kasutada, termcap faili pole." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Autoriigus (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Argumentides puuduvad failid" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Argumentides puuduvad failid" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Autoriigus (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Kasutage: %s [VTI]... FAIL1 FAIL2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "Loen %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Lugemise kokkuvte: %d faili, %d elementi\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "T kokkuvte: %d klastrit, %d liiget\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "T kokkuvte: %d klastrit, %d liiget, %d kattuvat\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term nagu -z, aga termcap init/term snedeta\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Tmoodid:\n" #~ " -h (ignoreeritakse)\n" #~ " -v, --verbose vljasta stderr voogu mningat statistikat\n" #~ " --help esita see abiinfo ja lpeta t\n" #~ " --version esita versiooniinfo ja lpeta t\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Vljundi formaat:\n" #~ " -T, --initial-tab thiku asemel kasuta alguses tabulaatorit\n" #~ " -l, --paginate kljenda vljund programmiga `pr'\n" #~ " -S, --string[=SNE] kasuta kasutaja teksti SNE\n" #~ " -V, --show-links kasuta mrkmetes viiteid failidele ja ridadele\n" #~ " -t, --expand-tabs asenda vljundis tabulaatorid thikutega\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Sna moodi vtmed:\n" #~ " -1, --no-deleted ra vljasta kustutatud snu\n" #~ " -2, --no-inserted ra vljasta lisatud snu\n" #~ " -3, --no-common ra vljasta hiseid snu\n" #~ " -A, --auto-pager kasuta automaatselt lehitsejat\n" #~ " -k, --less-mode printeri mood ksule \"less\"\n" #~ " -m, --avoid-wraps ra kasuta mitmerealisi vlju\n" #~ " -o, --printer lekirjutamine nagu trkkalites\n" #~ " -z, --terminal kasuta termcap terminali infot\n" #~ " -K, --no-init-term nagu -z, aga termcap init/term snedeta\n" #~ " -O, --item-regexp=REGEXP vrdle REGEXP mratud elemente\n" #~ " -W, --word-mode vrdle ridade asemel snu\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Failide vrdlemine:\n" #~ "* -H, --speed-large-files tta paljude muutuste korral kiiremini\n" #~ "* -a, --text teata ridade erinevustest (tekstifailid)\n" #~ "* -d, --minimal tta vikeste muutuste korral rohkem\n" #~ "* -q, --brief teata failide erinevustest (kahendfailid)\n" #~ "* --horizon-lines=RIDU ridu enne ja jrel\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Kataloogide vrdlemine:\n" #~ "* -N, --new-file mrgi puuduvad failid thjadeks\n" #~ "* -P, --unidirectional-new-file mrgi puuduvad vanad failid thjadeks\n" #~ "* -S, --starting-file=FAIL jtka kataloogide vrdlemist FAILIST\n" #~ "* -X, --exclude-from=FAIL ignoreeri faile vastavalt loetud " #~ "mustritele\n" #~ "* -r, --recursive vrdle katalooge rekursiivselt\n" #~ "* -s, --report-identical-files teata, kui kaks faili on sama sisuga\n" #~ "* -x, --exclude=MUSTER ignoreeri MUSTRILE vastavaid faile " #~ "(kat)\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Teksti ignoreerimine:\n" #~ " -B, --ignore-blank-lines ignoreeri thje ridu\n" #~ "* -I, --ignore-matching-lines=REGEXP ignoreeri REGEXP sobivaid ridu\n" #~ " -b, --ignore-space-change ignoreeri thiku tbi muutust\n" #~ " -i, --ignore-case tstutundetu\n" #~ " -w, --ignore-all-space ignoreeri thikuid\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Klasterdamine:\n" #~ " -G, --relist-files esita kik sisendfailid kommentaaridega\n" #~ " -J, --minimum-size=ELEM ignoreeri viksema mahuga elemente\n" #~ " -j, --ignore-delimiters ra loenda ainult eraldajaid sisaldavaid " #~ "elemente\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Detailne vljundvormindus:\n" #~ "* -D, --ifdef=NIMI kasuta `#ifdef NIMI' vormingut\n" #~ "* --changed-group-format=FORMAAT vorming muudetud ridadele\n" #~ "* --new-group-format=FORMAAT vorming lisatud ridadele\n" #~ "* --new-line-format=FORMAAT vorming lisatud reale\n" #~ "* --old-group-format=FORMAAT vorming kustutatud ridadele\n" #~ "* --old-line-format=FORMAAT vorming kustutatud reale\n" #~ "* --unchanged-group-format=FORMAAT vorming muutmata ridadele\n" #~ "* --unchanged-line-format=FORMAAT vorming muutmata reale\n" #~ "* --line-format=FORMAAT --{old,new,unchanged}-rea-" #~ "formaat\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Skripti vormindus:\n" #~ " (mitte kski jrgnevast -CDUcefnuy) vljasta normaalne diff\n" #~ "* -e, --ed vljasta korrektne `ed' skript\n" #~ "* -f, --forward-ed segu -e ja -n vljunditest (pole eriti " #~ "kasutatav)\n" #~ "* -n, --rcs vljasta RCS vorminduses (RCS sisekuju)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Kontekst ja unifitseeritud vormindus:\n" #~ "* -F, --show-function-line=REGEXP nita eelmist REGEXP vastavat " #~ "konteksti\n" #~ "* -p, --show-c-function nita, millises C funktsioonis " #~ "muutus on\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=RIDU nagu -c, mra ka konteksti suurus\n" #~ "* -L, --label=MRGEND kasuta faili nime asemel MRGENDIT\n" #~ "* -U, --unified=RIDU nagu -u, mra ka konteksti suurus\n" #~ "* -c, --context vljasta konteksti erinevused (3 rida)\n" #~ "* -u, --unified vljasta erinevused unidiff vorminduses (3 " #~ "rida)\n" #~ "* -RIDU (aegunud: mra konteksti suurus ridades)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Krvutiesitus:\n" #~ "* -W, --width=VEERGE laius on VEERGE\n" #~ "* -y, --side-by-side kasuta krvutiesitust\n" #~ "* --left-column histe ridade korral vljasta vaid vasak " #~ "veerg\n" #~ "\n" #~ "* --sdiff-merge-assist (kasutatakse sisemiselt `sdiff' poolt)\n" #~ "* --suppress-common-lines ra vljasta hiseid ridu\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAAT kirjeldatakse smbolitega ning jrgnevate jadadega:\n" #~ " %%%% smbol %%\n" #~ " %%c'C' kvooditud smbol C\n" #~ " %%c'\\O' smbol vrtusega O, 1 kuni 3 kaheksandnumbrit\n" #~ " %%(A=B?T:E) kui A vrdub B siis T muidu E; A ja B on number vi " #~ "MUUTUJA;\n" #~ " T ja E on FORMAAT\n" #~ " %%FN kasuta MUUTUJA vrtuse N vljastamiseks SPETSIF " #~ "mrangut F\n" #~ " %%< [grupp] vana, iga rida kasutab --old-line-format\n" #~ " %%> [grupp] uus, iga rida kasutab --new-line-format\n" #~ " %%= [grupp] muutmata, iga rida kasutab --unchanged-line-" #~ "format\n" #~ " %%l [rida] lpetava reavahetuseta\n" #~ " %%L [rida] koos vimaliku reavahetusega\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPETSIF on [-][W[.D]]{doxX}, nagu C printf korral\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "MUUTUJA on {eflmn} vana grupi korral vi {EFLMN} uue grupi korral\n" #~ " {eE} rea number vahetult enne gruppi\n" #~ " {fF} grupi esimese rea number\n" #~ " {lL} grupi viimase rea number\n" #~ " {mM} rea number vahetult peale gruppi\n" #~ " {nN} ridade arv grupis\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Standard diff vtmed:\n" #~ " -i, --ignore-case tta tstutundetuna\n" #~ " -w, --ignore-all-space ignoreeri kiki thikuid\n" #~ " -b, --ignore-space-change ignoreeri muutusi thikute arvus\n" #~ " -B, --ignore-blank-lines ignoreeri thjade ridade lisamisi\n" #~ " -I, --ignore-matching-lines=RE ignoreeri RE mratud muutuseid\n" #~ " -a, --text ksitle kiki faile tekstifailidena\n" #~ " -c, --context[=NUMBER] vljasta konteksti erinevused,\n" #~ " esita ka NUMBER ridu konteksti\n" #~ " -u, --unified[=NUMBER] vljasta erinevused unidiff vorminduses,\n" #~ " esita ka NUMBER ridu konteksti\n" #~ " -C, --context=NUM vljasta NUM rida kopeeritud konteksti\n" #~ " -U, --unified=NUM vljasta NUM rida unifitseeritud konteksti\n" #~ " -L, --label=MRGEND kasuta faili nime asemel MRGEND\n" #~ " -p, --show-c-function nita millises C funktsioonis muutus esineb\n" #~ " -F, --show-function-line=RE nita vrskeimat RE mratud rida\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief teata, kas failid on erinevad\n" #~ " -e, --ed vljasta ed skript\n" #~ " -n, --rcs vljasta erinevused RCS vorminduses\n" #~ " -y, --side-by-side vljasta kahes veerus\n" #~ " -w, --width=NUM vljasta maks. NUM (vaikimisi 130) smbolit " #~ "reale\n" #~ " --left-column vljasta hine rida ainult vasakusse veergu\n" #~ " --suppress-common-lines ra vljasta hiseid ridu\n" #~ " -D, --ifdef=NIMI vljasta mestitud fail `#ifdef NIMI' " #~ "vorminduses\n" #~ " --GTYPE-group-format=GFMT GTYPE sisendi grupid formaadiga GFMT\n" #~ " --line-format=LFMT kik sisendi read formaadiga LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE sisendi read formaadiga LFMT\n" #~ " -l, --paginate saada vljund programmi `pr'\n" #~ " -t, --expand-tabs asenda vljundis tabulaatorid thikutega\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab lisa rea algusse tabulaator\n" #~ " -r, --recursive vrdle katalooge rekursiivselt\n" #~ " -N, --new-file ksitle puuduvaid faile thjadena\n" #~ " -P, --unidirectional-new-file ksitle puuduvaid esimesi faile " #~ "thjadena\n" #~ " -s, --report-identical-files teata, kui failid on sama sisuga\n" #~ " -x, --exclude=MUSTER vlista mustrile vastavad failid\n" #~ " -X, --exclude-from=FAIL vlista failist loetud mustrile vastavad " #~ "failid\n" #~ " -S, --starting-file=FAIL alusta failide vrdlemist antud failist\n" #~ " --horizon-lines=NUM kaasa NUM rida\n" #~ " -d, --minimal tta vikeste muutuste korral rohkem\n" #~ " -H, --speed-large-files tta paljude muutuste korral kiiremini\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Vaikimisi on konteksti erinevustega lisatud kaks rida konteksti.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE on `old', `new' vi `unchanged'. GTYPE on LTYPE vi `changed'.\n" #~ "GFMT vib sisaldada:\n" #~ " %< read failist FAIL1\n" #~ " %> read failist FAIL2\n" #~ " %= FAIL1 ja FAIL2 hised read\n" #~ " %[-][WIDTH][.[PREC]]{doxX}THT printf-stiilis kirjeldus THELE\n" #~ " THED on jrgnevad uuele grupile, viketht on vanale grupile:\n" #~ " F esimese rea number\n" #~ " L viimase rea number\n" #~ " N ridade arv = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT vib sisaldada:\n" #~ " %L rea sisu\n" #~ " %l rea sisu, lpetava reavahetuseta\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-stiilis mrang sisendrea numbrile\n" #~ "Nii GFMT kui LFMT vivad sisaldada:\n" #~ " %% %\n" #~ " %c'C' ks smbol C\n" #~ " %c'\\OOO' smbol kaheksandkoodiga OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Vana mdiff vtmed:\n" #~ "* -f, --fuzz-items=ELEM mitte rohkem kui ELEM mittesobivat klastri " #~ "elementi\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Autoriigus (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs vljund konteksti erinevuste formaadis\n" #~ " -e, --echo-comments kommentaarid standard vea voogu\n" #~ " -o, --old-diffs vljund vana-stiili diff formaadis\n" #~ " -p, --patch-format vljund paranduste formaadis\n" #~ " -P sama kui -p\n" #~ " -s, --strip-comments eemalda kommentaarid\n" #~ " -u, --unidiffs vljund unidiff formaadis\n" #~ " -U sama kui -p ja -u\n" #~ " -=, --use-equals asenda unidiff vljundis thikud " #~ "vrdusmrkidega\n" #~ " --help esita see abiinfo ja lpeta t\n" #~ " --version esita versiooniinfo ja lpeta t\n" #~ "\n" #~ "Kui faili ei antud, loe standardsisendit.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Kohustuslikud argumendid pikkadel vtmetel on kohustuslikud ka " #~ "lhikestel.\n" #~ "\n" #~ " -C, --copyright esita autoriigused ja lpeta t\n" #~ " -K, --no-init-term nagu -t, aga termcap init/term snedeta\n" #~ " -V, --version esita versiooniinfo ja lpeta t\n" #~ " -1, --no-deleted ra vljasta kustutatud snu\n" #~ " -2, --no-inserted ra vljasta lisatud snu\n" #~ " -3, --no-common ra vljasta hiseid snu\n" #~ " -a, --auto-pager kasuta automaatselt lehitsejat\n" #~ " -h, --help esita see abiinfo\n" #~ " -i, --ignore-case vrdle tstutundetult\n" #~ " -l, --less-mode kasuta \"less\" moodi\n" #~ " -n, --avoid-wraps ra kasuta mitmerealisi vlju\n" #~ " -p, --printer lekirjutamine nagu trkkalites\n" #~ " -s, --statistics esita t statistikat\n" #~ " -t, --terminal kasuta termcap terminali infot\n" #~ " -w, --start-delete=SNE kustutamisregiooni alguse marker\n" #~ " -x, --end-delete=SNE kustutamisregiooni lpu marker\n" #~ " -y, --start-insert=SNE lisamisregiooni alguse marker\n" #~ " -z, --end-insert=SNE lisamisregiooni lpu marker\n" wdiff-1.2.1/po/pt_BR.po0000644000000000000000000014443112116513226011473 00000000000000# wdiff: Translation to Brazilian Portuguese (pt_BR). # Copyright (C) 2002 Free Software Foundation, Inc. # Halley Pacheco de Oliveira , 2002. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5g\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:49+0100\n" "Last-Translator: Halley Pacheco de Oliveira \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (para a expresso regular `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Somente um arquivo pode ser a entrada padro." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Diretrios no suportados" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lendo %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d itens\n" msgstr[1] ", %d itens\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d itens\n" msgstr[1] ", %d itens\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d itens\n" msgstr[1] ", %d itens\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Ordenando" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", agregando (clustering)" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", feito\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Ordenando membros" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", agregando (clustering)" msgstr[1] ", agregando (clustering)" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d itens\n" msgstr[1] ", %d itens\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Selecione o terminal atravs da varivel de ambiente TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Impossvel acessar a base de dados `termcap'" #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "O terminal tipo `%s' no est definido." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d palavras" msgstr[1] "%s: %d palavras" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% comum" msgstr[1] " %d %d%% comum" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% excludo" msgstr[1] " %d %d%% excludo" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% modificado" msgstr[1] " %d %d%% modificado" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% inserido" msgstr[1] " %d %d%% inserido" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Utilize `%s --help' para obter mais informaes.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Estuda mltiplos arquivos procurando seqncias similares e\n" "produzindo, ento, listas detalhadas de diferenas e similaridades.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Utilizao: %s [OPO]... [ARQUIVO]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Modos de Operao:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (ignorado)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose exibe umas poucas estatsticas na stderr.\n" # ? " --help Exibe esta ajuda e termina." # ? " --help exibe esta ajuda e termina." #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr "" # ? " --version Exibe a informao da verso e termina." # ? " --version exibe as informaes da verso e termina." #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr "" #: src/mdiff.c:3783 #, fuzzy msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatao da Sada:\n" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab colocar TAB em vez de espao inicial.\n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate paginar a sada atravs da `pr'.\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] anotar outra STRING do usurio.\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links fornecer referncias de arquivo.\n" " e de linha nas anotaes.\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expandir tabulaes em espaos na sada.\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Depurao:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging exibe muitos detalhes sobre o que est acontecendo\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted Inibir a exibio das linhas excludas.\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted Inibir a exibio das linhas inseridas.\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common Inibir a exibio das palavras comuns.\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager Chama automaticamente o paginador.\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode Variao do modo de impresso para \"less.\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps No extender campos atravs de novas linhas.\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer Sobrepor para impressora.\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal Usar `termcap' para exibio em terminal.\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=EXPREG Comparar itens conforme definido em EXPREG.\n" " (EXPREG = expresso regular)\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode Comparar palavras em vez de linhas.\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Sem nenhum ARQUIVO, ou quando ARQUIVO for -, ler da entrada padro.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Relate problemas para .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Impossvel utilizar -z, 'termcap' no est disponvel." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Mescla de palavras para dois arquivos apenas (por enquanto)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Direitos Autorais (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Este um programa livre; veja no fonte as condies para copiar.\n" "No existe nenhuma garantia, nem mesmo de COMERCIALIZAO ou de\n" "ADEQUAO PARA ALGUMA FINALIDADE PARTICULAR.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Escrito por Franois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Opes -123RSYZ somente fazem sentido quando existem duas entradas." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Impossvel encontrar o nome para a diferena na linha %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Utilize `%s --help' para obter mais informaes.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transforma contexto `diffs' em `unidiffs', ou vice-versa.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Utilizao: %s [OPO]... [ARQUIVO]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr "" " -c, --context-diffs Forar a sada para contexto das diferenas.\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments Enviar os comentrios para a sada padro.\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs Exibir as diferenas no estilo antigo.\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format Gerar formato de correo.\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P O mesmo que -p.\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments Remover linhas de comentrios.\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs Forar a sada no contexto unificado.\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U O mesmo que -p e -u.\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals Substituir espaos pelo sinal de igual\n" " no contexto unificado.\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Se ARQUIVO no for especificado, ler da entrada padro.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Impossvel abrir `%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Somente o nome de um arquivo permitido" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Direitos Autorais (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Escrito por Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Cabealho de diferena unificada invlido na linha %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Diferena unificada mal formada na linha %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Contexto das diferenas sem o cabealho `old' na linha %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Contexto das diferenas mal formado na linha %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Contexto das diferenas sem o cabealho `new' na linha %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Este programa um software livre; voc pode redistribuir e/ou modificar\n" "sob os termos da Licena Pblica Geral GNU conforme publicado pela\n" "Free Software Foundation, utilizando a verso 2, ou (se preferir)\n" "qualquer verso posterior.\n" "\n" "Este programa distribudo na esperana de que ser til,\n" "mas SEM NENHUMA GARANTIA; mesmo sem a garantia implicita de\n" "COMERCIALIZAO ou de ADEQUAO PARA ALGUMA FINALIDADE PARTICULAR.\n" "Veja a Licena Pblica Geral GNU para mais informaes.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Compara palavras em dois arquivos e relata as diferenas.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Utilizao: %s [OPO]... ARQUIVO1 ARQUIVO2\n" " %s -d [OPO]... [ARQUIVO]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Mandatory arguments to long options are mandatory for short options too.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright Exibir os direitos autorais e terminar.\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager Chamar o paginador automaticamente.\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help Exibir esta ajuda.\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case Ignorar maisculas/minsculas ao comparar.\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode Variao do modo de exibio para \"less\".\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps No estender campos atravs de novas linhas.\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer Sobrepor para exibio.\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics Informar quantas linhas excludas, inseridas " "etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal Usar termcap para exibio em terminais.\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -V, --version Exibir a verso do programa e terminar.\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING String para marcar o incio da regio " "excluda.\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRING String para marcar o final da regio excluda.\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING String para marcar o incio da regio " "inserida.\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING String para marcar o final da regio inserida.\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Impossvel utilizar -t, `termcap' no est disponvel." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Direitos Autorais (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Faltando os argumentos de arquivo" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Faltando os argumentos de arquivo" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Direitos Autorais (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Utilizao: %s [OPO]... ARQUIVO1 ARQUIVO2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, fuzzy, c-format msgid "Launching `%s" msgstr "Lendo %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Resumo da leitura: %d arquivos, %d itens\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Resumo do trabalho: %d agregaes (clusters), %d membros\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "" #~ "Resumo do trabalho:\n" #~ " %d agregaes (clusters), %d membros, %d sobreposies\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term Como -z, mas sem as strings `init/term'.\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term Como -t, mas sem strings init/term do " #~ "termcap.\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Modos de Operao:\n" #~ " -h (ignorado)\n" #~ " -v, --verbose exibe umas poucas estatsticas na stderr.\n" #~ " --help exibe esta ajuda e termina.\n" #~ " --version exibe as informaes da verso e termina.\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formatao da Sada:\n" #~ " -T, --initial-tab colocar TAB em vez de espao inicial.\n" #~ " -l, --paginate paginar a sada atravs da `pr'.\n" #~ " -S, --string[=STRING] anotar outra STRING do usurio.\n" #~ " -V, --show-links fornecer referncias de arquivo.\n" #~ " e de linha nas anotaes.\n" #~ " -t, --expand-tabs expandir tabulaes em espaos na sada.\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Opes do Modo Palavra:\n" #~ " -1, --no-deleted Inibe a exibio das palavras removidas.\n" #~ " -2, --no-inserted Inibe a exibio das palavras inseridas.\n" #~ " -3, --no-common Inibe a exibio das palavras comuns.\n" #~ " -A, --auto-pager Chama automaticamente o paginador.\n" #~ " -k, --less-mode Variao do modo de impresso para \"less." #~ "\"\n" #~ " -m, --avoid-wraps No extender campos atravs de novas " #~ "linhas.\n" #~ " -o, --printer Sobrepor para impressora.\n" #~ " -z, --terminal Usar `termcap' para exibio em terminal.\n" #~ " -K, --no-init-term Como -z, mas sem as strings `init/term'.\n" #~ " -O, --item-regexp=EXPREG Comparar itens conforme definido em " #~ "EXPREG.\n" #~ " (EXPREG = expresso regular) -W, --word-" #~ "mode Comparar palavras em vez de linhas.\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparao de Arquivos:\n" #~ "* -H, --speed-large-files Acelera no caso de muitas alteraes " #~ "pequenas.\n" #~ "* -a, --text Exibe diferenas de linha.\n" #~ " (padro para arquivo de texto)\n" #~ "* -d, --minimal Se esforar para encontrar o menor " #~ "conjunto\n" #~ " de diferenas.\n" #~ "* -q, --brief Diz apenas se os arquivos so diferentes.\n" #~ " (padro para arquivos binrios)\n" #~ "* --horizon-lines=LINHAS Exibe o nmero de LINHAS em comum\n" #~ " no prefixo e no sufixo.\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Comparao de Diretrios:\n" #~ "* -N, --new-file Considerar arquivos faltando como " #~ "vazios.\n" #~ "* -P, --unidirectional-new-file Considerar arquivos antigos faltando\n" #~ " como vazios.\n" #~ "* -S, --starting-file=ARQUIVO Prosseguir a comparao dos " #~ "diretrios\n" #~ " a partir do ARQUIVO.\n" #~ "* -X, --exclude-from=ARQUIVO Ignorar os arquivos que correspondam " #~ "aos\n" #~ " padres contidos em ARQUIVO.\n" #~ "* -r, --recursive Comparar os subdiretrios " #~ "recursivamente.\n" #~ "* -s, --report-identical-files Relatar quando dois arquivos forem\n" #~ " idnticos.\n" #~ "* -x, --exclude=PADRO Ignorar arquivos (diretrios) que\n" #~ " correspondem ao PADRO.\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Ignorar Texto:\n" #~ " -B, --ignore-blank-lines Ignorar as linhas em branco.\n" #~ "* -I, --ignore-matching-lines=EXPREG Ignorar as linhas que " #~ "correspondem\n" #~ " expresso regular EXPREG.\n" #~ " -b, --ignore-space-change Ignorar a quantidade de espaos\n" #~ " em branco.\n" #~ " -i, --ignore-case Ignorar as diferenas entre " #~ "letras\n" #~ " maisculas e minsculas.\n" #~ " -w, --ignore-all-space Ignorar espaos em branco.\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Agregao (cluster):\n" #~ " -G, --relist-files Listar todos os arquivos de entrada\n" #~ " com anotaes.\n" #~ " -J, --minimum-size=ITENS Ignorar as agregaes (clusters) que no\n" #~ " tiverem ao menos tantos ITENS.\n" #~ " -j, --ignore-delimiters No contar itens que possuirem apenas\n" #~ " delimitadores.\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Formatos de sada detalhados:\n" #~ "* -D, --ifdef=NOME Exibe no formato `#ifdef NOME'.\n" #~ "* --changed-group-format=FORMATO Usar FORMATO para linhas " #~ "modificadas.\n" #~ "* --new-group-format=FORMATO Usar FORMATO para grupos " #~ "includos.\n" #~ "* --new-line-format=FORMATO Usar FORMATO para linhas " #~ "includas.\n" #~ "* --old-group-format=FORMATO Usar FORMATO para grupos " #~ "eliminados.\n" #~ "* --old-line-format=FORMATO Usar FORMATO para linhas " #~ "eliminadas.\n" #~ "* --unchanged-group-format=FORMATO Usar FORMATO para grupos " #~ "inalterados.\n" #~ "* --unchanged-line-format=FORMATO Usar FORMATO para linhas " #~ "inalteradas.\n" #~ "* --line-format=FORMATO --{old,new,unchanged}-line-" #~ "format.\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formatos tipo Script:\n" #~ " (nenhum de -CDUcefnuy) Exibe as diferenas da forma normal.\n" #~ "* -e, --ed Produz um script vlido para o `ed'.\n" #~ "* -f, --forward-ed Mistura entre -e e -n (no muito til).\n" #~ "* -n, --rcs Produz um formato RCS.\n" #~ " (internamente usado pelo RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Formatos de contexto e unificados:\n" #~ "* -F, --show-function-line=EXPREG Exibir a linha mais recente que\n" #~ " corresponde EXPresso REGular.\n" #~ "* -p, --show-c-function Mostrar em qual funo C (ed)\n" #~ " est cada diferena.\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LINHAS Como -c, tambm seleciona o tamanho\n" #~ " do contexto em linhas.\n" #~ "* -L, --label=RTULO Usar de/para RTULO em vez do nome\n" #~ " do arquivo (dobrado).\n" #~ "* -U, --unified=LINHAS Como -u, tambm seleciona o tamanho\n" #~ " do contexto em linhas.\n" #~ "* -c, --context Exibe o contexto das diferenas.\n" #~ " (padro de 3 linhas de contexto)\n" #~ "* -u, --unified Exibe o contexto unificado.\n" #~ " (padro de 3 linhas de contexto)\n" #~ "* -LINHAS (obsoleto: seleciona o tamanho do\n" #~ " contexto em linhas))\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Formato lado a lado:\n" #~ "* -W, --width=COLUNAS Usar a largura de COLUNAS.\n" #~ "* -y, --side-by-side Usar o formato de sada lado a lado.\n" #~ "* --left-column Exibir somente a coluna da esquerda\n" #~ " quando forem idnticas.\n" #~ "* --sdiff-merge-assist (usado internamente por `sdiff')\n" #~ "* --suppress-common-lines No exibir as linhas idnticas.\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMATO constitudo por caracteres representando a si prprios, " #~ "exceto:\n" #~ " %%%% um nico %%\n" #~ " %%c'C' C entre apstrofos\n" #~ " %%c'\\O' caracter com valor O, de 1 a 3 digitos octais\n" #~ " %%(A=B?T:E) se A for igual a B ento T seno E;\n" #~ " A e B nmeros ou VARIVEIS;\n" #~ " T e E FORMATOS\n" #~ " %%FN usar a especificao ESPEC F para exibir o valor da " #~ "varivel N\n" #~ " %%< [grupo] antigo, cada linha segundo --old-line-format\n" #~ " %%> [grupo] novo, cada linha segundo --new-line-format\n" #~ " %%= [grupo] inalterado, cada linha segundo --unchanged-line-" #~ "format\n" #~ " %%l [linha] sem o caracter final de nova linha\n" #~ " %%L [linha] com o caracter final de nova linha\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "ESPEC [-][W[.D]]{doxX} como na funo `printf' da linguagem C\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIVEL {eflmn} para grupo antigo ou {EFLMN} para grupo novo\n" #~ " {eE} nmero da linha logo antes do grupo\n" #~ " {fF} nmero da primeira linha do grupo\n" #~ " {lL} nmero da ltima linha do grupo\n" #~ " {mM} nmero da linha logo aps o grupo\n" #~ " {nN} nmero de linhas no grupo\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Opes padro do `diff':\n" #~ " -i, --ignore-case No fazer distino entre letras maisculas " #~ "e\n" #~ " minsculas no contedo do arquivo.\n" #~ " -w, --ignore-all-space Ignorar todos os espaos em branco.\n" #~ " -b, --ignore-space-change Ignorar a diferena na quantidade de espaos\n" #~ " em branco.\n" #~ " -B, --ignore-blank-lines Ignorar diferenas nas linhas somente com " #~ "brancos.\n" #~ " -I, --ignore-matching-lines=EXPREG\n" #~ " Ignorar as diferenas nas linhas que " #~ "correspondem\n" #~ " EXPresso REGular.\n" #~ " -a, --text Considerar todos os arquivos como sendo de " #~ "texto.\n" #~ " -c, --context[=N] Exibir o contexto regular das diferenas\n" #~ " (diffs) usando N linhas d contexto.\n" #~ " -u, --unified[=N] Exibir o contexto unificado das diferenas\n" #~ " (unidiffs) usando N linhas de contexto.\n" #~ " -C, --context=N Exibir N linhas do contexto copiado.\n" #~ " -U, --unified=N Exibir N linhas do contexto unificado.\n" #~ " -L, --label=RTULO Usar RTULO em vez do nome do arquivo.\n" #~ " -p, --show-c-function Mostrar qual funo C (ed) est cada " #~ "diferena.\n" #~ " -F, --show-function-line=EXPREG\n" #~ " Exibir a linha mais recente que corresponde\n" #~ " EXPresso REGular.\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief Indicar apenas se os arquivos so diferentes\n" #~ " -e, --ed Criar um script para o editor ed\n" #~ " -n, --rcs Criar o diff no formato RCS\n" #~ " -y, --side-by-side Exibir em duas colunas\n" #~ " -w, --width=NUM Exibir no mximo N colunas. (N=130 por " #~ "padro)\n" #~ " --left-column Exibir apenas a coluna da esquerda nas " #~ "linhas\n" #~ " idnticas\n" #~ " --suppress-common-lines\n" #~ " No exibir as linhas idnticas\n" #~ " -D, --ifdef=NAME Exibir o arquivo mesclado incluindo\n" #~ " `#ifndef NOME original #else modificado'\n" #~ " nas diferenas.\n" #~ " --GTYPE-group-format=GFMT\n" #~ " Formata grupos de entrada GTYPE com GFMT\n" #~ " --line-format=LFMT Formata todas as linhas de entrada com LFMT\n" #~ " --LTYPE-line-format=LFMT\n" #~ " Formata todas as linhas de entrada LTYPE com " #~ "LFMT\n" #~ " -l, --paginate Passar a sada atravs da `pr' para paginar\n" #~ " -t, --expand-tabs Expandir as tabulaes para espaos na sada\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab Alinhar as diferenas introduzindo um\n" #~ " caracter de tabulao no incio.\n" #~ " -r, --recursive Comparar recursivamente todos os\n" #~ " subdiretrios encontrados.\n" #~ " -N, --new-file Considerar arquivos ausentes como vazios.\n" #~ " -P, --unidirectional-new-file\n" #~ " Considerar os primeiros arquivos\n" #~ " ausentes como vazios.\n" #~ " -s, --report-identical-files\n" #~ " Indicar quando dois arquivos forem o " #~ "idnticos.\n" #~ " -x, --exclude=PADRO No comparar os arquivos cujos nomes\n" #~ " correspondem ao PADRO.\n" #~ " -X, --exclude-from=ARQUIVO\n" #~ " Excluir os arquivos com nomes que " #~ "correspondem\n" #~ " a qualquer padro contido no ARQUIVO.\n" #~ " -S, --starting-file=ARQUIVO\n" #~ " Iniciar por ARQUIVO ao comparar dois " #~ "diretrios.\n" #~ " --horizon-lines=N Manter N linhas de prefixo e sufixo " #~ "idnticos.\n" #~ " -d, --minimal Se esforar para encontrar o menor conjunto\n" #~ " de diferenas.\n" #~ " -H, --speed-large-files Assumir arquivos grandes e muitas alteraes\n" #~ " pequenas espalhadas.\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Por padro, o contexto das diferenas possui um horizonte de duas " #~ "linhas.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE pode ser `old', `new', ou `unchanged'. \n" #~ "GTYPE pode ser um dos valores de LTYPE ou `changed'.\n" #~ "GFMT pode conter:\n" #~ " %< linhas do ARQUIVO1\n" #~ " %> linhas do ARQUIVO2\n" #~ " %= linhas comuns ao ARQUIVO1 e ao ARQUIVO2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETRA\n" #~ " especificao no estilo `printf' para LETRA\n" #~ " LETRAS abaixo para grupos novos, minsculas para grupos antigos:\n" #~ " F nmero da primeira linha\n" #~ " L nmero da ltima linha\n" #~ " N nmero de linhas = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT pode conter:\n" #~ " %L contedo da linha\n" #~ " %l contedo da linha, excluindo qualquer caracter final de nova linha\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n especificao no estilo `printf'\n" #~ " para o nmero da linha de entrada\n" #~ "Tanto GFMT quanto LFMT podem conter:\n" #~ " %% %\n" #~ " %c'C' o nico caracter C\n" #~ " %c'\\OOO' o caracter com valor octal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Opes mdiff antigas:\n" #~ "* -f, --fuzz-items=ITENS no mais do que ITENS sem correspondencia\n" #~ " em uma agregao (cluster)\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Direitos Autorais (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs Forar a sada para contexto das diferenas.\n" #~ " -e, --echo-comments Enviar os comentrios para a sada padro.\n" #~ " -o, --old-diffs Exibir as diferenas no estilo antigo.\n" #~ " -p, --patch-format Gerar formato de correo.\n" #~ " -P O mesmo que -p.\n" #~ " -s, --strip-comments Remover linhas de comentrios.\n" #~ " -u, --unidiffs Forar a sada no contexto unificado.\n" #~ " -U O mesmo que -p e -u.\n" #~ " -=, --use-equals Substituir espaos pelo sinal de igual\n" #~ " no contexto unificado.\n" #~ " --help Exibe esta ajuda e termina.\n" #~ " --version Exibe a informao da verso e termina.\n" #~ "\n" #~ "Se ARQUIVO no for especificado, ler da entrada padro.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright Exibir os direitos autorais e terminar.\n" #~ " -K, --no-init-term Como -t, mas sem strings init/term do " #~ "termcap.\n" #~ " -V, --version Exibir a verso do programa e terminar.\n" #~ " -1, --no-deleted Inibir a exibio das linhas excludas.\n" #~ " -2, --no-inserted Inibir a exibio das linhas inseridas.\n" #~ " -3, --no-common Inibir a exibio das palavras comuns.\n" #~ " -a, --auto-pager Chamar o paginador automaticamente.\n" #~ " -h, --help Exibir esta ajuda.\n" #~ " -i, --ignore-case Ignorar maisculas/minsculas ao comparar.\n" #~ " -l, --less-mode Variao do modo de exibio para \"less\".\n" #~ " -n, --avoid-wraps No estender campos atravs de novas " #~ "linhas.\n" #~ " -p, --printer Sobrepor para exibio.\n" #~ " -s, --statistics Informar quantas linhas excludas, inseridas " #~ "etc.\n" #~ " -t, --terminal Usar termcap para exibio em terminais.\n" #~ " -w, --start-delete=STRING String para marcar o incio da regio " #~ "excluda.\n" #~ " -x, --end-delete=STRING String para marcar o final da regio " #~ "excluda.\n" #~ " -y, --start-insert=STRING String para marcar o incio da regio " #~ "inserida.\n" #~ " -z, --end-insert=STRING String para marcar o final da regio " #~ "inserida.\n" wdiff-1.2.1/po/stamp-po0000644000000000000000000000001212116513226011572 00000000000000timestamp wdiff-1.2.1/po/en@boldquot.header0000644000000000000000000000247111744500044013550 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # wdiff-1.2.1/po/boldquot.sed0000644000000000000000000000033111744500044012441 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g wdiff-1.2.1/po/id.po0000644000000000000000000014425712116513226011067 00000000000000# wdiff 0.5g (Indonesian) # Copyright (C) 2002 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Tedi Heriyanto , 2002 # Arif E. Nugroho , 2008. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5.93\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 21:22+0100\n" "Last-Translator: Arif E. Nugroho \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (untuk regexp `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Hanya satu file boleh sebagai standar input" #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Direktori tidak didukung" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Membaca %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d item\n" msgstr[1] ", %d item\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d item\n" msgstr[1] ", %d item\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d item\n" msgstr[1] ", %d item\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Mengurutkan" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", clustering" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", selesai\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Mengurutkan anggota" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", clustering" msgstr[1] ", clustering" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d item\n" msgstr[1] ", %d item\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Pilih terminal melalui variabel lingkungan TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Tidak dapat mengakses database termcap." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Tipe terminal `%s' tidak didefinisikan." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d kata" msgstr[1] "%s: %d kata" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] "%d %d%% umum" msgstr[1] "%d %d%% umum" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] "%d %d%% dihapus" msgstr[1] "%d %d%% dihapus" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] "%d %d%% dirubah" msgstr[1] "%d %d%% dirubah" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] "%d %d%% disisipkan" msgstr[1] "%d %d%% disisipkan" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Mempelajari banyak file dan mencari urutan yang serupa, ia kemudian\n" "menghasilkan daftar rinci perbedaan dan persamaan.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Penggunaan: %s [OPTION]... [FILE]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Mode operasi:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (diabaikan)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose laporkan statistik ke stderr\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help tampilkan bantuan ini dan keluar\n" # ? " --version tampilkan informasi versi dan keluar" # ? " --version tampilkan informasi output dan keluar" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr "" #: src/mdiff.c:3783 #, fuzzy msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Format output:\n" #: src/mdiff.c:3784 #, fuzzy msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab hasilkan TAB alih-alih spasi awal\n" #: src/mdiff.c:3785 #, fuzzy msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate paginasi output melalui `pr'\n" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRING] perhatikan STRING user lain\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links beri referensi file dan baris dalam anotasi\n" #: src/mdiff.c:3788 #, fuzzy msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs ekspansi tab ke spasi dalam output\n" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging keluarkan banyak rincian tentang apa yang terjadi\n" #: src/mdiff.c:3795 #, fuzzy msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opsi mode kata:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted halangi keluaran dari kata yang dihapus\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" " -2, --no-inserted halangi keluaran dari kata yang dimasukan\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common halangi keluaran dari kata umum\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager panggil pager secara otomatis\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variasi mode printer untuk \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps jangan perluas field melalui baris baru\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer overstrike sebagai printer\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal gunakan termcap sebagai display terminal\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP bandingkan item sebagaimana didefinisikan\n" " oleh REGEXP\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode bandingkan kata-kata alih-alih baris\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Tanpa FILE, atau ketika FILE adalah -, baca standard input.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Laporkan bug ke .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Tidak dapat menggunakan -z, termpcap tidak tersedia." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Gabungan kata hanya untuk dua file (sejauh ini)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Hak Cipta 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Ditulis oleh Francois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Opsi -123RSYZ berarti ketika dua input." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Tidak dapat menemukan nama untuk diff pada baris %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Transformasi context diffs ke unidiff, atau sebaliknya.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Penggunaan: %s [OPTION]... [FILE]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs paksa output ke context diffs\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments echo komentar ke standard error\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs output diff gaya lama\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format hasilkan format patch\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P sama seperti -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments hilangkan baris komentar\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs paksa output ke unidiffs\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U sama seperti -p dan -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals ganti spasi dengan tanda sama dengan dalam " "unidiffs\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Jika FILE tidak dispesifikasikan, baca dari standard input.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Tidak dapat membuka `%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Hanya satu namafile yang diijinkan" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (c) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Ditulis oleh Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Header diff unified tidak valid pada baris %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Unified diff malform pada baris %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Context diff kehilangan header`old' pada baris %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Context diff malform pada baris %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Context diff kehilangan header `new' pada baris %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, fuzzy, c-format msgid "no suitable temporary directory exists" msgstr "Tidak ada direktori sementara yang sesuai" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Aplikasi ini adalah aplikasi bebas; anda dapat meredistribusikannya\n" "dan/atau memodifikasinya dibawah lisensi dari GNU General Public Lisensi\n" "seperti dipublikasikan oleh Free Software Foundation; baik versi 2, atau\n" "(menurut opsi anda) di versi selanjutnya.\n" "\n" "Aplikasi ini didistribusikan dengan harapan ini akan berguna, tetapi\n" "TANPA GARANSI APAPUN; bahkan tanpa garansi untuk DIPERDAGANGKAN atau\n" "KECOCOKAN UNTUK TUJUAN TERTENTU. Lihat GNU General Public License\n" "untuk lebih lengkapnya.\n" "\n" "Anda seharusnya menerima sebuah salinan dari GNU General Public License\n" "bersama dengan aplikasi ini; jika tidak, tulis ke Free Software Foundation,\n" "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Membandingkan kata dalam dua file dan melaporkan perbedaannya.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Penggunaan: %s [OPTION]... FILE1 FILE2\n" " %s -d [OPTION]... [FILE]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Argumen wajib ke opsi panjang juga wajib untuk opsi pendek juga.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright tampilkan hak cipta kemudian keluar\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager secara otomatis panggil sebuah pager\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help tampilkan bantuan ini\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case abaikan besar huruf ketika membandingkan\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode variasi dari mode penampilan untuk \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps jangan lebarkan daerah melalui baris baru\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike seperti untuk pencetak\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics katakan bagaimana kata dihapus, dimasukan, " "dll.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal gunakan termcap sebagai penampilan terminal\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version tampilkan versi aplikasi kemudian keluar\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING string untuk menandai awal dari penghapusan " "daerah\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRING string untuk menandai akhir dari penghapusan " "daerah\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING string untuk menandai awal dari pemasukan " "daerah\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING string untuk menandai akhir dari pemasukan " "daerah\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Tidak dapat menggunakan -t, termpcap tidak tersedia." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Hak Cipta 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Argumen file hilang" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Argumen file hilang" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (c) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Menghitung perbedaan kata dengan secara internal menjalankan\n" "`mdiff -W'. Aplikasi ini ada hanya untuk mendukung sintaks yang\n" "sekarang sudah ditinggalkan `wdiff'.\n" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Penggunaan: %s [OPTION]... FILE1 FILE2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet halangi pesan pemanggilan `mdiff'\n" #: src/wdiff2.c:208 #, fuzzy msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Aplikasi ini juga memberitahu bagaimana `mdiff' dapat dipanggil secara " "langsung.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Menjalankan `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Membaca ringkasan: %d file, %d item\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Kesimpulan kerja: %d cluster, %d anggota\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Kesimpulan kerja: %d cluster, %d anggota, %d overlap\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term seperti -z, namun tanpa string init/term\n" #~ " termcap\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -k, --no-init-term seperti -t, tetapi tanpa string " #~ "inisialisasi\n" #~ " termcap\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Mode operasi:\n" #~ " -h (diabaikan)\n" #~ " -v, --verbose laporkan statistik ke stderr\n" #~ " --help tampilkan bantuan ini dan keluar\n" #~ " --version tampilkan informasi output dan keluar\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Format output:\n" #~ " -T, --initial-tab hasilkan TAB alih-alih spasi awal\n" #~ " -l, --paginate paginasi output melalui `pr'\n" #~ " -S, --string[=STRING] perhatikan STRING user lain\n" #~ " -V, --show-links beri referensi file dan baris dalam anotasi\n" #~ " -t, --expand-tabs ekspansi tab ke spasi dalam output\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Opsi mode kata:\n" #~ " -1, --no-deleted tiadakan kata terhapus di output\n" #~ " -2, --no-inserted tiadakan kata tersisip di output\n" #~ " -3, --no-common tiadakan kata umum di output\n" #~ " -A, --auto-pager panggil pager secara otomatis\n" #~ " -k, --less-mode variasi mode printer untuk \"less\"\n" #~ " -m, --avoid-wraps jangan perluas field melalui baris baru\n" #~ " -o, --printer overstrike sebagai printer\n" #~ " -z, --terminal gunakan termcap sebagai display terminal " #~ "\\n -K, --no-init-term seperti -z, namun tanpa string init/term " #~ "termcap\n" #~ " -O, --item-regexp=REGEXP bandingkan item sebagaimana didefinisikan " #~ "oleh REGEXP\n" #~ " -W, --word-mode bandingkan kata-kata alih-alih baris\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Membandingkan file:\n" #~ "* -H, --speed-large-files cepat, untuk perubahan kecil yang banyak\n" #~ "* -a, --text laporkan perbedaan baris (default file " #~ "teks)\n" #~ "* -d, --minimal usaha lebih keras untuk perubahan yang " #~ "lebih kecil\n" #~ "* -q, --brief laporkan file berbeda secara ringkas " #~ "(default file biner)\n" #~ "* --horizon-lines=LINES jaga LINES baris dalam prefiks/suffiks " #~ "umum\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Membandingkan direktori:\n" #~ "* -N, --new-file anggap file hilang sebagai kosong\n" #~ "* -P, --unidirectional-new-file anggap file tua hilang sebagai kosong\n" #~ "* -S, --starting-file=FILE lanjutkan perbandingan direktori " #~ "dengan FILE\n" #~ "* -X, --exclude-from=FILE abaikan pola pencocokan file dari " #~ "FILE\n" #~ "* -r, --recursive bandingkan subdirektori secara " #~ "rekursif\n" #~ "* -s, --report-identical-files laporkan bila dua file sama\n" #~ "* -x, --exclude=PATTERN abaikan file (dir) yang cocok dengan " #~ "PATTERN\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Abaikan teks:\n" #~ " -B, --ignore-blank-lines abaikan baris kosong\n" #~ "* -I, --ignore-matching-lines=REGEXP abaikan baris yang cocok dengan " #~ "REGEXP\n" #~ " -b, --ignore-space-change abaikan jumlah spasi\n" #~ " -i, --ignore-case abaikan beda case\n" #~ " -w, --ignore-all-space abaikan semua spasi\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files daftar semua file input dengan anotasi\n" #~ " -J, --minimum-size=ITEMS abaikan cluster yang tidak memiliki banyak " #~ "ITEMS\n" #~ " -j, --ignore-delimiters abaikan item yang hanya memiliki delimiters\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Format output rinci:\n" #~ "* -D, --ifdef=NAME hasilkan output format `#ifdef " #~ "NAME'\n" #~ "* --changed-group-format=FORMAT gunakan FORMAT untuk baris-baris " #~ "yang berubah\n" #~ "* --new-group-format=FORMAT gunakan FORMAT untuk baris-baris " #~ "yang disisipi\n" #~ "* --new-line-format=FORMAT gunakan FORMAT untuk baris yang " #~ "disisipi\n" #~ "* --old-group-format=FORMAT gunakan FORMAT untuk baris-baris " #~ "yang dihapus\n" #~ "* --old-line-format=FORMAT gunakan FORMAT untuk baris yang " #~ "dihapus\n" #~ "* --unchanged-group-format=FORMAT gunakan FORMAT untuk baris-baris " #~ "yang tetap\n" #~ "* --unchanged-line-format=FORMAT gunakan FORMAT untuk baris yang " #~ "tetap\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Format mirip-skrip:\n" #~ " (none of -CDUcefnuy) hasilkan normal diffs\n" #~ "* -e, --ed hasilkan skrip `ed' yang valid\n" #~ "* -f, --forward-ed campur antara -e dan -n (tidak begitu berguna)\n" #~ "* -n, --rcs hasilkan format RCS (digunakan oleh RCS secara " #~ "internal)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Format context dan unified:\n" #~ "* -F, --show-function-line=REGEXP tampilkan context matching REGEXP " #~ "sebelumnya\n" #~ "* -p, --show-c-function tampilkan fungsi C untuk setiap " #~ "perubahan\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LINES seperti -c, juga memilih ukuran context " #~ "dalam baris\n" #~ "* -L, --label=LABEL gunakan dari/ke LABEL alih-alih nama file " #~ "(dua kali)\n" #~ "* -U, --unified=LINES seperti -u, juga memilih ukuran context " #~ "dalam baris\n" #~ "* -c, --context hasilkan context diffs (bakunya 3 baris " #~ "context)\n" #~ "* -u, --unified hasilkan unidiffs (bakunya 3 baris " #~ "context)\n" #~ "* -LINES (lawas: pilih ukuran context dalam baris)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Format sisi demi sisi:\n" #~ "* -W, --width=COLUMNS gunakan lebar COLUMNS\n" #~ "* -y, --side-by-side gunakan format sisi demi sisi\n" #~ "* --left-column cetak hanya kolom kiri baris ketika " #~ "common\n" #~ "* --sdiff-merge-assist (digunakan secara internal oleh " #~ "`sdiff')\n" #~ "* --suppress-common-lines jangan cetak baris-baris common\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT terdiri dari karakter-karakter, kecuali:\n" #~ " %%%% %% tunggal \n" #~ " %%c'C' karakter terquote C\n" #~ " %%c'\\O' karakter dengan nilai O, dari 1 hingga 3 digit oktal\n" #~ " %%(A=B?T:E) jika A adalah B maka T lainnya E; A B nomor atau " #~ "VARIABLE; T E FORMAT\n" #~ " %%FN gunakan spesifikasi SPECIF F untuk mencetak nilai " #~ "VARIABLE N\n" #~ " %%< [group] tua, setiap baris dengan --old-line-format\n" #~ " %%> [group] baru, setiap baris dengan --new-line-format\n" #~ " %%= [group] tetap, setiap baris dengan --unchanged-line-" #~ "format\n" #~ " %%l [line] tanpa baris baru yang mungkin mengikutinya\n" #~ " %%L [line] dengan baris baru yang mungkin mengikutinya\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF adalah [-][W[.D]]{doxX} seperti dalam C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABLE adalah {eflmn} untuk grup tua atau {EFLMN} untuk grup baru\n" #~ " {eE} nomor baris sebelum grup\n" #~ " {fF} nomor baris pertama grup\n" #~ " {lL} nomor baris terakhir grup\n" #~ " {mM} nomor baris setelah grup\n" #~ " {nN} nomor baris dalam grup\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Option diff standard:\n" #~ " -i, --ignore-case abaikan huruf besar/kecil\n" #~ " -w, --ignore-all-space abaikan semua spasi\n" #~ " -b, --ignore-space-change abaikan perubahan jumlah spasi\n" #~ " -B, --ignore-blank-lines abaikan perubahan semua baris yang kosong\n" #~ " -I, --ignore-matching-lines=RE abaikan perubahan yang cocok dengan RE\n" #~ " -a, --text anggap semua file sebagai teks\n" #~ " -c, --context[=NUMBER] hasilkan regular context diffs,\n" #~ " rubah ke NUMBER baris context\n" #~ " -u, --unified[=NUMBER] hasilkan unified context diffs atau " #~ "unidiffs,\n" #~ " dengan NUMBER baris context\n" #~ " -C, --context=NUM hasilkan NUM baris context yang disalin\n" #~ " -U, --unified=NUM hasilkan NUM baris unified context\n" #~ " -L, --label=LABEL gunakan LABEL alih-alih nama file\n" #~ " -p, --show-c-function tampilkan fungsi C yang mengalami perubahan\n" #~ " -F, --show-function-line=RE tampilkan baris terakhir yang cocok dengan " #~ "RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief tampilkan hasilkan file berbeda\n" #~ " -e, --ed hasilkan skrip ed\n" #~ " -n, --rcs hasilkan format diff RCS\n" #~ " -y, --side-by-side hasilkan dua kolom\n" #~ " -w, --width=NUM hasilkan paling banyak NUM (bakunya 130) " #~ "karakter per baris\n" #~ " --left-column hasilkan hanya kolom kiri baris bersama\n" #~ " --suppress-common-lines jangan tampilkan baris bersama\n" #~ " -D, --ifdef=NAME hasilkan file gabungan untuk menunjukkan diff " #~ "`#ifdef NAME'\n" #~ " --GTYPE-group-format=GFMT GTYPE grup input dengan GFMT\n" #~ " --line-format=LFMT semua baris input dengan LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE baris input dengan LFMT\n" #~ " -l, --paginate lewatkan hasil ke `pr' untuk paginasi\n" #~ " -t, --expand-tabs ekspansi tab ke spasi dalam output\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab buat baris tab naik dengan menyisipkan sebuah " #~ "tab\n" #~ " -r, --recursive membandingkan subdirektori yang ditemukan " #~ "secara rekursif\n" #~ " -N, --new-file anggap file hilang sebagai kosong\n" #~ " -P, --unidirectional-new-file anggap file pertama hilang sebagai " #~ "kosong\n" #~ " -s, --report-identical-files laporkan bila dua file saman -x, --" #~ "exclude=PAT abaikan file yang cocok dengan PAT\n" #~ " -X, --exclude-from=FILE abaikan file yang cocok dengan pola dalam " #~ "FILE\n" #~ " -S, --starting-file=FILE mulai dengan FILE ketika membandingkan " #~ "direktori\n" #~ " --horizon-lines=NUM jaga NUM baris prefiks dan suffiks bersama\n" #~ " -d, --minimal usaha keras untuk mencari set perubahan " #~ "kecil\n" #~ " -H, --speed-large-files asumsikan file besar dan banyak perubahan " #~ "kecil\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Bakunya, context diff hanya membandingkan dua baris.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE adalah `old', `new', atau `unchanged'. GTYPE adalah LTYPE atau " #~ "`changed'.\n" #~ "GFMT dapat berisi :\n" #~ " %< baris dari FILE1\n" #~ " %> baris dari FILE2\n" #~ " %= baris bersama FILE1 dan FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec untuk LETTER\n" #~ " LETTERs adalah sebagai berikut untuk grup baru, huruf kecil untuk " #~ "grup tua:\n" #~ " F nomor baris pertama\n" #~ " L nomor baris terakhir\n" #~ " N jumlah baris = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT dapat berisi:\n" #~ " %L isi baris\n" #~ " %l is baris, tanpa baris baru\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec untuk nomor baris input\n" #~ "GFMT atau LFMT dapat berisi:\n" #~ " %% %\n" #~ " %c'C' karakter tunggal C\n" #~ " %c'\\OOO' karakter dengan kode oktal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Option mdiff tua:\n" #~ "* -f, --fuzz-items=ITEMS tidak lebih dari ITEMS tidak cocok dalam " #~ "cluster\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (c) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs paksa output ke context diffs\n" #~ " -e, --echo-comments echo komentar ke standard error\n" #~ " -o, --old-diffs output diff gaya lama\n" #~ " -p, --patch-format hasilkan format patch\n" #~ " -P sama seperti -p\n" #~ " -s, --strip-comments hilangkan baris komentar\n" #~ " -u, --unidiffs paksa output ke unidiffs\n" #~ " -U sama seperti -p dan -u\n" #~ " -=, --use-equals ganti spasi dengan tanda sama dengan dalam " #~ "unidiffs\n" #~ " --help tampilkan bantuan ini dan keluar\n" #~ " --version tampilkan informasi versi dan keluar\n" #~ "\n" #~ "Jika FILE tidak dispesifikasikan, baca dari standard input.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ msgstr "" #~ "Argumen wajib ke opsi panjang juga wajib untuk opsi pendek juga.\n" #~ "\n" #~ " -C, --copyright tampilkan hak cipta kemudian keluar\n" #~ " -k, --no-init-term seperti -t, tetapi tanpa string inisialisasi " #~ "termcap\n" #~ " -1, --no-deleted halangi keluaran dari kata yang dihapus\n" #~ " -2, --no-inserted halangi keluaran dari kata yang dimasukan\n" #~ " -3, --no-common halangi keluaran dari kata umum\n" #~ msgid "" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ msgstr "" #~ " -a, --auto-pager secara otomatis panggil sebuah pager\n" #~ " -h, --help tampilkan bantuan ini\n" #~ " -i, --ignore-case abaikan besar huruf ketika membandingkan\n" #~ " -l, --less-mode variasi dari mode penampilan untuk \"less\"\n" #~ " -n, --avoid-wraps jangan lebarkan daerah melalui baris baru\n" #~ " -p, --printer overstrike seperti untuk pencetak\n" #~ msgid "" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -v, --version print program version then exit\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ " -s, --statistics katakan bagaimana kata dihapus, dimasukan, " #~ "dll.\n" #~ " -t, --terminal gunakan termcap sebagai penampilan terminal\n" #~ " -v, --version tampilkan versi aplikasi kemudian keluar\n" #~ " -w, --start-delete=STRING string untuk menandai awal dari penghapusan " #~ "daerah\n" #~ " -x, --end-delete=STRING string untuk menandai akhir dari penghapusan " #~ "daerah\n" #~ " -y, --start-insert=STRING string untuk menandai awal dari pemasukan " #~ "daerah\n" #~ " -z, --end-insert=STRING string untuk menandai akhir dari pemasukan " #~ "daerah\n" #~ msgid "Unknown system error" #~ msgstr "Sistem error tidak diketahui" #~ msgid "memory exhausted" #~ msgstr "kehabisan memori" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Argumen mandatori untuk option panjang juga mandatori untuk option " #~ "pendek.\n" #~ "\n" #~ " -C, --copyright cetak copyright lalu keluar\n" #~ " -K, --no-init-term seperti -t, tetapi tanpa string termcap init/" #~ "term\n" #~ " -V, --version cetak versi program lalu keluar\n" #~ " -1, --no-deleted tampilkan output kata-kata terhapus\n" #~ " -2, --no-inserted tampilkan output kata-kata tersisipi\n" #~ " -3, --no-common tampilkan output kata-kata bersama\n" #~ " -a, --auto-pager panggil pager secara otomatis\n" #~ " -h, --help cetak bantuan ini\n" #~ " -i, --ignore-case abaikan case saat membandingkan\n" #~ " -l, --less-mode variasi mode printer untuk \"less\"\n" #~ " -n, --avoid-wraps jangan ekstensi field melalui baris baru\n" #~ " -p, --printer overstrike seperti untuk printer\n" #~ " -s, --statistics beritahu berapa banyak kata terhapus, " #~ "disisipi, dsb.\n" #~ " -t, --terminal gunakan termcap untuk display terminal\n" #~ " -w, --start-delete=STRING string untuk menandai awal daerah terhapus\n" #~ " -x, --end-delete=STRING string untuk menandai akhir daerah terhapus\n" #~ " -y, --start-insert=STRING string untuk menandai awal daerah disisipi\n" #~ " -z, --end-insert=STRING string untuk menandai akhir daerah disisipi\n" wdiff-1.2.1/po/sv.po0000644000000000000000000005106212116513226011112 00000000000000# Swedish messages for wdiff # Copyright © 1996, 2001, 2008, 2011, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Jan Djärv , 1996, 2001, 2008, 2010, 2011, 2012 # msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-30 09:07+0200\n" "Last-Translator: Jan Djärv \n" "Language-Team: Swedish \n" "Language: sv\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" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (för reguljärt uttryck \"%s\")" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "endast en fil kan vara standard in" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "kataloger stöds inte" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Läser %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d post\n" msgstr[1] ", %d poster\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Lässummering:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d fil," msgstr[1] " %d filer," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d post\n" msgstr[1] " %d poster\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sorterar" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", grupperar" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", klar\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sorterar medlemmar" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Arbetssummering:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d grupp," msgstr[1] " %d grupper," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d medlem\n" msgstr[1] " %d medlemmar\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d medlem," msgstr[1] " %d medlemmar," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d överlapp\n" msgstr[1] " %d överlappningar\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "välj terminaltyp genom att sätta miljövariabeln TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "kan inte läsa termcap-databasen" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "terminaltyp \"%s\" är inte definierad" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d ord" msgstr[1] "%s: %d ord" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f %% gemensam" msgstr[1] " %d %.0f %% gemensamma" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f %% borttagen" msgstr[1] " %d %.0f %% borttagna" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f %% ändrad" msgstr[1] " %d %.0f %% ändrade" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f %% tillagd" msgstr[1] " %d %.0f %% tillagda" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Läser flera filer och letar efter liknande sekvenser, därefter\n" "visas en möjligen detaljerad lista med skillnader och likheter.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Användning: %s [FLAGGA]... [FIL]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Arbetslägen:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignorerad)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose rapportera en del statistik på standard fel\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help visa denna hjälptext och avsluta\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version visa versionsinformation och avsluta\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatera resultat:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab skriv TAB instället för inledande mellanslag\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" " -l, --paginate skicka resultatet genom \"pr\" för sidindelning\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=STRÄNG] ta även hänsyn till STRÄNG\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr " -V, --show-links ange fil- och radreferenser i annoteringar\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs ersätt tabulatortecken med mellanslag i reultatet\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Felsökning:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging skriv ut många detaljer om vad som händer\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Flaggor för ordläge:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted visa inte borttagna ord\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted visa inte tillagda ord\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common visa inte gemensamma ord\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager ge resultatet till en sidvisare\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode speciell variant av -o för \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps låt inte fält löpa över flera rader\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer dubbelskrift som för skrivare\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal använd termcap för att markera ord\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=REGEXP jämför poster som definieras av REGEXP\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode jämför ord istället för rader\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Utan FIL eller om FIL är -, läs standard in.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Rapportera fel till \n" "Rapportera fel eller synpunkter på översättningen till .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "ignorerar flaggan %s (inte implementerad)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "kan inte använda -z, termcap finns inte tillgängligt" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "ordsammanslagning finns endast för två filer (än så länge)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Detta är fri programvara; se källkoden för kopieringsvillkor. Det finns\n" "INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT\n" "ÄNDAMÅL.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Skriven av François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "flaggorna -123RSYZ är bara meningsfulla med två indatakällor" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "fel vid omdirigering av data" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "kunde inte exekvera %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "kan inte hitta ett namn för diff på rad %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "försök med \"%s --help\" för mer information.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Konvertera sammanhangsskillnad till enad, eller vice versa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Användning: %s [FLAGGA]... [FIL]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs visa resultatet som sammanhangsskillnad\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments skriv kommentarer till standard fel\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs visa under alla omständigheter skillnader på gammal " "stil\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format generera format för \"patch\"\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P samma som -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments ta bort kommentarsrader\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs visa resultatet som enad skillnad\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U samma som -p och -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals ersätt mellanslag med likhetstecken i enad " "skillnad\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Utan FIL, läs standard in.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "kan inte öppna \"%s\"" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "endast ett filnamn tillåtet" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Skriven av Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "ogiltigt huvud för enad skillnad på rad %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "korrupt enad skillnad på rad %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "sammanhangsskillnad saknar \"gammalt\" huvud på rad %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "korrupt sammanhangsskillnad på rad %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "sammanhangsskillnad saknar \"nytt\" huvud på rad %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "ingen lämplig temporärkatalog existerar" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: indataprogram dödat av signal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: utdataprogram dödat av signal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Följande text är en informell översättning som enbart tillhandahålls i\n" "informativt syfte. För alla juridiska tolkningar gäller den engelska\n" "originaltexten.\n" "\n" "Detta program är fri programvara. Du kan distribuera det och/eller " "modifiera\n" "det under villkoren i GNU General Public License, publicerad av\n" "Free Software Foundation, antingen version 2 eller (om du så vill)\n" "någon senare version.\n" "\n" "Detta program distribueras i hopp om att det ska vara användbart,\n" "men UTAN NÅGON SOM HELST GARANTI, även utan den underförstådda garantin\n" "om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General\n" "Public License för ytterligare information.\n" "\n" "Du bör ha fått en kopia av GNU General Public License\n" "tillsammans med detta program. Om inte, se .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Jämför ord i två filer och rapportera skillnader.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Användning: %s [FLAGGA]... FIL1 FIL2\n" " eller: %s -d [FLAGGA]... [FIL]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Obligatoriska argument för långa flaggor är obligatoriska för korta flaggor\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright skriv copyright och avsluta\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager ge resultatet till en sidvisare\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input använd enad skillnad som indata\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help skriv denna hjälp och avsluta\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case ignorera skiftläge vid jämförelse\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation av --printer för \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps utöka inte fält genom nyrad\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer överskrivning som för skrivare\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics visa hur många ord borttagna, insatta etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal använd termcap för terminaler\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version skriv programversion och avsluta\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRÄNG sträng som markerar början av en borttagen " "region\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRÄNG sträng som markerar slutet av en borttagen " "region\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRÄNG sträng som markerar början av en insatt region\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRÄNG sträng som markerar slutet av en insatt region\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "kan inte använda -t, termcap finns inte tillgängligt" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "för många filargument" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "filargument saknas" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Beräkna ordskillnader genom att internt köra \"mdiff -W\".\n" "Detta program finns huvudsakligen för att stödja den nu gamla \"wdiff\"-" "syntaxen.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Användning: %s [FLAGGA]... FIL1 FIL2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet undertryck meddelandet för \"mdiff\"-anropet\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "Detta program talar även om hur \"mdiff\" kan anropas direkt.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Startar \"%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "\"\n" wdiff-1.2.1/po/ms.po0000644000000000000000000013735112116513226011107 00000000000000# Wdiff Bahasa Melayu (Malay) (ms). # Copyright (C) 2002, 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Sharuzzaman Ahmat Raslan , 2002, 2008. # msgid "" msgstr "" "Project-Id-Version: wdiff 0.5.93\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-01 20:45+0100\n" "Last-Translator: Sharuzzaman Ahmat Raslan \n" "Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (untuk regexp `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, fuzzy, c-format msgid "only one file may be standard input" msgstr "Hanya satu fail boleh dijadikan masukan piawai." #: src/mdiff.c:905 src/wdiff.c:678 #, fuzzy, c-format msgid "directories not supported" msgstr "Direktori tidak disokong" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Membaca %s" #: src/mdiff.c:1172 #, fuzzy, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d perkara\n" msgstr[1] ", %d perkara\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "" #: src/mdiff.c:1253 #, fuzzy, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] ", %d perkara\n" msgstr[1] ", %d perkara\n" #: src/mdiff.c:1254 #, fuzzy, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] ", %d perkara\n" msgstr[1] ", %d perkara\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Isihan" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", gugusan" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", selesai\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Mengisih ahli" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "" #: src/mdiff.c:1916 src/mdiff.c:2299 #, fuzzy, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] ", gugusan" msgstr[1] ", gugusan" #: src/mdiff.c:1918 #, fuzzy, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] ", %d perkara\n" msgstr[1] ", %d perkara\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "" msgstr[1] "" #: src/mdiff.c:2353 src/wdiff.c:228 #, fuzzy, c-format msgid "select a terminal through the TERM environment variable" msgstr "Pilih terminal daripada pembolehubah persekitaran TERM." #: src/mdiff.c:2356 src/wdiff.c:231 #, fuzzy, c-format msgid "could not access the termcap data base" msgstr "Tidak dapat mencapai pengkalan data termcap." #: src/mdiff.c:2358 src/wdiff.c:233 #, fuzzy, c-format msgid "terminal type `%s' is not defined" msgstr "Jenis terminal `%s' tidak ditakrifkan." #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, fuzzy, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d perkataan" msgstr[1] "%s: %d perkataan" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, fuzzy, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %d%% biasa" msgstr[1] " %d %d%% biasa" #: src/mdiff.c:3716 src/wdiff.c:1174 #, fuzzy, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %d%% dipadam" msgstr[1] " %d %d%% dipadam" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, fuzzy, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %d%% diubah" msgstr[1] " %d %d%% diubah" #: src/mdiff.c:3732 src/wdiff.c:1190 #, fuzzy, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %d%% dimasukkan" msgstr[1] " %d %d%% dimasukkan" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Cuba `%s --help' untuk lebih maklumat.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Mengkaji beberapa fail dan mencari turutan yang sama, ia kemudian\n" "menghasilkan senarai terperinci mungkin tentang perbezaan dan kesamaan.\n" #: src/mdiff.c:3773 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Penggunaan: %s [PILIHAN]... [FAIL]...\n" #: src/mdiff.c:3777 #, fuzzy msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Mod operasi:\n" #: src/mdiff.c:3778 #, fuzzy msgid " -h (ignored)\n" msgstr " -h (diabaikan)\n" #: src/mdiff.c:3779 #, fuzzy msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose lapor beberapa statistik pada stderr\n" #: src/mdiff.c:3780 src/unify.c:295 #, fuzzy msgid " --help display this help then exit\n" msgstr " --help papar bantuan ini dan keluar\n" #: src/mdiff.c:3781 src/unify.c:296 #, fuzzy msgid " --version display program version then exit\n" msgstr " --version keluarkan maklumat versi dan keluar\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" # ? " -T, --initial-tab jadikan tab berbaris dengan menambah awalan tab" # ? " -T, --initial-tab hasilkan TAB menggantikan ruang permulaan" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" # ? " -l, --paginate hantar keluaran menerusi `pr' untuk paginate" # ? " -l, --paginate paginate keluaran menggunakan `pr'" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr "" #: src/mdiff.c:3786 #, fuzzy msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=RENTETAN] ambil perhatian RENTETAN pengguna lain\n" #: src/mdiff.c:3787 #, fuzzy msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links berikan rujukan fail dan baris dalam catatan\n" # ? " -t, --expand-tabs kembangkan tab kepada ruang dalam keluaran" # ? " -t, --expand-tabs tukar tab kepada ruang dalam keluaran" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" #: src/mdiff.c:3791 #, fuzzy msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Nyahpepijat:\n" #: src/mdiff.c:3792 #, fuzzy msgid " -0, --debugging output many details about what is going on\n" msgstr "" " -0, --debugging keluarkan banyak perincian mengenai apa yang berlaku\n" #: src/mdiff.c:3795 #, fuzzy msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Pilhan mod perkataan:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 #, fuzzy msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted halang keluaran bagi perkataan dipadam\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 #, fuzzy msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr "" " -2, --no-inserted halang keluaran bagi perkataan dimasukkan\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 #, fuzzy msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common halang keluaran bagi perkataan umum\n" #: src/mdiff.c:3799 #, fuzzy msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager panggil pager secara automatik\n" #: src/mdiff.c:3800 #, fuzzy msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variasi untuk mod pencetak bagi \"less\"\n" #: src/mdiff.c:3801 #, fuzzy msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps jangan sambung medan melalui baris baru\n" #: src/mdiff.c:3802 #, fuzzy msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer overstrike seperti untuk pencetak\n" #: src/mdiff.c:3803 #, fuzzy msgid " -z, --terminal use termcap as for terminal displays\n" msgstr " -z, --terminal guna termcap sebagai paparan terminal\n" #: src/mdiff.c:3804 #, fuzzy msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGEXP banding perkara seperti dinyatakan oleh REGEXP\n" #: src/mdiff.c:3805 #, fuzzy msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode banding perkataan selain daripada baris\n" #: src/mdiff.c:3990 #, fuzzy msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Dengan tiada FAIL, atau apabila FAILE adalah -, baca masukan piawai.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 #, fuzzy msgid "Report bugs to .\n" msgstr "Lapor pepijat kepada .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "" #: src/mdiff.c:4300 #, fuzzy, c-format msgid "cannot use -z, termcap not available" msgstr "Tidak boleh menggunakan -z, termcap tiada." #: src/mdiff.c:4339 #, fuzzy, c-format msgid "word merging for two files only (so far)" msgstr "Gabungan perkataan untuk dua fail sahaja (setakat ini)" #: src/mdiff.c:4355 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Hakcipta (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Ini adalah perisian bebas; lihat sumber untuk syarat menyalin. TIADA\n" "jaminan disediakan; tidak juga untuk KEBOLEHDAGANGAN atau KEUPAYAAN UNTUK\n" "SESUATU TUJUAN KHUSUS.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Ditulis oleh Franc,ois Pinard .\n" #: src/mdiff.c:4396 #, fuzzy, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "Pilihan -123RSYZ bermakna apabila hanya dua masukan." #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "" #: src/unify.c:145 #, fuzzy, c-format msgid "could not find a name for the diff at line %ld" msgstr "Tidak dapat mencari nama untuk diff pada baris %ld" #: src/unify.c:274 #, fuzzy, c-format msgid "try `%s --help' for more information\n" msgstr "Cuba `%s --help' untuk lebih maklumat.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify - Mengubah diff konteks kepada unidiff, atau sebaliknya.\n" #: src/unify.c:283 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Penggunaan: %s [PILIHAN]... [FAIL]\n" #: src/unify.c:286 #, fuzzy msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs paksa keluaran ke diff konteks\n" #: src/unify.c:287 #, fuzzy msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments gema komen ke ralat piawai\n" #: src/unify.c:288 #, fuzzy msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs keluaran diff gaya-lama, tidak kira apa\n" #: src/unify.c:289 #, fuzzy msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format jana format patch\n" #: src/unify.c:290 #, fuzzy msgid " -P same as -p\n" msgstr " -P sama seperti -p\n" #: src/unify.c:291 #, fuzzy msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments buang baris komen\n" #: src/unify.c:292 #, fuzzy msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs paksa keluaran ke unidiff\n" #: src/unify.c:293 #, fuzzy msgid " -U same as -p and -u\n" msgstr " -U sama seperti -p dan -u\n" #: src/unify.c:294 #, fuzzy msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr " -=, --use-equals ganti ruang dengan tanda sama dalam unidiff\n" #: src/unify.c:298 #, fuzzy msgid "If FILE is not specified, read standard input.\n" msgstr "Jika FAIL tidak dinyatakan, baca masukan piawai.\n" #: src/unify.c:389 #, fuzzy, c-format msgid "unable to open `%s'" msgstr "Tidak dapat membuka `%s'" #: src/unify.c:395 #, fuzzy, c-format msgid "only one filename allowed" msgstr "Hanya satu namafail dibenarkan" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Hakcipta (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Ditulis oleh Wayne Davison .\n" #: src/unify.c:548 #, fuzzy, c-format msgid "invalid unified diff header at line %ld" msgstr "Header diff unified tidak sah pada baris %ld" #: src/unify.c:590 #, fuzzy, c-format msgid "malformed unified diff at line %ld" msgstr "Diff unified cacat pada baris %ld" #: src/unify.c:620 #, fuzzy, c-format msgid "context diff missing `old' header at line %ld" msgstr "Diff konteks kehilangan header `old' pada baris %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, fuzzy, c-format msgid "malformed context diff at line %ld" msgstr "Diff konteks cacat pada baris %ld" #: src/unify.c:718 #, fuzzy, c-format msgid "context diff missing `new' header at line %ld" msgstr "Diff konteks kehilangan header `new' pada baris %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, fuzzy, c-format msgid "no suitable temporary directory exists" msgstr "Tiada direktori sementara yang sesuai wujud" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "" #: src/wdiff.c:1210 src/wdiff2.c:109 #, fuzzy msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Program ini adalah perisian bebas; anda boleh menyebarkannya dan/atau\n" "mengubahsuainya dibawah syarat-syarat GNU General Public License\n" "seperti yang diterbitkan oleh Free Software Foundation; sama ada versi\n" "ke 2, atau (atas pilihan anda) sebarang versi selepasnya.\n" "\n" "Program ini diedarkan dengan harapan yang ia mungkin berguna,\n" "tetapi TANPA SEBARANG JAMINAN; juga tanpa jaminan terhadap\n" "KEBOLEHDAGANGAN atau KESESUAIAN UNTUK SESUATU TUJUAN TERTENTU. Lihat\n" "GNU General Public License untuk maklumat lanjut.\n" "\n" "Anda seharusnya menerima salinan GNU General Public License\n" "bersama program ini; jika tidak, tulis kepada Free Software Foundation,\n" "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Membandingkan perkataan dalam dua fail dan melaporkan perbezaan.\n" #: src/wdiff.c:1242 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Penggunaan: %s [PILIHAN]... FAIL1 FAIL2\n" " %s -d [PILIHAN]... [FAIL]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 #, fuzzy msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Hujah wajib kepada pilihan panjang adalah wajib kepada pilihan pendek juga.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 #, fuzzy msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright papr hakcipta kemudian keluar\n" #: src/wdiff.c:1254 src/wdiff2.c:193 #, fuzzy msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager memanggil pager secara automatik\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" #: src/wdiff.c:1256 src/wdiff2.c:194 #, fuzzy msgid " -h, --help display this help then exit\n" msgstr " -h, --help papar bantuan ini\n" #: src/wdiff.c:1257 src/wdiff2.c:195 #, fuzzy msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case abai bentuk aksara ketika membeza\n" #: src/wdiff.c:1258 src/wdiff2.c:196 #, fuzzy msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variasi mod pencetak untuk \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 #, fuzzy msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps jangan sambung medan melalui baris baru\n" #: src/wdiff.c:1260 src/wdiff2.c:198 #, fuzzy msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer overstrike seperti untuk pencetak\n" #: src/wdiff.c:1261 src/wdiff2.c:200 #, fuzzy msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics papar berapa banyak perkataan dipadam, " "dimasukkan\n" " dsb.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 #, fuzzy msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal guna termcap sebagai paparan terminal\n" #: src/wdiff.c:1263 src/wdiff2.c:202 #, fuzzy msgid " -v, --version display program version then exit\n" msgstr " -v, --version papar versi program kemudian keluar\n" #: src/wdiff.c:1264 src/wdiff2.c:203 #, fuzzy msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=STRING rentetan untuk menanda permulaan kawasan " "pemadaman\n" #: src/wdiff.c:1265 src/wdiff2.c:204 #, fuzzy msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=STRING rentetan untuk menanda pengakhiran kawasan\n" " pemadaman\n" #: src/wdiff.c:1266 src/wdiff2.c:205 #, fuzzy msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=STRING rentetan untuk menanda permulaan kawasan " "masukan\n" #: src/wdiff.c:1267 src/wdiff2.c:206 #, fuzzy msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=STRING rentetan untuk menanda pengakhiran kawasan " "masukan\n" #: src/wdiff.c:1386 #, fuzzy, c-format msgid "cannot use -t, termcap not available" msgstr "Tidak boleh menggunakan -t, termcap tiada." #: src/wdiff.c:1391 #, fuzzy msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Hakcipta (C) 1992, 1997 Free Software Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, fuzzy, c-format msgid "too many file arguments" msgstr "Hujah fail tiada" #: src/wdiff.c:1449 src/wdiff2.c:320 #, fuzzy, c-format msgid "missing file arguments" msgstr "Hujah fail tiada" #: src/wdiff2.c:128 #, fuzzy msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Hakcipta (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Hitung perbezaan perkataan dengan melancarkan secara dalaman\n" "`mdiff -W'.\n" "Program ini wujud terutamanya untuk menyokong sintaks lama `wdiff'.\n" #: src/wdiff2.c:182 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Penggunaan: %s [PILIHAN]... FAIL1 FAIL2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet halang mesej panggilan `mdiff'\n" #: src/wdiff2.c:208 #, fuzzy msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Program ini juga memberitahu bagaimana `mdiff' boleh dipanggil secara " "terus.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Melaksana `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Ringkasan bacaan: %d fail, %d perkara\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Ringkasan kerja: %d gugusan, %d ahli\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Ringkasan kerja: %d gugusan, %d ahli, %d bertindih\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term seperti -z, tetap tiada termcap init/" #~ "rentetan\n" #~ " term\n" #, fuzzy #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term sepert -t, tetapi tiada rentetan termcap " #~ "init/term\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Mod operasi:\n" #~ " -h (diabaikan)\n" #~ " -v, --verbose lapor beberapa statistik pada stderr\n" #~ " --help papar bantuan ini dan keluar\n" #~ " --version keluarkan maklumat versi dan keluar\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Format keluaran:\n" #~ " -T, --initial-tab hasilkan TAB menggantikan ruang permulaan\n" #~ " -l, --paginate paginate keluaran menggunakan `pr'\n" #~ " -S, --string[=RENTETAN] ambil perhatian RENTETAN pengguna lain\n" #~ " -V, --show-links berikan rujukan fail dan baris dalam catatan\n" #~ " -t, --expand-tabs tukar tab kepada ruang dalam keluaran\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Pilhan mod perkataan:\n" #~ " -1, --no-deleted halang keluaran perkataan dipadam\n" #~ " -2, --no-inserted halang keluaran perkataan dimasukkan\n" #~ " -3, --no-common halang keluaran perkataan biasa\n" #~ " -A, --auto-pager panggil pager secara automatik\n" #~ " -k, --less-mode variasi untuk mod pencetak bagi \"less\"\n" #~ " -m, --avoid-wraps jangan sambung medan melalui baris baru\n" #~ " -o, --printer overstrike seperti untuk pencetak\n" #~ " -z, --terminal guna termcap sebagai paparan terminal\n" #~ " -K, --no-init-term seperti -z, tetap tiada termcap init/" #~ "rentetan term\n" #~ " -O, --item-regexp=REGEXP banding perkara seperti dinyatakan oleh " #~ "REGEXP\n" #~ " -W, --word-mode banding perkataan selain daripada baris\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Perbandingan fail:\n" #~ "* -H, --speed-large-files lebih laju, untuk apabila beberapa " #~ "perubahan kecil\n" #~ "* -a, --text lapor perbezaan baris (default fail teks)\n" #~ "* -d, --minimal cuba lebih gigih untuk set perubahan yang " #~ "kecil\n" #~ "* -q, --brief hanya nyatakan jika fail berbeza (default " #~ "binari)\n" #~ "* --horizon-lines=BARIS kekalkan BARIS baris dalam awalan/akhiran " #~ "biasa\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Perbandingan direktori:\n" #~ "* -N, --new-file ambil kira fail tidak wujud sebagai " #~ "kosong\n" #~ "* -P, --unidirectional-new-file ambil kira fail lama tidak wujud " #~ "sebagai kosong\n" #~ "* -S, --starting-file=FAIL sambung perbandingan direktori dengan " #~ "FAIL\n" #~ "* -X, --exclude-from=FAIL abai corak sepadan fail daripada FAIL\n" #~ "* -r, --recursive banding subdirektori berulang-ulang\n" #~ "* -s, --report-identical-files lapor apabbila dua fail adalah sama\n" #~ "* -x, --exclude=CORAK abai fail (direktori) sepadan CORAK\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Mengabaikan teks:\n" #~ " -B, --ignore-blank-lines abai baris kosong\n" #~ "* -I, --ignore-matching-lines=REGEXP abai baris sepadan REGEXP\n" #~ " -b, --ignore-space-change abai jumlah ruang kosong\n" #~ " -i, --ignore-case abai perbezaan case\n" #~ " -w, --ignore-all-space abai ruang kosong\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Gugusan:\n" #~ " -G, --relist-files senarai semua fail masukan dengan catatan\n" #~ " -J, --minimum-size=ITEMS abai gugusan tidak mempunyai sebanyak ITEMS\n" #~ " -j, --ignore-delimiters jangan kira item hanya mempunyai delimiter\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Format keluaran terperinci:\n" #~ "* -D, --ifdef=NAMA keluarkan format `#ifdef NAMA'\n" #~ "* --changed-group-format=FORMAT guna FORMAT untuk baris ditukar\n" #~ "* --new-group-format=FORMAT guna FORMAT untuk baris-baris " #~ "dimasukkan\n" #~ "* --new-line-format=FORMAT guna FORMAT untuk baris " #~ "dimasukkan\n" #~ "* --old-group-format=FORMAT guna FORMAT untuk baris-baris " #~ "dipadam\n" #~ "* --old-line-format=FORMAT guna FORMAT untuk baris dipadam\n" #~ "* --unchanged-group-format=FORMAT guna FORMAT untuk baris-baris " #~ "tidak ditukar\n" #~ "* --unchanged-line-format=FORMAT guna FORMAT untuk baris tidak " #~ "ditukar\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-format-" #~ "baris\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Format seperti-skrip:\n" #~ " (tiada -CDUcefnuy) keluarkan diff normal\n" #~ "* -e, --ed keluarkan skrip `ed' sah\n" #~ "* -f, --forward-ed campur antara -e and -n (tidak begitu berguna)\n" #~ "* -n, --rcs keluarkan format RCS (kegunaan dalaman oleh " #~ "RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Format konteks dam penggabungan:\n" #~ "* -F, --show-function-line=REGEXP tunjuk konteks sebelum sepadan " #~ "REGEXP\n" #~ "* -p, --show-c-function tunjuk fungsi C yang mana untuk " #~ "setiap perubahan\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=BARIS seperti -c, juga memilih saiz konteks " #~ "dalam baris\n" #~ "* -L, --label=LABEL guna dari/ke LABEL selain daripada nama " #~ "fail (dua kali)\n" #~ "* -U, --unified=BARIS seperti -u, juga memilih saiz konteks " #~ "dalam baris\n" #~ "* -c, --context keluarkan diff konteks (default 3 baris " #~ "konteks)\n" #~ "* -u, --unified keluarkan unidiffs (default 3 baris " #~ "konteks)\n" #~ "* -BARIS (lapuk: pilih saiz konteks dalam baris)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Format sebelah menyebelah:\n" #~ "* -W, --width=LAJUR guna lebar LAJUR\n" #~ "* -y, --side-by-side guna format keluaran sebelah menyebelah\n" #~ "* --left-column hanya cetak baris lajur kiri apabila " #~ "sama\n" #~ "* --sdiff-merge-assist (kegunaan dalaman oleh `sdiff')\n" #~ "* --suppress-common-lines jangan cetak baris yang sama\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT dibina daripada aksara dengan maksud tersendiri, kecuali:\n" #~ " %%%% hanya satu %%\n" #~ " %%c'C' petikan aksara C\n" #~ " %%c'\\O' aksara mempunyai nilai O, daripada 1 hingga 3 digit " #~ "oktal\n" #~ " %%(A=B?T:E) jika A adalah B maka T lain E; A B nombor atau " #~ "PEMBOLEHUBAH; T E FORMAT\n" #~ " %%FN guna SPECIF spesifikasi F untuk mencetak PEMBOLEHUBAH " #~ "nilai N\n" #~ " %%< [kumpul] lama, setiap baris melalui --old-line-format\n" #~ " %%> [kumpul] baru, setiap baris melalui --new-line-format\n" #~ " %%= [kumpul] tiada perubahan, setiap baris melalui --" #~ "unchanged-line-format\n" #~ " %%l [baris] tanpa kemungkinan barisbaru mengikuti\n" #~ " %%L [baris] dengan kemungkinan barisbaru mengikuti\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF adalah [-][W[.D]]{doxX} seperti dalam C printf\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "PEMBOLEHUBAH ialah {eflmn} untuk kumpulan lama atau {EFLMN} untuk " #~ "kumpulan baru\n" #~ " {eE} nombor baris sebelum kumpulan\n" #~ " {fF} nombor baris pertama kumpulan\n" #~ " {lL} nombor baris terakhir kumpulan\n" #~ " {mM} nombor baris selepas kumpulan\n" #~ " {nN} nombor baris dalam kumpulan\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Pilihan diff piawai:\n" #~ " -i, --ignore-case ambilkira huruf besar dan kecil sebagai sama\n" #~ " -w, --ignore-all-space abai semua ruang kosong\n" #~ " -b, --ignore-space-change abai perubahan dalam jumlah ruang kosong\n" #~ " -B, --ignore-blank-lines abai perubahan dimana baris adalah kosong\n" #~ " -I, --ignore-matching-lines=RE abai perubahan dimana baris adalah " #~ "sepadan RE\n" #~ " -a, --text layan semua fail sebagai teks\n" #~ " -c, --context[=NOMBOR] keluarkan diff konteks biasa,\n" #~ " menukar kepada NOMBOR baris konteks\n" #~ " -u, --unified[=NOMBOR] keluarkan konteks diff unified atau unidiff,\n" #~ " dengan NOMBOR baris konteks\n" #~ " -C, --context=NOM keluarkan NOM baris salinan konteks\n" #~ " -U, --unified=NOM keluarkan NOM baris konteks unified\n" #~ " -L, --label=LABEL guna LABEL selain dari nama fail\n" #~ " -p, --show-c-function tunjuk fungsi C yang mana dalam setiap " #~ "perubahan\n" #~ " -F, --show-function-line=RE tunjuk baris terbaru sepadan RE\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief keluarkan jika hanya fail berbeza\n" #~ " -e, --ed hasilkan skrip ed\n" #~ " -n, --rcs hasilkan format diff RCS\n" #~ " -y, --side-by-side keluarkan dalam dua lajur\n" #~ " -w, --width=NOM keluarkan paling banyak NOM (default 130) " #~ "aksara per baris\n" #~ " --left-column keluarkan hanya lajur kiri baris sama\n" #~ " --suppress-common-lines jangan keluarkan baris yang sama\n" #~ " -D, --ifdef=NAMA keluarkan fail tergabung untuk menunjukkan " #~ "diff `#ifdef NAMA'\n" #~ " --GTYPE-group-format=GFMT kumpulan masukan GTYPE dengan GFMT\n" #~ " --line-format=LFMT semua baris masukan dengan LFMT\n" #~ " --LTYPE-line-format=LFMT baris masukan LTYPE dengan LFMT\n" #~ " -l, --paginate hantar keluaran menerusi `pr' untuk paginate\n" #~ " -t, --expand-tabs kembangkan tab kepada ruang dalam keluaran\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab jadikan tab berbaris dengan menambah awalan " #~ "tab\n" #~ " -r, --recursive banding berulang sebarang subdirektori yang " #~ "dijumpai\n" #~ " -N, --new-file layan fail tidak wujud sebagai kosong\n" #~ " -P, --unidirectional-new-file layan fail tidak wujud pertama sebagai " #~ "kosong\n" #~ " -s, --report-identical-files lapor apabila dua fail adalah sama\n" #~ " -x, --exclude=PAT asingkan fail yang sepadan PAT\n" #~ " -X, --exclude-from=FAIL asingkan fail yang sepadan sebarang corak " #~ "dalam FAIL\n" #~ " -S, --starting-file=FAIL mula dengan FAIL apabila membanding " #~ "direktori\n" #~ " --horizon-lines=NOM simpan NOM baris bagi prefiks dan suffiks " #~ "yang sama\n" #~ " -d, --minimal usaha keras untuk mencari set perbezaan yang " #~ "kecil\n" #~ " -H, --speed-large-files andaikan fail besar dan banyak perbezaan " #~ "kecil\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Secara default, diff konteks mempunyai ufuk dua baris.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE adalah `old', `new', atau `unchanged'. GTYPE adalah LTYPE atau " #~ "`changed'.\n" #~ "GFMT boleh mengandungi:\n" #~ " %< baris dari FAIL1\n" #~ " %> baris dari FAIL2\n" #~ " %= baris sama pada FAIL1 dan FAIL2\n" #~ " %[-][LEBAR][.[PREC]]{doxX}HURUF spec gaya-printf untuk HURUF\n" #~ " HURUF adalah seperti berikut untuk kumpulan baru, huruf kecil untuk " #~ "kumpulan lama:\n" #~ " F nombor baris pertama\n" #~ " L nombor baris akhir\n" #~ " N jumlah baris = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT boleh mengandungi:\n" #~ " %L kandungan baris\n" #~ " %l kandungan baris, tidak termasuk baris baru\n" #~ " %[-][LEBAR][.[PREC]]{doxX}n spec gaya-printf untuk baris nombor " #~ "masukan\n" #~ "Samaada GFMT atau LFMT boleh mengandungi:\n" #~ " %% %\n" #~ " %c'C' satu aksara C\n" #~ " %c'\\OOO' aksara dengan kod oktal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Pilihan mdiff lama:\n" #~ "* -f, --fuzz-items=ITEM tidak lebih daripada ITEM tidak sepadan " #~ "dalam gugusan\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Hakcipta (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs paksa keluaran ke diff konteks\n" #~ " -e, --echo-comments gema komen ke ralat piawai\n" #~ " -o, --old-diffs keluaran diff gaya-lama, tidak kira apa\n" #~ " -p, --patch-format jana format patch\n" #~ " -P sama seperti -p\n" #~ " -s, --strip-comments buang baris komen\n" #~ " -u, --unidiffs paksa keluaran ke unidiff\n" #~ " -U sama seperti -p dan -u\n" #~ " -=, --use-equals ganti ruang dengan tanda sama dalam unidiff\n" #~ " --help papar bantuan ini dan keluar\n" #~ " --version keluarkan maklumat versi dan keluar\n" #~ "\n" #~ "Jika FAIL tidak dinyatakan, baca masukan piawai.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ msgstr "" #~ "Hujah wajib kepada pilihan panjang adalah wajib kepada pilihan pendek " #~ "juga.\n" #~ "\n" #~ " -C, --copyright papr hakcipta kemudian keluar\n" #~ " -K, --no-init-term sepert -t, tetapi tiada rentetan termcap " #~ "init/term\n" #~ " -1, --no-deleted halang keluaran bagi perkataan dipadam\n" #~ " -2, --no-inserted halang keluaran bagi perkataan dimasukkan\n" #~ " -3, --no-common halang keluaran bagi perkataan umum\n" #~ msgid "" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ msgstr "" #~ " -a, --auto-pager memanggil pager secara automatik\n" #~ " -h, --help papar bantuan ini\n" #~ " -i, --ignore-case abai bentuk aksara ketika membeza\n" #~ " -l, --less-mode variasi mod pencetak untuk \"less\"\n" #~ " -n, --avoid-wraps jangan sambung medan melalui baris baru\n" #~ " -p, --printer overstrike seperti untuk pencetak\n" #~ msgid "" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -v, --version print program version then exit\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ " -s, --statistics papar berapa banyak perkataan dipadam, " #~ "dimasukkan dsb.\n" #~ " -t, --terminal guna termcap sebagai paparan terminal\n" #~ " -v, --version papar versi program kemudian keluar\n" #~ " -w, --start-delete=STRING rentetan untuk menanda permulaan kawasan " #~ "pemadaman\n" #~ " -x, --end-delete=STRING rentetan untuk menanda pengakhiran kawasan " #~ "pemadaman\n" #~ " -y, --start-insert=STRING rentetan untuk menanda permulaan kawasan " #~ "masukan\n" #~ " -z, --end-insert=STRING rentetan untuk menanda pengakhiran kawasan " #~ "masukan\n" #~ msgid "Unknown system error" #~ msgstr "Ralat sistem tidak diketahui" #~ msgid "memory exhausted" #~ msgstr "kehabisan memori" wdiff-1.2.1/po/pl.po0000644000000000000000000005261312116513226011100 00000000000000# Polish translation of wdiff messages # Copyright (C) 1996, 1997, 2001, 2003, 2008, 2010, 2011, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Contributions: # Rafał Maszkowski „ 1996-1997, 2001, 2003, 2008, 2010-2012 # Paweł Krawczyk - tłumaczenie inf. o prawach aut. msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-26 00:01+0200\n" "Last-Translator: Rafał Maszkowski \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (dla wyrażenia regularnego `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "tylko jeden plik może być na standardowym wejściu" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "katalogi nie są obsługiwane" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Czytanie %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] "%d element\n" msgstr[1] "%d elementy\n" msgstr[2] "%d elementów\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Podsumowanie czytania:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] "%d plik," msgstr[1] "%d pliki," msgstr[2] "%d plików," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] "%d element\n" msgstr[1] "%d elementy\n" msgstr[2] "%d elementów\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Sortowanie" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", łączenie" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", zrobione\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Sortowanie elementów" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Podsumowanie pracy:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d złączenie," msgstr[1] " %d złączenia," msgstr[2] " %d złączeń," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] "%d element\n" msgstr[1] "%d elementy\n" msgstr[2] "%d elementów\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] "%d element," msgstr[1] "%d elementy," msgstr[2] "%d elementów," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] "%d zduplikowana linia\n" msgstr[1] "%d zduplikowane linie\n" msgstr[2] "%d zduplikowanych linii\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "wybranie terminala poprzez zmienną środowiskową TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "nie ma dostępu do bazy danych termcapa" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "typ terminala `%s' nie jest zdefiniowany" # cases - rzm #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d słowo" msgstr[1] "%s: %d słowa" msgstr[2] "%s: %d słów" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% wspólny" msgstr[1] " %d %.0f%% wspólne" msgstr[2] " %d %.0f%% wspólnych" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% usunięty" msgstr[1] " %d %.0f%% usunięte" msgstr[2] " %d %.0f%% usuniętych" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% zmieniony" msgstr[1] " %d %.0f%% zmienione" msgstr[2] " %d %.0f%% zmienionych" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% dodany" msgstr[1] " %d %.0f%% dodane" msgstr[2] " %d %.0f%% dodanych" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Napisz `%s --help' żeby otrzymać więcej informacji.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - szuka podobnych ciągów w plikach i tworzy możliwie najbardziej\n" "szczegółową listę różnic i podobieństw.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Składnia %s [OPCJA]... [PLIK]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Tryby działania:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignorowane)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr " -v, --verbose pokazanie przebiegu operacji przez stderr\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help wyświetlenie tego opisu i zakończenie\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr "" " --version wypisanie informacji o wersji i zakończenie\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formatowanie wyniku:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab TAB zamiast początkowej spacji\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate formatowanie wyników przez `pr'\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr "" " -S, --string[=NAPIS] informacja o użyciu NAPISU podanego przez " "użytkownika\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr " -V, --show-links podawanie odnośników do plików i linii\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs zamiana TABów na spacje w wyniku\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Debugging:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging podawanie wielu szczegółów o tym co się dzieje\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opcje trybu porównywania słów:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted bez pokazywania skasowanych słów\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted bez pokazywania dodanych słów\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common bez pokazywania wspólnych słów\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager wywołanie programu do oglądania plików\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode odmiana trybu drukowania dla \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps bez przenoszenia pól między liniami\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer nadrukowanie znaków na siebie\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal używanie termcapa do pisania na terminalu\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=WYRREG porównywanie elementów wg definicji WYRREG\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode porównywanie słów zamiast linii\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Bez PLIKU albo gdy PLIK to -, czytane jest standardowe wejście.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Informacje o błędach należy wysyłać do wdiff-bugs@gnu.org\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "opcja %s zignorowana (nie zaimplementowana)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "nie można użyć -z, nie ma termcapa" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "łączenie słów z dwóch plików (na razie)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Ten program jest darmowy; warunki kopiowania są opisane w źródłach.\n" "Autorzy nie dają ŻADNYCH gwarancji, w tym nawet gwarancji JAKOŚCI\n" "lub PRZYDATNOŚCI DO KONKRETNYCH CELÓW.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Napisane przez Franc,oisa Pinarda .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "" "opcje -123RSYZ mają znaczenie tylko gdy są dwa zestawy danych wejściowych" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "błąd przy przekierowaniu strumienia" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "nie udało się uruchomić %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "nie można znaleźć nazwy pliku różnic w linii %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "napisz `%s --help' żeby otrzymać więcej informacji\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify - Przekształcenie diff-a kontekstowego w zunifikowany i odwrotnie.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Składnia: %s [OPCJA]... [PLIK]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs wynik jako diff kontekstowy\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments wypisywanie komentarzy na standardowym wyjściu " "błędu\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs wynik jako diff w starym stylu\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format wynik w formacie patcha\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P to samo co -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments usunięcie linii z komentarzami\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs wynik jako diff zunifikowany\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U to samo co -p i -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals zamiana spacji na `=' w diffie zunifikowanym\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Bez PLIKU albo gdy PLIK to -, czytane jest standardowe wejście.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "nie można otworzyć `%s'" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "dozwolona tylko jedna nazwa pliku" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Napisane przez Wayne'a Davisona .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "błędny nagłówek zunifikowanego pliku różnic w linii %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "źle sformatowane różnice zunifikowane w linii %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "plik różnic nie nagłówka 'old' w linii %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "źle sformatowane różnice kontekstowe w linii %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "plik różnic kontekstowych nie ma nagłówka 'new' w linii %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "nie istnieje odpowiedni katalog tymczasowy" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: program wejściowy zabity przez sygnał %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: program wyjściowy zabity przez sygnał %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Ten program to wolne oprogramowanie: możesz rozprowadzać go i/lub\n" "modyfikować zachowując warunki Powszechnej Licencji Publicznej GNU\n" "(General Public Licence), opublikowanej przez Free Software Foundation,\n" "w wersji 3 lub, zgodnie z twoim wyborem, wyższej.\n" "\n" "program ten jest rozprowadzany w nadziei, że będzie przydatny,\n" "ale BEZ ŻADNEJ GWARANCJI, nawet bez domyślnej gwarancji JAKOŚCI\n" "lub PRZYDATNOŚCI DO KONKRETNYCH ZASTOSOWAŃ. Szczegóły znajdziesz\n" "w Powszechnej Licencji Publicznej GNU.\n" "\n" "Wraz z tym programem powinieneś otrzymać kopię Powszechnej Licencji\n" "Publicznej GNU. Jeśli nie, zobacz http://www.gnu.org/licenses/\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff - Porównuje słowa w dwóch plikach i informuje o różnicach.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Składnia: %s [OPCJA]... PLIK1 PLIK2\n" " albo: %s -d [OPCJA]... [PLIK]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argumenty obowiązkowe dla długich opcji są obowiązkowe też dla krótkich.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr "" " -C, --copyright wypisanie informacji o prawach autorskich i\n" " zakończenie\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager wywołanie programu do oglądania plików\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input użycie pojedyńczego diffa zunifikowanego na " "wejściu\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help wyświetlenie ten opisu i zakończenie\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case traktowanie małych i wielkich liter jako\n" " takich samych\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode odmiana trybu drukowania dla \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps bez przenoszenia pól do nowych linii\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer nadrukowanie znaków na siebie\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics podanie ile słów zostało usuniętych, dodanych " "itp.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal użycie termcapa do wyświetlania na terminalu\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version wypisanie informacji o wersji i zakończenie\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=NAPIS NAPIS oznaczający początek obszaru kasowania\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=NAPIS NAPIS oznaczający koniec obszaru kasowania\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=NAPIS NAPIS oznaczający początek obszaru dodanego\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=NAPIS NAPIS oznaczający koniec obszaru dodanego\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "nie można użyć -t, nie ma termcapa" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "za wiele argumentów plikowych" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "brakujące argumenty plikowe" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - pokazuje różnice między słowami przez wewnętrzne wywołanie\n" "`mdiff -W'. Program ten istnieje głównie po to, żeby można było się\n" "nadal posługiwać przestrzałą składnią `wdiff'.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Składnia: %s [OPCJA]... PLIK1 PLIK2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet wyłączenie komunikatu o uruchomieniu `mdiff-a'\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Ten program pokazuje również jak `mdiff' mógł zostać wywołany bezpośrednio.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Start `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" wdiff-1.2.1/po/fr.po0000644000000000000000000015444612116513225011102 00000000000000# Messages français pour GNU wdiff. # Copyright © 2008, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # # Michel Robitaille , 1996-2004. # Nicolas Provost , 2008. # Jean-Christophe Helary , 2010 # David Prévot , 2012. msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-09-20 10:48-0400\n" "Last-Translator: David Prévot \n" "Language-Team: French \n" "Language: fr\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-Generator: Lokalize 1.4\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (pour l'expression rationnelle « %s »)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "un seul fichier peut servir en entrée standard" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "répertoires non pris en charge" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Lecture en cours %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d item\n" msgstr[1] ", %d items\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Résumé de la lecture :" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d fichier," msgstr[1] " %d fichiers," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d item\n" msgstr[1] " %d items\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Tri en cours" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", regroupement" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", terminé\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Tri des membres" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Résumé du travail :" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d grappe," msgstr[1] " %d grappes," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d membre\n" msgstr[1] " %d membres\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d membre," msgstr[1] " %d membres," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d chevauchement\n" msgstr[1] " %d chevauchements\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "sélectionne un terminal par la variable d'environnement TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "impossible d'accéder à la base de données « termcap »" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "type de terminal « %s » non défini" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s : %d mot" msgstr[1] "%s : %d mots" #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% identique" msgstr[1] " %d %.0f%% identiques" #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% effacé" msgstr[1] " %d %.0f%% effacés" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% remplacé" msgstr[1] " %d %.0f%% remplacés" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% inséré" msgstr[1] " %d %.0f%% insérés" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" "Exécutez « %s --help » pour obtenir des renseignements complémentaires.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff — Traiter plusieurs fichiers et chercher les séquences similaires,\n" "possibilité de produire des listes détaillées de différences et " "similarités.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Utilisation : %s [OPTION]... [FICHIER]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Modes opératoires :\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignoré)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose émet des statistiques sur la sortie d'erreur " "standard\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help affiche cette aide et quitte\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version affiche la version de programme et quitte\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Format de sortie :\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab émet TAB au lieu de l'espace initial\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate pagine la sortie avec « pr »\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=CHAÎNE] retient cette nouvelle CHAÎNE utilisateur\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links affiche références de fichier et lignes en " "annotations\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr "" " -t, --expand-tabs change les tabulations en espaces à la sortie\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Débogage :\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging affiche beaucoup de détails durant le traitement\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Options des mots :\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted empêche la sortie des mots effacés\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted empêche la sortie des mots insérés\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common empêche la sortie des mots communs\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager appelle automatiquement un présentateur\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variation du mode d'impression : « less »\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps n'étend pas les champs au delà des sauts de " "ligne\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer utilise les commandes de surimpression\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal utilise « termcap » pour l'affichage sur " "terminal\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=EXPRAT compare les items définis par l'expr. " "rationnelle\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compare les mots au lieu des lignes\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "" "Sans FICHIER, ou lorsque FICHIER vaut -, lecture depuis l'entrée standard.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "Signaler toute anomalie à .\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "option %s ignorée (non implémentée)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "option -z inutilisable, « termcap » non disponible" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "fusion de mots pour deux fichiers seulement (jusqu'à maintenant)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Ce programme est un logiciel libre ; consulter les sources pour\n" "connaître les droits de copie. Il n'y AUCUNE GARANTIE ; même pas\n" "pour COMMERCIALISATION ou ADÉQUATION À UN OBJECTIF PARTICULIER..\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Écrit par François Pinard, .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "les options -123RSYZ n'ont de sens que s'il y a deux entrées" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "erreur de redirection du flux" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "échec d'exécution de %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "ligne %ld : nom manquant pour les différences" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "" "Exécutez « %s --help » pour obtenir des renseignements complémentaires.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify — Transformer différentiels contextuels en diff. unifiés, ou vice " "versa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Utilisation : %s [OPTION]... [FICHIER]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs produit des différentiel contextuels\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments copie les commentaires sur la sortie 'erreur " "standard\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr " -o, --old-diffs produit des différentiel en ancien format\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr "" " -p, --patch-format produit une sortie pour le programme « patch »\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P comme -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments supprime les lignes de commentaires\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs produit des différentiel unifiés\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U comme -p et -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals remplace les espaces par = dans les diff. unifiés\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Sans FICHIER, lecture depuis l'entrée standard.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "impossible d'ouvrir « %s »" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "un seul nom de fichier permis" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Écrit par Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "ligne %ld : en-tête de différentiel unifié incorrect" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "ligne %ld : différentiel unifié mal formé" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "ligne %ld : différentiel contextuel sans en-tête « old »" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "ligne %ld : différentiel contextuel mal formé" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "ligne %ld : différentiel contextuel sans en-tête « new »" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "aucun répertoire temporaire trouvé" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s : programme d'entrée tué par signal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s : programme de sortie tué par signal %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le\n" "modifier suivant les termes de la License Publique Générale GNU, telle que\n" "publiée par la Free Software Foundation : soit la version 3 de cette\n" "licence, soit (à votre gré) toute version ultérieure.\n" "\n" "Ce programme est distribué dans l'espoir qu'il vous sera utile, mais SANS\n" "AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ\n" "ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale\n" "Publique GNU pour plus de détails.\n" "\n" "Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec\n" "ce programme ; si ce n’est pas le cas, consultez\n" ".\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff — Comparer des mots de deux fichiers et afficher les différences.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Utilisation : %s [OPTION]... FICHIER1 FICHIER2\n" " ou : %s -d [OPTION]... [FICHIER]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Les arguments obligatoires pour les options longues le sont aussi pour\n" "les options courtes.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright affiche le copyright et quitte\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager appelle automatiquement un présentateur\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input utilise un différentiel unifié et unique en " "entrée\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help affiche cette aide et quitte\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case ignore la casse lors de la comparaison\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variation du mode d'impression « less »\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps n'étend pas les champs au-delà des sauts de " "ligne\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer utilise les commandes de surimpression\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics donne le nombre de mots effacés, insérés, etc.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal utilise « termcap » pour l'affichage sur " "terminal\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version affiche la version du programme et quitte\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr " -w, --start-delete=CHAÎNE marque le début d'une région supprimée\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr " -x, --end-delete=CHAÎNE marque la fin d'une région supprimée\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr " -y, --start-insert=CHAÎNE marque le début d'une région insérée\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=CHAÎNE marque la fin de région insérée\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "option -t inutilisable, « termcap » n'est pas disponible" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "trop de fichiers en arguments" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "fichier manquant en arguments" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff — Calculer les différences de mots en appelant « mdiff -W ».\n" "Ce programme existe surtout pour maintenir l'ancienne syntaxe « wdiff ».\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Utilisation : %s [OPTION]... FICHIER1 FICHIER2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet supprime le message d'appel « mdiff »\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Ce programme décrit aussi comment « mdiff » peut être invoqué directement.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Démarrage de « %s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr " »\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Résumé de lecture : %d fichiers, %d items\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Résumé du travail : %d grappes, %d membres\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Résumé du travail : %d grappes, %d membres, %d chevauchements\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ " -h (ignoré)\n" #~ " -v, --verbose montrer quelques statistiques sur stderr\n" #~ " --help fournir ce message d'aide, puis terminer\n" #~ " --version donner le n° de version, puis terminer\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formattage de la sortie :\n" #~ " -T, --initial-tab afficher des TAB au lieu d'espaces blanc\n" #~ " -l, --paginate paginer la sortie via « pr »\n" #~ " -S, --string[=CHAÎNE] prendre note de la CHAÎNE définie par l'usager\n" #~ " -V, --show-links afficher le nom du fichier et les numéros de " #~ "lignes\n" #~ " -t, --expand-tabs remplacer chaque TAB par des espaces blancs\n" #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Options disponibles pour le mode de comparaison des mots:\n" #~ " -1, --no-deleted ne pas afficher les mots effacés\n" #~ " -2, --no-inserted ne pas afficher les mots insérés\n" #~ " -3, --no-common ne pas afficher les mots identiques\n" #~ " -A, --auto-pager appeler automatiquement un présentateur\n" #~ " -k, --less-mode variation du mode d'impression: « less »\n" #~ " -m, --avoid-wraps ne pas étendre les champs avec des sauts de " #~ "ligne\n" #~ " -o, --printer mise en évidence pour une imprimante\n" #~ " -z, --terminal utiliser termcap pour l'affichage sur terminal\n" #~ " -K, --no-init-term comme -z, mais sans les chaînes d'\n" #~ " initialisation ou de fin de \"termcap\"\n" #~ " -O, --item-regexp=EXPR comparer les items tel qu'indiqué par\n" #~ " l'expression rationnelle EXPR\n" #~ " -W, --word-mode comparer les mots au lieu des lignes\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparaison des fichiers :\n" #~ "* -H, --speed-large-files traiter rapidement, lorsqu'il y a de\n" #~ " nombreux petits changements\n" #~ "* -a, --text rapporter les différences sur les lignes\n" #~ " (par défaut fichier texte)\n" #~ "* -d, --minimal chercher mieux pour de petits\n" #~ " ensembles de changements\n" #~ "* -q, --brief indiquer seulement les différences\n" #~ " (par défaut pour binaire)\n" #~ "* --horizon-lines=LIGNES conserver LIGNES lignes dans les\n" #~ " préfixes/suffixes communs\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Comparaison de répertoires :\n" #~ "* -N, --new-file traiter les fich. manquants comme " #~ "vides\n" #~ "* -P, --unidirectional-new-file traiter les vieux fichiers manquants\n" #~ " comme vides\n" #~ "* -S, --starting-file=FICHIER compléter la comparaison de " #~ "répertoires\n" #~ " à l'aide du FICHIER\n" #~ "* -X, --exclude-from=FICHIER ignorer les fichiers correspondants " #~ "au\n" #~ " motif de concordance dans FICHIER\n" #~ "* -r, --recursive agir récursivement sur sous-" #~ "répertoires\n" #~ "* -s, --report-identical-files signaler deux fichiers identiques\n" #~ "* -x, --exclude=MOTIF ignorer les fichier (ou répertoires)\n" #~ " concordants avec MOTIF\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Traitement du texte à ignorer :\n" #~ " -B, --ignore-blank-lines ignorer les lignes blanches\n" #~ "* -I, --ignore-matching-lines=EXPREG ignorer les lignes concordant\n" #~ " avec l'EXPression RÉGulière\n" #~ " -b, --ignore-space-change ignorer le nombre de d'espaces\n" #~ " -i, --ignore-case ignorer la différence de casse\n" #~ " -w, --ignore-all-space ignorer les espaces blancs\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Regroupement :\n" #~ " -G, --relist-files lister tous les fichiers d'entrée\n" #~ " avec annotations\n" #~ " -J, --minimum-size=ITEMS ignorer tous les groupes n'ayant\n" #~ " pas un nombre d'ITEMS minimal\n" #~ " -j, --ignore-delimiters ne pas compter les items n'ayant\n" #~ " que des délimiteurs\n" #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Formats détaillés de sortie :\n" #~ "* -D, --ifdef=NOM format de sortie \"#ifdef NOM\"\n" #~ "* --changed-group-format=FORMAT utiliser FORMAT pour les lignes\n" #~ " modifiées\n" #~ "* --new-group-format=FORMAT utiliser FORMAT pour les lignes\n" #~ " insérées\n" #~ "* --new-line-format=FORMAT utiliser FORMAT pour une ligne\n" #~ " insérée\n" #~ "* --old-group-format=FORMAT utiliser FORMAT pour les lignes\n" #~ " détruites\n" #~ "* --old-line-format=FORMAT utiliser FORMAT pour une ligne\n" #~ " détruite\n" #~ "* --unchanged-group-format=FORMAT utiliser FORMAT pour les lignes\n" #~ " non modifiées\n" #~ "* --unchanged-line-format=FORMAT utiliser FORMAT pour une ligne\n" #~ " non modifiée\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formats de scripts :\n" #~ " (aucune de -CDUcefnuy) utiliser le format normal diffs\n" #~ "* -e, --ed produire un script valide \"ed\"\n" #~ "* -f, --forward-ed effectuer un mélange entre -e et -n\n" #~ " (pas très utile)\n" #~ "* -n, --rcs produire du format utilisable par RCS\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Formats de contexte et unifiés :\n" #~ "* -F, --show-function-line=EXPREG afficher le contexte précédent\n" #~ " concordant avec l'EXPREG\n" #~ "* -p, --show-c-function afficher la fonction C pour\n" #~ " chaque changement\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LIGNES identique à -c, sélectionner la taille\n" #~ " du contexte en nombre de LIGNES\n" #~ "* -L, --label=ÉTIQUETTES utiliser les ÉTIQUETTES from/to au lieu\n" #~ " du nom de fichier (en double)\n" #~ "* -U, --unified=LIGNES identique à -u, sélectionner la taille du\n" #~ " contexte en nombre de LIGNES\n" #~ "* -c, --context utiliser le contexte de diffs pour la " #~ "sortie\n" #~ " (par défaut 3 lignes de contexte)\n" #~ "* -u, --unified utiliser la sortie unidiffs\n" #~ " (par défaut 3 lignes de contexte)\n" #~ "* -LINES (obsolète: sélectionner la taille du " #~ "contexte\n" #~ " en nombre de LIGNES)\n" #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Format colonnes :\n" #~ "* -W, --width=COLONNES fixe la largeur en nbr de COLONNES\n" #~ "* -y, --side-by-side utiliser le format \"colonnes\"\n" #~ "* --left-column afficher seulement ce qui est commun\n" #~ " dans la colonne de gauche\n" #~ "* --sdiff-merge-assist (utilisé par « sdiff »)\n" #~ "* --suppress-common-lines ne pas afficher les lignes communes\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMAT est composé de caractères usuels, sauf (spéciaux) :\n" #~ " %%%% un simple %%\n" #~ " %%c'C' caractère C de mise en commentaire C\n" #~ " %%c'\\O' valeur octale, de 1 à 3 chiffres en octal\n" #~ " %%(A=B?T:E) si A est B ALORS T SINON E; nombre A B ou VARIABLE; T,E " #~ "FORMAT\n" #~ " %%FN utiliser la spécification de format F pour afficher\n" #~ " la valeur de la variable N\n" #~ " %%< [group] old, chaque ligne est traitée selon --old-line-" #~ "format\n" #~ " %%> [group] new, chaque ligne est traitée selon --new-line-" #~ "format\n" #~ " %%= [group] unchanged, chaque ligne est traitée selon\n" #~ " --unchanged-line-format\n" #~ " %%l [line] sans ses retours chariot éventuels\n" #~ " %%L [line] avec ses retours de chariot éventuels\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF est de la forme [-][W[.D]]{doxX} comme dans printf en C\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABLE est {eflmn} pour les groupes anciens ou {EFLMN} pour les " #~ "nouveaux groupes\n" #~ " {eE} numéro de ligne juste avant le groupe\n" #~ " {fF} premier numéro de ligne du groupe\n" #~ " {lL} dernier numéro de ligne du groupe\n" #~ " {mM} numéro de ligne juste après le groupe\n" #~ " {nN} numéros des lignes du groupe\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Options standard \"diff\" :\n" #~ " -i, --ignore-case ignorer la différence de casse\n" #~ " -w, --ignore-all-space ignorer tous les espaces blancs\n" #~ " -b, --ignore-space-change ignorer tout changements dans le nombre\n" #~ " d'espaces blancs\n" #~ " -B, --ignore-blank-lines ignorer les différences de lignes blanches\n" #~ " -I, --ignore-matching-lines=EXPREG\n" #~ " ignorer les différences dans les lignes\n" #~ " concordantes avec l'EXPression REGulière\n" #~ " -a, --text traiter tous les fichiers comme du texte\n" #~ " -c, --context[=NOMBRE] produire le contexte régulier de diffs,\n" #~ " selon le NOMBRE de lignes de contexte\n" #~ " -u, --unified[=NOMBRE] produire un contexte unifié diffs ou " #~ "unidiffs,\n" #~ " selon le NOMBRE lignes de contexte\n" #~ " -C, --context=NOMBRE afficher NOMBRE lignes copiées du contexte\n" #~ " -U, --unified=NOMBRE afficher NOMBRE lignes du contexte unifié\n" #~ " -L, --label=ÉTIQUETTE utiliser ÉTIQUETTE au lieu du nom de fichier\n" #~ " -p, --show-c-function afficher la fonction C en cas de différence\n" #~ " -F, --show-function-line=EXPREG\n" #~ " afficher la ligne la plus récente concordant\n" #~ " avec l'EXPression REGulière\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief afficher seulement si les fichier diffèrent\n" #~ " -e, --ed produire un script \"ed\"\n" #~ " -n, --rcs produire en format RCS\n" #~ " -y, --side-by-side produire une sortie sur deux colonnes\n" #~ " -w, --width=NOMBRE produire au plus NOMBRE (par défaut 130)\n" #~ " caractères par ligne\n" #~ " --left-column produire les lignes communes dans la\n" #~ " colonne de gauche\n" #~ " --suppress-common-lines ne pas afficher les lignes communes\n" #~ " -D, --ifdef=NOM produire le fichier de fusion pour afficher\n" #~ " les différences \"#ifdef NOM\"\n" #~ " --GTYPE-group-format=GFMT GTYPE\n" #~ " groupes d'entrée avec GFMT\n" #~ " --line-format=LFMT toutes les lignes d'entrée avec LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE\n" #~ " lignes d'entrée avec LFMT\n" #~ " -l, --paginate faire la pagination via \"pr\"\n" #~ " -t, --expand-tabs convertir les tabulations en espace\n" #~ " dans la sortie\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab faire l'alignement des lignes par ajout\n" #~ " de tabulation\n" #~ " -r, --recursive comparer récursivement tous sous-répertoires\n" #~ " trouvés\n" #~ " -N, --new-file traiter les fichiers manquants comme étant " #~ "vides\n" #~ " -P, --unidirectional-new-file traiter les premiers fichiers manquants\n" #~ " comme étant vides\n" #~ " -s, --report-identical-files signaler les fichier identiques\n" #~ " -x, --exclude=EXPREG exclure les fichiers concordant avec\n" #~ " l'EXPression REGulière\n" #~ " -X, --exclude-from=FICHIER exclure les fichiers qui concordent avec le\n" #~ " motif fourni dans le FICHIER\n" #~ " -S, --starting-file=FICHIER débuter avec le FICHIER lors de la\n" #~ " comparaison des répertoires\n" #~ " --horizon-lines=NOMBRE conserver NOMBRE lignes en préfixe et " #~ "suffixe\n" #~ " dans la partie commune\n" #~ " -d, --minimal tenter d'identifier un jeu minimal\n" #~ " de différences\n" #~ " -H, --speed-large-files considérer que les fichiers sont de grandes\n" #~ " tailles avec de petits changements\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Par défaut, les diff. contextuelles ont un horizon de deux lignes.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE peut prendre la valeur \"old\", \"new\", ou \"unchanged. \n" #~ "GTYPE peut prendre les valeurs de LTYPE ou \"changed\".\n" #~ "GFMT peut contenir :\n" #~ " %< lignes du FICHIER1\n" #~ " %> lignes du FICHIER2\n" #~ " %= lignes communes aux FICHIER1 et FICHIER2\n" #~ " %[-][LARGEUR][.[PREC]]{doxX}LETTRES style de printf pour LETTRES\n" #~ " LETTRES en minuscules pour un groupe ancien ou sinon :\n" #~ " F premier numéro de ligne\n" #~ " L dernier numéro de ligne\n" #~ " N nombre de lignes = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT peut contenir :\n" #~ " %L contenu de ligne\n" #~ " %l contenu de ligne, excluant les retours de chariot\n" #~ " %[-][LARGEUR][.[PREC]]{doxX}n style printf pour n° de ligne d'entrée\n" #~ "Ou bien GFMT ou bien LFMT peut contenir :\n" #~ " %% %\n" #~ " %c'C' le caractère simple C\n" #~ " %c'\\OOO' le caractère ayant le code octal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Anciennes options mdiff :\n" #~ "* -f, --fuzz-items=ITEMS pas plus que nombre d'ITEMS non\n" #~ " concordants dans un groupe\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs produire des diff. contextuelles\n" #~ " -e, --echo-comments copier les commentaire sur \"stderr\"\n" #~ " -o, --old-diffs produire des diff. en mode ancien\n" #~ " -p, --patch-format produire une sortie pour le programme\n" #~ " -P \"patch\", même chose que \"-p\"\n" #~ " -s, --strip-comments éliminer les lignes de commentaires\n" #~ " -u, --unidiffs produires des diff. unifiées\n" #~ " -U même chose que \"-p -u\"\n" #~ " -=, --use-equals remplacer les espaces par = dans les\n" #~ " diff. unifiées\n" #~ " --help fournir ce message d'aide, puis terminer\n" #~ " --version identifier le programme, puis terminer\n" #~ "\n" #~ "Lire l'entrée standard si FICHIER n'est pas spécifié.\n" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ msgstr "" #~ "Les arguments obligatoires pour les options longues le sont aussi\n" #~ "pour les options courtes.\n" #~ "\n" #~ " -C, --copyright affiche le copyright et sort\n" #~ " -K, --no-init-term comme -t, mais sans les chaînes d'\n" #~ " initialisation et de fin termcap\n" #~ " -1, --no-deleted empêche la sortie des mots effacés\n" #~ " -2, --no-inserted empêche la sortie des mots insérés\n" #~ " -3, --no-common empêche la sortie des mots communs\n" #~ msgid "" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ msgstr "" #~ " -a, --auto-pager appelle automatiquement un\n" #~ " outil de mise en page\n" #~ " -h, --help affiche cette aide\n" #~ " -i, --ignore-case comparaison insensible à la casse\n" #~ " -l, --less-mode mode de sortie spécial pour \"less\"\n" #~ " -n, --avoid-wraps ne pas couper les lignes\n" #~ " -p, --printer mise en évidence avec _ etc.\n" #~ msgid "" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -v, --version print program version then exit\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ " -s, --statistics dit combien de mots sont supprimés,\n" #~ " ajoutés etc.\n" #~ " -t, --terminal utiliser termcap comme affichage\n" #~ " -v, --version affiche le n° de version et sort\n" #~ " -w, --start-delete=CHAINE CHAINE marque le début de région\n" #~ " supprimée\n" #~ " -x, --end-delete=CHAINE CHAINE marque la fin de région\n" #~ " supprimée\n" #~ " -y, --start-insert=CHAINE CHAINE marque le début de région\n" #~ " insérée\n" #~ " -z, --end-insert=CHAINE CHAINE marque la fin de région\n" #~ " insérée\n" #~ msgid "Unknown system error" #~ msgstr "Erreur système inconnue" #~ msgid "memory exhausted" #~ msgstr "mémoire épuisée" #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Les arguments obligatoires pour la forme longue des options sont aussi\n" #~ "obligatoires pour les formes courtes qui leur correspondent.\n" #~ "\n" #~ " -C, --copyright afficher les conditions de copie, puis " #~ "terminer\n" #~ " -K, --no-init-term identique à -t, mais sans les chaînes init/" #~ "term de termcap\n" #~ " -V, --version identifier le programme, puis terminer\n" #~ " -1, --no-deleted ne pas afficher les mots effacés\n" #~ " -2, --no-inserted ne pas afficher les mots insérés\n" #~ " -3, --no-common ne pas afficher les mots identiques\n" #~ " -a, --auto-pager appeler automatiquement un présentateur\n" #~ " -h, --help fournir ce message d'aide, puis terminer\n" #~ " -i, --ignore-case mettre tout en majuscule avant la " #~ "comparaison\n" #~ " -l, --less-mode variante du mode imprimante pour « less »\n" #~ " -n, --avoid-wraps laisser les fins de ligne hors de tout " #~ "champ\n" #~ " -p, --printer utiliser des commandes de surimpression\n" #~ " -s, --statistics donner le nombre de mots effacés, insérés, " #~ "etc.\n" #~ " -t, --terminal utiliser « termcap » comme pour un terminal\n" #~ " -w, --start-delete=CHAINE marque pour le début d'une région " #~ "d'effacement\n" #~ " -x, --end-delete=CHAINE marque pour la fin d'une région " #~ "d'effacement\n" #~ " -y, --start-insert=CHAINE marque pour le début d'une région " #~ "d'insertion\n" #~ " -z, --end-insert=CHAINE marque pour la fin d'une région d'insertion\n" #~ msgid "" #~ "\n" #~ "Report bugs to .\n" #~ msgstr "" #~ "\n" #~ "Signaler toute anomalie à mailto:wdiff-bugs@iro.umontreal.ca (en " #~ "anglais)\n" #~ "et tout problème de traduction à mailto:traduc@traduc.org (en français).\n" #~ msgid "Specify a terminal type with `setenv TERM '." #~ msgstr "Déterminer un type de terminal par «setenv TERM »." wdiff-1.2.1/po/es.po0000644000000000000000000016277312116513225011104 00000000000000# Mensajes en español para GNU wdiff. # Copyright (C) 1997, 2001, 2002, 2010, 2011, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Santiago Vila Doncel , 1997, 2001, 2002, 2010, 2011, 2012. # msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-27 16:41+0200\n" "Last-Translator: Santiago Vila Doncel \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (para la expreg `%s')" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "Solamente un fichero puede ser la entrada estándar" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "no se admiten directorios" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Leyendo %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d elemento\n" msgstr[1] ", %d elementos\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Resumen de lectura:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d fichero," msgstr[1] " %d ficheros," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d elemento\n" msgstr[1] " %d elementos\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Ordenando" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", agrupando" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", hecho\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Ordenando los miembros" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Resumen de trabajo:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d grupo," msgstr[1] " %d grupos," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d miembro\n" msgstr[1] " %d miembros\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d miembro," msgstr[1] " %d miembros," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d solapamiento\n" msgstr[1] " %d solapamientos\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "seleccione una terminal mediante la variable de entorno TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "no se pudo acceder a la base de datos termcap" # ¿Es "la terminal" o "el terminal"? SV # Yo siempre lo llamé El terminal. La terminal es la del aeropuerto EM # El que la del aeropuerto sea "la" no quiere decir que ninguna otra # pueda ser "la". Sería más bien lo contrario: El ejemplo del aeropuerto # demostraría que la palabra terminal es femenino. SV # ¿ Cómo te suena `una terminal tonta' y `un terminal tonto' ? EM # Igual. Me suena igual. (Y ninguno me suena mal). Por eso dudo. # Pero si la del aeropuerto es "la", la otra también puede serlo. SV # Habrá que abrir una investigación... # # Yo me inclino por `el terminal' (Machixmo ante todo;) ipg # # El nombre proviene de Equipo Terminal de Datos, la abreviatura # debiera conservar el género, por lo que se trataría de El ETD, el terminal # Los terminales, aunque me suena más familiar terminal boba, que terminal bobo # ¿será porque soy varón? :-) CB # # Vale, pues ahora me salgo por la tangente y cambio la frase :-) # Después de leer el original varias veces, me parece que es más bien # el *tipo* de teminal lo que no está definido. # (Antes decía "La terminal de tipo `%s' no está definida"). sv # # Así queda mucho más claro. Lo prefiero :) ipg # #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "el tipo de terminal `%s' no está definido" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d palabra" msgstr[1] "%s: %d palabras" # Es plural, con un tanto por ciento: # el xxx % de las palabras han sido borradas. # Abreviadamente: xxx % borradas. # # " %d %d%% en común" CB # No veo bien la diferencia. sv #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f%% común" msgstr[1] " %d %.0f%% comunes" # femenino, porque son `palabras' # plural otra vez, por ser tanto por ciento # #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f%% borrada" msgstr[1] " %d %.0f%% borradas" #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f%% cambiada" msgstr[1] " %d %.0f%% cambiadas" #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f%% insertada" msgstr[1] " %d %.0f%% insertadas" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pruebe `%s --help' para más información.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff - Estudia varios ficheros y busca fragmentos semejantes, entonces\n" "produce posibles listas detalladas de diferencias y similaridades.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Modo de empleo: %s [OPCIÓN]... [FICHERO]...\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Modos de operación:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (sin efecto)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose da algunas estadísticas en la salida de error " "estándar\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help muestra esta ayuda y finaliza\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version muestra la versión y finaliza\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formato del resultado:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr "" " -T, --initial-tab produce un TAB en lugar de un especio inicial\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate pagina el resultado a través de `pr`\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=CADENA] toma nota de otra CADENA de usuario\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr "" " -V, --show-links da referencias de fichero y línea en las " "anotaciones\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs expande tabs a espacios en el resultado\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Depuración:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging da muchos detalles de lo que ocurre\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Opciones para las palabras:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted no muestra las palabras borradas\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted no muestra las palabras insertadas\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common no muestra las palabras comunes\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager llama a un paginador automáticamente\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -k, --less-mode variante del modo de impresión para \"less\"\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -m, --avoid-wraps impide que los campos se extiendan más allá " "del\n" " final de línea\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr "" " -o, --printer utiliza sobreimpresión como en las impresoras\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal utiliza termcap para mostrar por terminal\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr " -O, --item-regexp=EXPREG compara elementos definidos por EXPREG\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode compara palabras en lugar de líneas\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Si no hay FICHERO, o cuando FICHERO es -, lee la entrada estándar.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Comunicar errores en el programa a .\n" "Comunicar errores de traducción a y al último traductor.\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "se descarta la opción %s (no implementada)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "no se puede usar -z, termcap no está disponible." #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "fusión de palabras para dos ficheros solamente (hasta ahora)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" # Lo pongo igual que en recode. #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Esto es software libre; vea el código fuente para las condiciones de copia.\n" "No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n" "FIN DETERMINADO.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Escrito por François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "las opciones -123RSYZ solamente tienen sentido cuando hay dos entradas" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "error al redirigir el flujo" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "fallo al ejecutar %s" # Pongo "la diferencia" y no "el diff" porque en este caso se refiere # a *una* diferencia concreta, la de la línea %ld., y no se refiere al "diff" # genérico, es decir el fichero resultante de la orden diff. # #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "no se pudo encontrar un nombre para la diferencia en la línea %ld" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "pruebe `%s --help' para más información.\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "" "unify - Transforma diffs de contexto en diffs unificados, o viceversa.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Modo de empleo: %s [OPCIÓN]... [FICHERO]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs genera el resultado como diffs de contexto\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr "" " -e, --echo-comments repite los comentarios por la salida de error " "estándar\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs muestra diffs al viejo estilo, pase lo que pase\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format genera en formato de parche\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P lo mismo que -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments elimina las líneas de comentarios\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs genera el resultado como diffs unificados\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U lo mismo que -p y -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals sustituye espacios por signos igual en diffs\n" " unificados\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Si no se especifica FICHERO, lee la entrada estándar.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "no se puede abrir `%s'" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "sólo se permite un nombre de fichero" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Escrito por Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "cabecera de diff unificado no válida en la línea %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "diff unificado erróneo en la línea %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "diff de contexto sin cabecera `old' en la línea %ld" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "diff de contexto erróneo en la línea %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "diff de contexto sin cabecera `new' en la línea %ld" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "no existe ningún directorio temporal apropiado" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: programa de entrada terminado por la señal %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: programa de salida terminado por la señal %d\n" # ¿"Free software" -> "Software libre"? ipg # # Vale, después de pensarlo un poco, me parece adecuado. # Usar y extender este término (que ya usan los franceses) # ayudará a evitar que le llamen "software gratis" # Además, "free software" quedaba "demasiado en inglés". #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Este programa es software libre: puede ser redistribuido y/o modificado\n" "bajo los términos de la Licencia Pública General de GNU tal y como se\n" "publica por la Free Software Foundation; bien en la versión 3 de la\n" "Licencia, o (a su elección) cualquier versión posterior.\n" "\n" "Este programa se distribuye con la esperanza de que sea útil,\n" "pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de\n" "COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Véase la\n" "Licencia Pública General de GNU para más detalles.\n" "\n" "Usted debería haber recibido una copia de la Licencia Pública General\n" "de GNU junto con este programa. Si no, vea .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "" "wdiff - Compara palabras en dos ficheros e informa de las diferencias.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Modo de empleo: %s [OPCIÓN]... FICHERO1 FICHERO2\n" " o bien: %s -d [OPCIÓN]... [FICHERO]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Los argumentos obligatorios para las opciones largas son también " "obligatorios\n" "para las opciones cortas.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright muestra el copyright y finaliza\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager llama a un paginador automáticamente\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr " -d, --diff-input utiliza diff unificado como entrada\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help muestra esta ayuda\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr "" " -i, --ignore-case no tiene en cuenta las diferencias\n" " entre mayúsculas y minúsculas\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr "" " -l, --less-mode variante del modo de impresión para \"less\"\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr "" " -n, --avoid-wraps impide que los campos se extiendan más allá " "del\n" " final de línea\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr "" " -p, --printer utiliza sobreimpresión como en las impresoras\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics indica cuántas palabras hay borradas, " "insertadas\n" " y comunes\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr "" " -t, --terminal utiliza termcap para mostrar por terminal\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr "" " -v, --version muestra la versión del programa y finaliza\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=CADENA cadena para marcar comienzo de la región " "borrada\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=CADENA cadena para marcar el final de la región " "borrada\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=CADENA cadena para marcar el comienzo de una región\n" " insertada\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr "" " -z, --end-insert=CADENA cadena para marcar el final de una región\n" " insertada\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "no se puede usar -t, termcap no está disponible" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" # No se referirá a que no se ha dado al menos un nombre de fichero ? EM # Sí, pero hay que dar *dos*, si se da uno o ninguno, faltan argumentos. SV # Se debe especificar al menos un fichero, quedaría bien. EM # Creo que "faltan argumentos" es suficiente. # Tras este mensaje, aparece lo de "Pruebe --help para más información" # que es donde explica qué argumentos son los que faltan. # Otras posibilidades serían: # Faltan ficheros # Faltan argumentos de tipo FICHERO. # Pero no me gusta ninguna de las anteriores SV # Al final he optado por una solución intermedia. #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "demasiados argumentos (ficheros)" # No se referirá a que no se ha dado al menos un nombre de fichero ? EM # Sí, pero hay que dar *dos*, si se da uno o ninguno, faltan argumentos. SV # Se debe especificar al menos un fichero, quedaría bien. EM # Creo que "faltan argumentos" es suficiente. # Tras este mensaje, aparece lo de "Pruebe --help para más información" # que es donde explica qué argumentos son los que faltan. # Otras posibilidades serían: # Faltan ficheros # Faltan argumentos de tipo FICHERO. # Pero no me gusta ninguna de las anteriores SV # Al final he optado por una solución intermedia. #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "faltan argumentos (ficheros)" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff - Calcula diferencias de palabras lanzando internamente `mdiff -W'.\n" "Este programa existe principalmente para admitir la ahora antigua sintaxis\n" "de `wdiff'.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Modo de empleo: %s [OPCIÓN]... FICHERO1 FICHERO2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr "" " -q, --quiet no muestra el mensaje de llamada a `mdiff'\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "" "Este programa también dice cómo se podría haber llamado a `mdiff' " "directamente.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Lanzando `%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "'\n" #~ msgid "Read summary: %d files, %d items\n" #~ msgstr "Resumen de lectura: %d ficheros, %d elementos\n" #~ msgid "Work summary: %d clusters, %d members\n" #~ msgstr "Resumen: %d grupos, %d miembros\n" #~ msgid "Work summary: %d clusters, %d members, %d overlaps\n" #~ msgstr "Resumen: %d grupos, %d miembros, %d duplicaciones\n" #~ msgid "" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term como -z, pero sin cadenas de inicio/fin de " #~ "termcap\n" #~ msgid "" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ msgstr "" #~ " -K, --no-init-term como -t, pero sin cadenas de inicio/fin de " #~ "termcap\n" #~ msgid "" #~ "\n" #~ "Operation modes:\n" #~ " -h (ignored)\n" #~ " -v, --verbose report a few statistics on stderr\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" #~ "\n" #~ "Modos de operación:\n" #~ " -h (sin efecto)\n" #~ " -v, --verbose da algunas estadísticas en la salida de error " #~ "estándar\n" #~ " --help muestra esta ayuda y finaliza\n" #~ " --version muestra la versión y finaliza\n" #~ msgid "" #~ "\n" #~ "Formatting output:\n" #~ " -T, --initial-tab produce TAB instead of initial space\n" #~ " -l, --paginate paginate output through `pr'\n" #~ " -S, --string[=STRING] take note of another user STRING\n" #~ " -V, --show-links give file and line references in annotations\n" #~ " -t, --expand-tabs expand tabs to spaces in the output\n" #~ msgstr "" #~ "\n" #~ "Formato del resultado:\n" #~ " -T, --initial-tab produce un TAB en lugar de un especio inicial\n" #~ " -l, --paginate pagina el resultado a través de `pr`\n" #~ " -S, --string[=CADENA] toma nota de otra CADENA de usuario\n" #~ " -V, --show-links da referencias de fichero y línea en las " #~ "anotaciones\n" #~ " -t, --expand-tabs expande tabs a espacios en el resultado\n" # Para el --version, ¿qué tal usar la frasecita esa que ya es más o menos # estándar de `informa de la versión y finaliza'? # # No, porque esa es la traducción de esto: # " --version output version information and exit\n" # La frase original que hay aquí es algo distinta, por eso me parece # apropiado traducirla de forma distinta (aparece la palabra "program", # por ejemplo). sv # # He puesto `termcap' entre comillas simples, ya que es un palabro guiri # (espero que te parezca bien). ipg # # Pues no del todo, porque es un nombre de fichero, más que un # "palabro guiri". ¿Se traducen los nombres de los ficheros? # # [ Lo de entrecomillar ciertas palabras se me ocurrió en alguna ocasión # para dar a entender que idealmente habría que usar una palabra española # pero no la hay, o la que hay no está lo suficientemente difundida, es decir # para admitir abiertamente que no es una palabra española, o sea, que no # es nuestra intención ampliar el diccionario por ahí ]. sv # # ¿Qué te parecería poner en lugar de `CADENA' `TEXTO'? Para remarcar que # es una cadena de letras, vamos ... ipg # # Si eso fuera mejor, entonces el original habría puesto "TEXT", que # también existe. Supongo que si el original dice STRING, es porque admite # cualquier cadena, sin limitarse a caracteres alfanuméricos o cosas así. sv #~ msgid "" #~ "\n" #~ "Word mode options:\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -A, --auto-pager automatically calls a pager\n" #~ " -k, --less-mode variation of printer mode for \"less\"\n" #~ " -m, --avoid-wraps do not extend fields through newlines\n" #~ " -o, --printer overstrike as for printers\n" #~ " -z, --terminal use termcap as for terminal displays\n" #~ " -K, --no-init-term like -z, but no termcap init/term strings\n" #~ " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" #~ " -W, --word-mode compare words instead of lines\n" #~ msgstr "" #~ "\n" #~ "Opciones para las palabras:\n" #~ " -1, --no-deleted no muestra las palabras borradas\n" #~ " -2, --no-inserted no muestra las palabras insertadas\n" #~ " -3, --no-common no muestra las palabras comunes\n" #~ " -A, --auto-pager llama a un paginador automáticamente\n" #~ " -k, --less-mode variante del modo de impresión para \"less" #~ "\"\n" #~ " -m, --avoid-wraps impide que los campos se extiendan más allá " #~ "del\n" #~ " final de línea\n" #~ " -o, --printer utiliza sobreimpresión como en las " #~ "impresoras\n" #~ " -z, --terminal utiliza termcap para mostrar por terminal\n" #~ " -K, --no-init-term como -z, pero sin cadenas de inicio/fin de " #~ "termcap\n" #~ " -O, --item-regexp=EXPREG compara elementos definidos por EXPREG\n" #~ " -W, --word-mode compara palabras en lugar de líneas\n" #~ msgid "" #~ "\n" #~ "Comparing files:\n" #~ "* -H, --speed-large-files go faster, for when numerous small " #~ "changes\n" #~ "* -a, --text report line differences (text file " #~ "default)\n" #~ "* -d, --minimal try harder for a smaller set of changes\n" #~ "* -q, --brief only says if files differ (binary " #~ "default)\n" #~ "* --horizon-lines=LINES keep LINES lines in common prefixes/" #~ "suffixes\n" #~ msgstr "" #~ "\n" #~ "Comparación de ficheros:\n" #~ "* -H, --speed-large-files acelera el proceso, para cuando hay " #~ "muchos\n" #~ " cambios pero pequeños\n" #~ "* -a, --text informa de las diferencias en las líneas\n" #~ " (como ficheros de texto de forma " #~ "predeterminada)\n" #~ "* -q, --brief solamente dice si los ficheros son " #~ "distintos\n" #~ " (como ficheros binarios de forma " #~ "predeterminada)\n" #~ "* --horizon-lines=LÍNEAS mantiene LÍNEAS líneas en prefijos/" #~ "sufijos\n" #~ " comunes\n" #~ msgid "" #~ "\n" #~ "Comparing directories:\n" #~ "* -N, --new-file consider missing files to be empty\n" #~ "* -P, --unidirectional-new-file consider missing old files to be " #~ "empty\n" #~ "* -S, --starting-file=FILE resume directory comparison with FILE\n" #~ "* -X, --exclude-from=FILE ignore files matching patterns from " #~ "FILE\n" #~ "* -r, --recursive recursively compare subdirectories\n" #~ "* -s, --report-identical-files report when two files are the same\n" #~ "* -x, --exclude=PATTERN ignore files (dirs) matching PATTERN\n" #~ msgstr "" #~ "\n" #~ "Comparación de directorios:\n" #~ "* -N, --new-file considera vacíos los ficheros " #~ "ausentes\n" #~ "* -P, --unidirectional-new-file considera vacíos los ficheros " #~ "ausentes\n" #~ " antiguos\n" #~ "* -S, --starting-file=FICHERO inicia la comparación de directorios\n" #~ " con FICHERO\n" #~ "* -X, --exclude-from=FICHERO descarta los ficheros que encajen con\n" #~ " los patrones de FICHERO\n" #~ "* -r, --recursive compara subdirectorios recursivamente\n" #~ "* -s, --report-identical-files informa de cuándo dos ficheros son el " #~ "mismo\n" #~ "* -x, --exclude=PATRÓN descarta ficheros (directorios) que " #~ "encajen\n" #~ " con PATRÓN\n" #~ msgid "" #~ "\n" #~ "Ignoring text:\n" #~ " -B, --ignore-blank-lines ignore blank lines\n" #~ "* -I, --ignore-matching-lines=REGEXP ignore lines matching REGEXP\n" #~ " -b, --ignore-space-change ignore amount of white space\n" #~ " -i, --ignore-case ignore case differences\n" #~ " -w, --ignore-all-space ignore white space\n" #~ msgstr "" #~ "\n" #~ "Soslayo de texto:\n" #~ " -B, --ignore-blank-lines descarta las líneas en blanco\n" #~ "* -I, --ignore-matching-lines=EXPREG descarta las líneas que encajen\n" #~ " con EXPREG\n" #~ " -b, --ignore-space-change no tiene en cuenta la cantidad de\n" #~ " espacios en blanco\n" #~ " -i, --ignore-case no tiene en cuentas las " #~ "diferencias\n" #~ " entre mayúsculas y minúsculas\n" #~ " -w, --ignore-all-space no tiene en cuenta los espacios " #~ "en\n" #~ " blanco\n" #~ msgid "" #~ "\n" #~ "Clustering:\n" #~ " -G, --relist-files list all input files with annotations\n" #~ " -J, --minimum-size=ITEMS ignore clusters not having that many ITEMS\n" #~ " -j, --ignore-delimiters do not count items having only delimiters\n" #~ msgstr "" #~ "\n" #~ "Agrupamiento:\n" #~ " -G, --relist-files lista todos los ficheros de entrada con\n" #~ " anotaciones\n" #~ " -J, --minimum-size=ELEMENTOS descarta los grupos que no tengan tantos\n" #~ " ELEMENTOS\n" #~ " -j, --ignore-delimiters no cuenta los elementos que solamente " #~ "tengan\n" #~ " delimitadores\n" # FIXME: "for deleted lines" - "for deleted line". Which is the difference? #~ msgid "" #~ "\n" #~ "Detailed output formats:\n" #~ "* -D, --ifdef=NAME output `#ifdef NAME' format\n" #~ "* --changed-group-format=FORMAT use FORMAT for changed lines\n" #~ "* --new-group-format=FORMAT use FORMAT for inserted lines\n" #~ "* --new-line-format=FORMAT use FORMAT for inserted line\n" #~ "* --old-group-format=FORMAT use FORMAT for deleted lines\n" #~ "* --old-line-format=FORMAT use FORMAT for deleted line\n" #~ "* --unchanged-group-format=FORMAT use FORMAT for unchanged lines\n" #~ "* --unchanged-line-format=FORMAT use FORMAT for unchanged line\n" #~ "* --line-format=FORMAT --{old,new,unchanged}-line-" #~ "format\n" #~ msgstr "" #~ "\n" #~ "Formatos de salida detallados:\n" #~ "* -D, --ifdef=NOMBRE utiliza el formato `#ifdef " #~ "NOMBRE'\n" #~ "* --changed-group-format=FORMATO utiliza FORMATO para las líneas " #~ "que\n" #~ " cambian\n" #~ "* --new-group-format=FORMATO utiliza FORMATO para las líneas\n" #~ " insertadas\n" #~ "* --new-line-format=FORMATO utiliza FORMATO para una línea\n" #~ " insertada\n" #~ "* --old-group-format=FORMATO utiliza FORMATO para las líneas\n" #~ " eliminadas\n" #~ "* --old-line-format=FORMATO utiliza FORMATO para una línea " #~ "borrada\n" #~ "* --unchanged-group-format=FORMATO utiliza FORMATO para líneas que " #~ "no\n" #~ " han cambiado\n" #~ "* --unchanged-line-format=FORMATO utiliza FORMATO para una línea " #~ "que no\n" #~ " ha cambiado\n" #~ "* --line-format=FORMATO --{old,new,unchanged}-line-" #~ "format\n" #~ msgid "" #~ "\n" #~ "Script-like formats:\n" #~ " (none of -CDUcefnuy) output normal diffs\n" #~ "* -e, --ed output a valid `ed' script\n" #~ "* -f, --forward-ed mix between -e and -n (not very useful)\n" #~ "* -n, --rcs output RCS format (internally used by RCS)\n" #~ msgstr "" #~ "\n" #~ "Formatos estilo `script':\n" #~ " (ninguno de entre -CDUcefnuy) produce diffs normales\n" #~ "* -e, --ed produce un script `ed' válido\n" #~ "* -f, --forward-ed mezcla entre -e y -n (no muy útil)\n" #~ "* -n, --rcs formato RCS (usado internamente por RCS)\n" #~ msgid "" #~ "\n" #~ "Context and unified formats:\n" #~ "* -F, --show-function-line=REGEXP show previous context matching " #~ "REGEXP\n" #~ "* -p, --show-c-function show which C function for each " #~ "change\n" #~ msgstr "" #~ "\n" #~ "Formatos de contexto y unificado:\n" #~ "* -F, --show-function-line=EXPREG muestra el contexto previo que " #~ "encaje con\n" #~ " EXPREG\n" #~ "* -p, --show-c-function muestra la función C a que " #~ "corresponde\n" #~ " cada cambio\n" #~ msgid "" #~ "\n" #~ "* -C, --context=LINES as -c, also select context size in lines\n" #~ "* -L, --label=LABEL use from/to LABEL instead of file name " #~ "(twice)\n" #~ "* -U, --unified=LINES as -u, also select context size in lines\n" #~ "* -c, --context output context diffs (default 3 context " #~ "lines)\n" #~ "* -u, --unified output unidiffs (default 3 context lines)\n" #~ "* -LINES (obsolete: select context size in lines)\n" #~ msgstr "" #~ "\n" #~ "* -C, --context=LÍNEAS como -c, también selecciona el tamaño del\n" #~ " contexto\n" #~ " en líneas\n" #~ "* -L, --label=ETIQUETA utiliza una ETIQUETA from/to en vez del " #~ "nombre\n" #~ " del fichero (por duplicado)\n" #~ "* -U, --unified=LÍNEAS produce diffs de contexto (por omisión 3 " #~ "líneas)\n" #~ "* -u, --unified produce un diff unificado (por omisión 3 " #~ "líneas)\n" #~ " -LÍNEAS (obsoleta: selecciona el tamaño del " #~ "contexto\n" #~ " en líneas)\n" # FUZZY: side by side? #~ msgid "" #~ "\n" #~ "Side by side format:\n" #~ "* -W, --width=COLUMNS use width of COLUMNS\n" #~ "* -y, --side-by-side use side by side output format\n" #~ "* --left-column print only left column line when common\n" #~ "* --sdiff-merge-assist (internally used by `sdiff')\n" #~ "* --suppress-common-lines do not print common lines\n" #~ msgstr "" #~ "\n" #~ "Formato de lado a lado:\n" #~ "* -W, --width=COLUMNAS utiliza un ancho de COLUMNAS\n" #~ "* -y, --side-by-side produce el resultado en formato lado a " #~ "lado\n" #~ "* --left-column muestra sólo la columna izquierda cuando " #~ "es\n" #~ " común\n" #~ "* --sdiff-merge-assist (usado internamente por `sdiff')\n" #~ "* --suppress-common-lines no muestra las líneas comunes\n" #~ msgid "" #~ "\n" #~ "FORMAT is made up of characters standing for themselves, except:\n" #~ " %%%% a single %%\n" #~ " %%c'C' quoted character C\n" #~ " %%c'\\O' character having value O, from 1 to 3 octal digits\n" #~ " %%(A=B?T:E) if A is B then T else E; A B number or VARIABLE; T E " #~ "FORMAT\n" #~ " %%FN use SPECIF specification F to print VARIABLE value N\n" #~ " %%< [group] old, each line through --old-line-format\n" #~ " %%> [group] new, each line through --new-line-format\n" #~ " %%= [group] unchanged, each line through --unchanged-line-" #~ "format\n" #~ " %%l [line] without its possible trailing newline\n" #~ " %%L [line] with its possible trailing newline\n" #~ msgstr "" #~ "\n" #~ "FORMATO se compone de caracteres que se representan a sí mismos, " #~ "excepto:\n" #~ " %%%% un %%\n" #~ " %%c'C' el carácter C entrecomillado\n" #~ " %%c'\\O' el carácter que tiene valor O, de 1 a tres dígitos " #~ "octales\n" #~ " %%(A=B?T:E) si A es B entonces T y si no E; A y B son números o " #~ "variables,\n" #~ " T y E son FORMATOs\n" #~ " %%FN utiliza la especificación SPECIF F para mostrar el " #~ "valor\n" #~ " VARIABLE N\n" #~ " %%< [grupo] antiguo, cada línea a través de --old-line-" #~ "format\n" #~ " %%> [grupo] nuevo, cada línea a través de --new-line-format\n" #~ " %%= [grupo] no cambia, cada línea a través de\n" #~ " --unchanged-line-format\n" #~ " %%l [línea] sin su posible carácter de nueva línea final\n" #~ " %%L [línea] con su posible carácter de nueva línea final\n" #~ msgid "" #~ "\n" #~ "SPECIF is [-][W[.D]]{doxX} as in C printf\n" #~ msgstr "" #~ "\n" #~ "SPECIF es [-][W[.D]]{doxX} como en el printf de C\n" #~ msgid "" #~ "\n" #~ "VARIABLE is {eflmn} for old group or {EFLMN} for new group\n" #~ " {eE} line number just before group\n" #~ " {fF} first line number of group\n" #~ " {lL} last line number of group\n" #~ " {mM} line number just after group\n" #~ " {nN} number of lines in the group\n" #~ msgstr "" #~ "\n" #~ "VARIABLE es {eflmn} para un grupo antiguo o {EFLMN} para un grupo nuevo\n" #~ " {eE} número de línea justo antes del grupo\n" #~ " {fF} primera línea del grupo\n" #~ " {lL} última línea del grupo\n" #~ " {mM} número de línea justo después del grupo\n" #~ " {nN} número de líneas dentro del grupo\n" #~ msgid "" #~ "\n" #~ "Standard diff options:\n" #~ " -i, --ignore-case consider upper- and lower-case to be the " #~ "same\n" #~ " -w, --ignore-all-space ignore all white space\n" #~ " -b, --ignore-space-change ignore changes in the amount of white space\n" #~ " -B, --ignore-blank-lines ignore changes whose lines are all blank\n" #~ " -I, --ignore-matching-lines=RE ignore changes whose lines all match RE\n" #~ " -a, --text treat all files as text\n" #~ " -c, --context[=NUMBER] output regular context diffs,\n" #~ " changing to NUMBER lines of context\n" #~ " -u, --unified[=NUMBER] output unified context diffs or unidiffs,\n" #~ " with NUMBER lines of context\n" #~ " -C, --context=NUM output NUM lines of copied context\n" #~ " -U, --unified=NUM output NUM lines of unified context\n" #~ " -L, --label=LABEL use LABEL instead of file name\n" #~ " -p, --show-c-function show which C function each change is in\n" #~ " -F, --show-function-line=RE show the most recent line matching RE\n" #~ msgstr "" #~ "\n" #~ "Opciones estándar de diff:\n" #~ " -i, --ignore-case considera iguales mayúsculas y minúsculas\n" #~ " -w, --ignore-all-space descarta los espacios en blanco\n" #~ " -b, --ignore-space-change descarta cambios en la cantidad de espacio\n" #~ " en blanco\n" #~ " -B, --ignore-blank-ines descarta cambios cuyas líneas están en " #~ "blanco\n" #~ " -I, --ignore-matching-lines=ER descarta cambios cuyas líneas encajan\n" #~ " con ER\n" #~ " -a, --text trata todos los ficheros como texto\n" #~ " -c, --context[=NÚMERO] produce diffs de contexto normales,\n" #~ " cambiando a NÚMERO líneas de contexto\n" #~ " -u, --unified[=NÚMERO] produce diffs de contexto unificado\n" #~ " con NÚMERO líneas de contexto\n" #~ " -C, --context=NÚM produce NÚM líneas de contexto copiado\n" #~ "\n" #~ " -U, --unified=NÚM produce NÚM líneas de contexto unificado\n" #~ " -L, --label=ETIQUETA usa ETIQUETA en lugar del nombre del fichero\n" #~ " -p, --show-c-function muestra en qué función C está cada cambio\n" #~ " -F, --show-function-line=ER muestra la línea más reciente que encaje\n" #~ " con ER\n" #~ msgid "" #~ " -q, --brief output only whether files differ\n" #~ " -e, --ed output an ed script\n" #~ " -n, --rcs output an RCS format diff\n" #~ " -y, --side-by-side output in two columns\n" #~ " -w, --width=NUM output at most NUM (default 130) characters " #~ "per line\n" #~ " --left-column output only the left column of common lines\n" #~ " --suppress-common-lines do not output common lines\n" #~ " -D, --ifdef=NAME output merged file to show `#ifdef NAME' " #~ "diffs\n" #~ " --GTYPE-group-format=GFMT GTYPE input groups with GFMT\n" #~ " --line-format=LFMT all input lines with LFMT\n" #~ " --LTYPE-line-format=LFMT LTYPE input lines with LFMT\n" #~ " -l, --paginate pass the output through `pr' to paginate it\n" #~ " -t, --expand-tabs expand tabs to spaces in output\n" #~ msgstr "" #~ " -q, --brief muestra sólo si los ficheros difieren o no\n" #~ " -e, --ed produce un script ed\n" #~ " -n, --rcs produce un diff en formato RCS\n" #~ " -y, --side-by-side muestra en dos columnas\n" #~ " -w, --width=NÚM muestra como mucho NÚM (por omisión 130)\n" #~ " caracteres por línea\n" #~ " --left-column muestra sólo la columna izquiera de las " #~ "líneas\n" #~ " comunes\n" #~ " --suppress-common-lines no muestra las líneas comunes\n" #~ " -D, --ifdef=NOMBRE muestra un fichero combinado con diffs de " #~ "tipo\n" #~ " `#ifdef NOMBRE'\n" #~ " --GTYPE-group-format=GFMT grupos de entrada GTYPE con GFMT\n" #~ " --line-format=LFMT todas las líneas de entrada con LFMT\n" #~ " --LTYPE-line-format=LFMT líneas de entrada LTYPE con LFMT\n" #~ " -l, --paginate pasa el resultado a través de `pr' para " #~ "paginarlo\n" #~ " -t, --expand-tabs expande tabs a espacios en el resultado\n" #~ msgid "" #~ " -T, --initial-tab make tabs line up by prepending a tab\n" #~ " -r, --recursive recursively compare any subdirectories found\n" #~ " -N, --new-file treat absent files as empty\n" #~ " -P, --unidirectional-new-file treat absent first files as empty\n" #~ " -s, --report-identical-files report when two files are the same\n" #~ " -x, --exclude=PAT exclude files that match PAT\n" #~ " -X, --exclude-from=FILE exclude files that match any pattern in FILE\n" #~ " -S, --starting-file=FILE start with FILE when comparing directories\n" #~ " --horizon-lines=NUM keep NUM lines of the common prefix and " #~ "suffix\n" #~ " -d, --minimal try hard to find a smaller set of changes\n" #~ " -H, --speed-large-files assume large files and many scattered small " #~ "changes\n" #~ msgstr "" #~ " -T, --initial-tab alinea los tabs añadiendo un tab inicial\n" #~ " -r, --recursive compara recursivamente los directorios " #~ "encontrados\n" #~ " -N, --new-file trata los ficheros ausentes como vacíos\n" #~ " -P, --unidirectional-new-file trata los ficheros primeros ausentes como " #~ "vacíos\n" #~ " -s, --report-identical-files informa de cuándo dos ficheros son el " #~ "mismo\n" #~ " -x, --exclude=PAT excluye ficheros que encajan con PAT\n" #~ " -X, --exclude-from=FICHERO excluye ficheros que encajan en cualquier " #~ "patrón\n" #~ " de FICHERO\n" #~ " -S, --starting-file=FICHERO comienza con FICHERO cuando se comparan\n" #~ " directorios\n" #~ " --horizon-lines=NÚM mantiene NÚM líneas del prefijo y sufijo " #~ "comunes\n" #~ " -d, --minimal se esfuerza por encontrar un conjunto de " #~ "cambios\n" #~ " más pequeño\n" #~ " -H, --speed-large-files supone que los ficheros son grandes y con " #~ "muchos\n" #~ " cambios pequeños y salteados\n" #~ msgid "" #~ "\n" #~ "By default, context diffs have an horizon of two lines.\n" #~ msgstr "" #~ "\n" #~ "Por omisión, los diffs de contexto tienen un horizonte de dos líneas.\n" #~ msgid "" #~ "\n" #~ "LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.\n" #~ "GFMT may contain:\n" #~ " %< lines from FILE1\n" #~ " %> lines from FILE2\n" #~ " %= lines common to FILE1 and FILE2\n" #~ " %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" #~ " LETTERs are as follows for new group, lower case for old group:\n" #~ " F first line number\n" #~ " L last line number\n" #~ " N number of lines = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgstr "" #~ "\n" #~ "LTYPE es `old', `new', o `unchanged'. GTYPE es LTYPE o `changed'.\n" #~ "GFMT puede contener:\n" #~ " %< líneas del FICHERO1\n" #~ " %> líneas del FICHERO2\n" #~ " %[-][ANCHO][.[PREC]]{doxX}LETRA especificación estilo printf para " #~ "LETRA\n" #~ " Las LETRAs son como sigue para un nuevo grupo, o minúsculas para un " #~ "grupo\n" #~ " antiguo:\n" #~ " F primer número de línea\n" #~ " L último número de línea\n" #~ " N número de líneas = L-F+1\n" #~ " E F-1\n" #~ " M L+1\n" #~ msgid "" #~ "LFMT may contain:\n" #~ " %L contents of line\n" #~ " %l contents of line, excluding any trailing newline\n" #~ " %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number\n" #~ "Either GFMT or LFMT may contain:\n" #~ " %% %\n" #~ " %c'C' the single character C\n" #~ " %c'\\OOO' the character with octal code OOO\n" #~ msgstr "" #~ "LFMT puede contener:\n" #~ " %L contenido de la línea\n" #~ " %l contenido de la línea, excluyendo cualquier carácter de nueva línea " #~ "final\n" #~ " %[-][ANCHO][.[PREC]]{doxX}n especificación estilo printf para el " #~ "número\n" #~ " de la línea de entrada\n" #~ "Tanto GFMT como LFMT pueden contener:\n" #~ " %% %\n" #~ " %c'C' el carácter C\n" #~ " %c'\\OOO' el carácter con código octal OOO\n" #~ msgid "" #~ "\n" #~ "Old mdiff options:\n" #~ "* -f, --fuzz-items=ITEMS no more than ITEMS non matching in a " #~ "cluster\n" #~ msgstr "" #~ "\n" #~ "Opciones antiguas de mdiff:\n" #~ "* -f, --fuzz-items=ELEMENTOS número máximo de ELEMENTOS que no encajen\n" #~ " en un grupo\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" # He puesto 'en' la salida estándar, por unificar em # Pues creo que no había que unificar, porque aquí el original dice "to", # no "in". No es lo mismo. sv+ #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs genera el resultado como diffs de contexto\n" #~ " -e, --echo-comments repite los comentarios por la salida de error " #~ "estándar\n" #~ " -o, --old-diffs muestra diffs al viejo estilo, pase lo que pase\n" #~ " -p, --patch-format genera en formato de parche\n" #~ " -P lo mismo que -p\n" #~ " -s, --strip-comments elimina las líneas de comentarios\n" #~ " -u, --unidiffs genera el resultado como diffs unificados\n" #~ " -U lo mismo que -p y -u\n" #~ " -=, --use-equals sustituye espacios por signos igual en diffs\n" #~ " unificados\n" #~ " --help muestra esta ayuda y finaliza\n" #~ " --version muestra la versión y finaliza\n" #~ "\n" #~ "Si no se especifica FICHERO, se lee la entrada estándar.\n" # Para el --version, ¿qué tal usar la frasecita esa que ya es más o menos # estándar de `informa de la versión y finaliza'? # # No, porque esa es la traducción de esto: # " --version output version information and exit\n" # La frase original que hay aquí es algo distinta, por eso me parece # apropiado traducirla de forma distinta (aparece la palabra "program", # por ejemplo). sv # # He puesto `termcap' entre comillas simples, ya que es un palabro guiri # (espero que te parezca bien). ipg # # Pues no del todo, porque es un nombre de fichero, más que un # "palabro guiri". ¿Se traducen los nombres de los ficheros? # # [ Lo de entrecomillar ciertas palabras se me ocurrió en alguna ocasión # para dar a entender que idealmente habría que usar una palabra española # pero no la hay, o la que hay no está lo suficientemente difundida, es decir # para admitir abiertamente que no es una palabra española, o sea, que no # es nuestra intención ampliar el diccionario por ahí ]. sv # # ¿Qué te parecería poner en lugar de `CADENA' `TEXTO'? Para remarcar que # es una cadena de letras, vamos ... ipg # # Si eso fuera mejor, entonces el original habría puesto "TEXT", que # también existe. Supongo que si el original dice STRING, es porque admite # cualquier cadena, sin limitarse a caracteres alfanuméricos o cosas así. sv #~ msgid "" #~ "Mandatory arguments to long options are mandatory for short options too.\n" #~ "\n" #~ " -C, --copyright print copyright then exit\n" #~ " -K, --no-init-term like -t, but no termcap init/term strings\n" #~ " -V, --version print program version then exit\n" #~ " -1, --no-deleted inhibit output of deleted words\n" #~ " -2, --no-inserted inhibit output of inserted words\n" #~ " -3, --no-common inhibit output of common words\n" #~ " -a, --auto-pager automatically calls a pager\n" #~ " -h, --help print this help\n" #~ " -i, --ignore-case fold character case while comparing\n" #~ " -l, --less-mode variation of printer mode for \"less\"\n" #~ " -n, --avoid-wraps do not extend fields through newlines\n" #~ " -p, --printer overstrike as for printers\n" #~ " -s, --statistics say how many words deleted, inserted etc.\n" #~ " -t, --terminal use termcap as for terminal displays\n" #~ " -w, --start-delete=STRING string to mark beginning of delete region\n" #~ " -x, --end-delete=STRING string to mark end of delete region\n" #~ " -y, --start-insert=STRING string to mark beginning of insert region\n" #~ " -z, --end-insert=STRING string to mark end of insert region\n" #~ msgstr "" #~ "Los argumentos obligatorios para las opciones largas son también " #~ "obligatorios\n" #~ "para las opciones cortas.\n" #~ "\n" #~ " -C, --copyright muestra el copyright y finaliza\n" #~ " -K, --no-init-term como -t, pero sin cadenas de inicio/fin de " #~ "termcap\n" #~ " -V, --version muestra la versión del programa y finaliza\n" #~ " -1, --no-deleted no muestra las palabras borradas\n" #~ " -2, --no-inserted no muestra las palabras insertadas\n" #~ " -3, --no-common no muestra las palabras comunes\n" #~ " -a, --auto-pager llama a un paginador automáticamente\n" #~ " -h, --help muestra esta ayuda\n" #~ " -i, --ignore-case no distingue mayúsculas de minúsculas al " #~ "comparar\n" #~ " -l, --less-mode variación del modo de impresión para \"less" #~ "\"\n" #~ " -n, --avoid-wraps impide que los campos se extiendan más allá " #~ "del\n" #~ " final de línea\n" #~ " -p, --printer utiliza sobreimpresión como en las " #~ "impresoras\n" #~ " -s, --statistics indica cuántas palabras hay borradas, " #~ "insertadas\n" #~ " y comunes\n" #~ " -t, --terminal utiliza termcap para mostrar por terminal\n" #~ " -w, --start-delete=CADENA cadena para marcar el comienzo de la región " #~ "borrada\n" #~ " -x, --end-delete=CADENA cadena para marcar el final de la región " #~ "borrada\n" #~ " -y, --start-insert=CADENA cadena para marcar el comienzo de una " #~ "región\n" #~ " insertada\n" #~ " -z, --end-insert=CADENA cadena para marcar el final de una región\n" #~ " insertada\n" # [ Antes puse , pero en español queda fatal ]. # # FIXME. # A mí esto no me mola, porque queda muy bien para la gente de csh, # pero a los basheros (como yo :) no les llega ... ¿sugerencias? ipg # Pues yo sugiero también poner los dos ... # # Tienes toda la razón, pero de momento hay que traducir la cadena dada. # (La fidelidad al original ante todo). Eso sí, en cuanto salga # la próxima versión de prueba se lo decimos al autor. # # Translation: I dislike this, because it is ok for csh-people, # but not for bash people (like me :) ... ¿suggestions? # #~ msgid "Specify a terminal type with `setenv TERM '." #~ msgstr "Especifique un tipo de terminal con `setenv TERM '." #~ msgid "Both files cannot be standard input." #~ msgstr "Los dos ficheros no pueden ser la entrada estándar" wdiff-1.2.1/po/POTFILES.in0000644000000000000000000000057711744500575011715 00000000000000## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. # List of source files which contain translatable strings. # Package source files. src/mdiff.c src/pipes.c src/unify.c src/wdiff.c src/wdiff2.c wdiff-1.2.1/po/fr.gmo0000644000000000000000000004062412116513226011237 00000000000000x( ]) K 9 ? M Z o  8 1 5 ;8 't % ' ) ? =T > < C9R9@$;,?h+G<9Y7>9 #D9hABB'7jCC@*8k/8> GL->B2D;w?GA;G}ABJez& '1Y\ s/ I  %)OWgEdE&"B7 U6v $$--3&a.$'$"L"o &7 #^  0 7 !!'!%?!e!?y!<!!(""\P$J$8$>1%p%%%%9%1%6/&Cf&.&.&*',3'F`'B'C'A.(Lp(F(<)PA)")F)@)(=*Sf*A*F*?C+S+O+#',:K,D,L,I-;b-Q-Q-DB.D.L.D/G^/P/=/I50S0<0P1Ga1H1E1G82A2S2313N3e33(3-33.4.>4m4s44 4144\4K5e51y5 555R66N909[(:(:+:L:&;<=;6z;@;@;<3<0p<<<<&<8 =1Y=.==Y>$w>/>>=>=(?'f??N??S@Kn@@ARA_(!:Qknl E-$CqT<K=pw5JUc`u0 6hx@gtvM H#b +)[eO./R]198mXB3ZSD"dPLj^NfsIF'\ oGiW4Y ,rV*>?;&a2%A7 Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright (C) 1994, 1997 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Debugging: Formatting output: Operation modes: Word mode options: Written by Franc,ois Pinard . Written by Wayne Davison . --help display this help then exit --version display program version then exit %d %.0f%% changed %d %.0f%% changed %d %.0f%% common %d %.0f%% common %d %.0f%% deleted %d %.0f%% deleted %d %.0f%% inserted %d %.0f%% inserted -0, --debugging output many details about what is going on -1, --no-deleted inhibit output of deleted words -2, --no-inserted inhibit output of inserted words -3, --no-common inhibit output of common words -=, --use-equals replace spaces by equal signs in unidiffs -A, --auto-pager automatically calls a pager -C, --copyright display copyright then exit -O, --item-regexp=REGEXP compare items as defined by REGEXP -P same as -p -S, --string[=STRING] take note of another user STRING -T, --initial-tab produce TAB instead of initial space -U same as -p and -u -V, --show-links give file and line references in annotations -W, --word-mode compare words instead of lines -a, --auto-pager automatically calls a pager -c, --context-diffs force output to context diffs -d, --diff-input use single unified diff as input -e, --echo-comments echo comments to standard error -h (ignored) -h, --help display this help then exit -i, --ignore-case fold character case while comparing -k, --less-mode variation of printer mode for "less" -l, --less-mode variation of printer mode for "less" -l, --paginate paginate output through `pr' -m, --avoid-wraps do not extend fields through newlines -n, --avoid-wraps do not extend fields through newlines -o, --old-diffs output old-style diffs, no matter what -o, --printer overstrike as for printers -p, --patch-format generate patch format -p, --printer overstrike as for printers -q, --quiet inhibit the `mdiff' call message -s, --statistics say how many words deleted, inserted etc. -s, --strip-comments strip comment lines -t, --expand-tabs expand tabs to spaces in the output -t, --terminal use termcap as for terminal displays -u, --unidiffs force output to unidiffs -v, --verbose report a few statistics on stderr -v, --version display program version then exit -w, --start-delete=STRING string to mark beginning of delete region -x, --end-delete=STRING string to mark end of delete region -y, --start-insert=STRING string to mark beginning of insert region -z, --end-insert=STRING string to mark end of insert region -z, --terminal use termcap as for terminal displays %d cluster, %d clusters, %d file, %d files, %d item %d items %d member %d members %d member, %d members, %d overlap %d overlaps %s (for regexp `%s')%s: %d word%s: %d words%s: input program killed by signal %d %s: output program killed by signal %d ' , %d item , %d items , clustering, done If FILE is not specified, read standard input. Launching `%sMandatory arguments to long options are mandatory for short options too. Read summary:Reading %sReport bugs to . SortingSorting membersThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program also tells how `mdiff' could have been called directly. 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 3 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, see . Try `%s --help' for more information. Usage: %s [OPTION]... FILE1 FILE2 Usage: %s [OPTION]... FILE1 FILE2 or: %s -d [OPTION]... [FILE] Usage: %s [OPTION]... [FILE] Usage: %s [OPTION]... [FILE]... With no FILE, or when FILE is -, read standard input. Work summary:cannot use -t, termcap not availablecannot use -z, termcap not availablecontext diff missing `new' header at line %ldcontext diff missing `old' header at line %ldcould not access the termcap data basecould not find a name for the diff at line %lddirectories not supportederror redirecting streamfailed to execute %signoring option %s (not implemented)invalid unified diff header at line %ldmalformed context diff at line %ldmalformed unified diff at line %ldmdiff - Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. missing file argumentsno suitable temporary directory existsonly one file may be standard inputonly one filename allowedoptions -123RSYZ meaningful only when two inputsselect a terminal through the TERM environment variableterminal type `%s' is not definedtoo many file argumentstry `%s --help' for more information unable to open `%s'unify - Transforms context diffs into unidiffs, or vice-versa. wdiff - Compares words in two files and report differences. wdiff - Compute word differences by internally launching `mdiff -W'. This program exists mainly to support the now oldish `wdiff' syntax. word merging for two files only (so far)Project-Id-Version: wdiff 1.2.0-b1 Report-Msgid-Bugs-To: wdiff-bugs@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-09-20 10:48-0400 Last-Translator: David Prévot Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Lokalize 1.4 Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. Copyright © 1994, 1997 Free Software Foundation, Inc. Copyright © 1994, 1997, 1999 Free Software Foundation, Inc. Débogage : Format de sortie : Modes opératoires : Options des mots : Écrit par François Pinard, . Écrit par Wayne Davison . --help affiche cette aide et quitte --version affiche la version de programme et quitte %d %.0f%% remplacé %d %.0f%% remplacés %d %.0f%% identique %d %.0f%% identiques %d %.0f%% effacé %d %.0f%% effacés %d %.0f%% inséré %d %.0f%% insérés -0, --debugging affiche beaucoup de détails durant le traitement -1, --no-deleted empêche la sortie des mots effacés -2, --no-inserted empêche la sortie des mots insérés -3, --no-common empêche la sortie des mots communs -=, --use-equals remplace les espaces par = dans les diff. unifiés -A, --auto-pager appelle automatiquement un présentateur -C, --copyright affiche le copyright et quitte -O, --item-regexp=EXPRAT compare les items définis par l'expr. rationnelle -P comme -p -S, --string[=CHAÎNE] retient cette nouvelle CHAÎNE utilisateur -T, --initial-tab émet TAB au lieu de l'espace initial -U comme -p et -u -V, --show-links affiche références de fichier et lignes en annotations -W, --word-mode compare les mots au lieu des lignes -a, --auto-pager appelle automatiquement un présentateur -c, --context-diffs produit des différentiel contextuels -d, --diff-input utilise un différentiel unifié et unique en entrée -e, --echo-comments copie les commentaires sur la sortie 'erreur standard -h (ignoré) -h, --help affiche cette aide et quitte -i, --ignore-case ignore la casse lors de la comparaison -k, --less-mode variation du mode d'impression : « less » -l, --less-mode variation du mode d'impression « less » -l, --paginate pagine la sortie avec « pr » -m, --avoid-wraps n'étend pas les champs au delà des sauts de ligne -n, --avoid-wraps n'étend pas les champs au-delà des sauts de ligne -o, --old-diffs produit des différentiel en ancien format -o, --printer utilise les commandes de surimpression -p, --patch-format produit une sortie pour le programme « patch » -p, --printer utilise les commandes de surimpression -q, --quiet supprime le message d'appel « mdiff » -s, --statistics donne le nombre de mots effacés, insérés, etc. -s, --strip-comments supprime les lignes de commentaires -t, --expand-tabs change les tabulations en espaces à la sortie -t, --terminal utilise « termcap » pour l'affichage sur terminal -u, --unidiffs produit des différentiel unifiés -v, --verbose émet des statistiques sur la sortie d'erreur standard -v, --version affiche la version du programme et quitte -w, --start-delete=CHAÎNE marque le début d'une région supprimée -x, --end-delete=CHAÎNE marque la fin d'une région supprimée -y, --start-insert=CHAÎNE marque le début d'une région insérée -z, --end-insert=CHAÎNE marque la fin de région insérée -z, --terminal utilise « termcap » pour l'affichage sur terminal %d grappe, %d grappes, %d fichier, %d fichiers, %d item %d items %d membre %d membres %d membre, %d membres, %d chevauchement %d chevauchements %s (pour l'expression rationnelle « %s »)%s : %d mot%s : %d mots%s : programme d'entrée tué par signal %d %s : programme de sortie tué par signal %d  » , %d item , %d items , regroupement, terminé Sans FICHIER, lecture depuis l'entrée standard. Démarrage de « %sLes arguments obligatoires pour les options longues le sont aussi pour les options courtes. Résumé de la lecture :Lecture en cours %sSignaler toute anomalie à . Tri en coursTri des membresCe programme est un logiciel libre ; consulter les sources pour connaître les droits de copie. Il n'y AUCUNE GARANTIE ; même pas pour COMMERCIALISATION ou ADÉQUATION À UN OBJECTIF PARTICULIER.. Ce programme décrit aussi comment « mdiff » peut être invoqué directement. Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la License Publique Générale GNU, telle que publiée par la Free Software Foundation : soit la version 3 de cette licence, soit (à votre gré) toute version ultérieure. Ce programme est distribué dans l'espoir qu'il vous sera utile, mais SANS AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale Publique GNU pour plus de détails. Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec ce programme ; si ce n’est pas le cas, consultez . Exécutez « %s --help » pour obtenir des renseignements complémentaires. Utilisation : %s [OPTION]... FICHIER1 FICHIER2 Utilisation : %s [OPTION]... FICHIER1 FICHIER2 ou : %s -d [OPTION]... [FICHIER] Utilisation : %s [OPTION]... [FICHIER] Utilisation : %s [OPTION]... [FICHIER]... Sans FICHIER, ou lorsque FICHIER vaut -, lecture depuis l'entrée standard. Résumé du travail :option -t inutilisable, « termcap » n'est pas disponibleoption -z inutilisable, « termcap » non disponibleligne %ld : différentiel contextuel sans en-tête « new »ligne %ld : différentiel contextuel sans en-tête « old »impossible d'accéder à la base de données « termcap »ligne %ld : nom manquant pour les différencesrépertoires non pris en chargeerreur de redirection du fluxéchec d'exécution de %soption %s ignorée (non implémentée)ligne %ld : en-tête de différentiel unifié incorrectligne %ld : différentiel contextuel mal forméligne %ld : différentiel unifié mal formémdiff — Traiter plusieurs fichiers et chercher les séquences similaires, possibilité de produire des listes détaillées de différences et similarités. fichier manquant en argumentsaucun répertoire temporaire trouvéun seul fichier peut servir en entrée standardun seul nom de fichier permisles options -123RSYZ n'ont de sens que s'il y a deux entréessélectionne un terminal par la variable d'environnement TERMtype de terminal « %s » non définitrop de fichiers en argumentsExécutez « %s --help » pour obtenir des renseignements complémentaires. impossible d'ouvrir « %s »unify — Transformer différentiels contextuels en diff. unifiés, ou vice versa. wdiff — Comparer des mots de deux fichiers et afficher les différences. wdiff — Calculer les différences de mots en appelant « mdiff -W ». Ce programme existe surtout pour maintenir l'ancienne syntaxe « wdiff ». fusion de mots pour deux fichiers seulement (jusqu'à maintenant)wdiff-1.2.1/po/cs.po0000644000000000000000000005745112116513225011076 00000000000000# Czech translations for GNU wdiff messages. # Copyright (C) 1994 Free Software Foundation, Inc. # This file is distributed under the same license as the wdiff package. # Lukas Petrlik , 1994. # Vladimir Michl , 1998. # Petr Pisar , 2011, 2012. # # cluster → seskupení # members → členy # msgid "" msgstr "" "Project-Id-Version: wdiff 1.2.0-b1\n" "Report-Msgid-Bugs-To: wdiff-bugs@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-26 14:17+0200\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: src/mdiff.c:375 #, c-format msgid "%s (for regexp `%s')" msgstr "%s (o regulárním výrazu „%s“)" #: src/mdiff.c:890 src/wdiff.c:1473 #, c-format msgid "only one file may be standard input" msgstr "jen jeden soubor může být standardním vstupem" #: src/mdiff.c:905 src/wdiff.c:678 #, c-format msgid "directories not supported" msgstr "práce s adresáři není podporována" #: src/mdiff.c:1048 #, c-format msgid "Reading %s" msgstr "Načítá se %s" #: src/mdiff.c:1172 #, c-format msgid ", %d item\n" msgid_plural ", %d items\n" msgstr[0] ", %d položka\n" msgstr[1] ", %d položky\n" msgstr[2] ", %d položek\n" #: src/mdiff.c:1252 #, c-format msgid "Read summary:" msgstr "Výkaz čtení:" #: src/mdiff.c:1253 #, c-format msgid " %d file," msgid_plural " %d files," msgstr[0] " %d soubor," msgstr[1] " %d soubory," msgstr[2] " %d souborů," #: src/mdiff.c:1254 #, c-format msgid " %d item\n" msgid_plural " %d items\n" msgstr[0] " %d položka\n" msgstr[1] " %d položky\n" msgstr[2] " %d položek\n" #: src/mdiff.c:1647 #, c-format msgid "Sorting" msgstr "Řadí se" #: src/mdiff.c:1664 #, c-format msgid ", clustering" msgstr ", seskupuje se" #: src/mdiff.c:1833 src/mdiff.c:1895 #, c-format msgid ", done\n" msgstr ", dokončeno\n" #: src/mdiff.c:1882 #, c-format msgid "Sorting members" msgstr "Řadí se členy" #: src/mdiff.c:1915 src/mdiff.c:2298 #, c-format msgid "Work summary:" msgstr "Pracovní výkaz:" #: src/mdiff.c:1916 src/mdiff.c:2299 #, c-format msgid " %d cluster," msgid_plural " %d clusters," msgstr[0] " %d seskupení," msgstr[1] " %d seskupení," msgstr[2] " %d seskupení," #: src/mdiff.c:1918 #, c-format msgid " %d member\n" msgid_plural " %d members\n" msgstr[0] " %d člen\n" msgstr[1] " %d členy\n" msgstr[2] " %d členů\n" #: src/mdiff.c:2301 #, c-format msgid " %d member," msgid_plural " %d members," msgstr[0] " %d člen," msgstr[1] " %d členy," msgstr[2] " %d členů," #: src/mdiff.c:2303 #, c-format msgid " %d overlap\n" msgid_plural " %d overlaps\n" msgstr[0] " %d přesah\n" msgstr[1] " %d přesahy\n" msgstr[2] " %d přesahů\n" #: src/mdiff.c:2353 src/wdiff.c:228 #, c-format msgid "select a terminal through the TERM environment variable" msgstr "vyberte terminal pomocí proměnné prostředí TERM" #: src/mdiff.c:2356 src/wdiff.c:231 #, c-format msgid "could not access the termcap data base" msgstr "k databázi termcap nelze přistoupit" #: src/mdiff.c:2358 src/wdiff.c:233 #, c-format msgid "terminal type `%s' is not defined" msgstr "terminál typu „%s“ není definován" #: src/mdiff.c:3709 src/mdiff.c:3725 src/wdiff.c:1167 src/wdiff.c:1183 #, c-format msgid "%s: %d word" msgid_plural "%s: %d words" msgstr[0] "%s: %d slovo" msgstr[1] "%s: %d slova" msgstr[2] "%s: %d slov" # Přívlastek k „%d slov“ #: src/mdiff.c:3713 src/mdiff.c:3729 src/wdiff.c:1171 src/wdiff.c:1187 #, c-format msgid " %d %.0f%% common" msgid_plural " %d %.0f%% common" msgstr[0] " %d %.0f %% společné" msgstr[1] " %d %.0f %% společná" msgstr[2] " %d %.0f %% společných" # Přívlastek k „%d slov“ # deleted je opak k insterted #: src/mdiff.c:3716 src/wdiff.c:1174 #, c-format msgid " %d %.0f%% deleted" msgid_plural " %d %.0f%% deleted" msgstr[0] " %d %.0f %% odstraněno" msgstr[1] " %d %.0f %% odstraněna" msgstr[2] " %d %.0f %% odstraněno" # Přívlastek k „%d slov“ #: src/mdiff.c:3719 src/mdiff.c:3735 src/wdiff.c:1177 src/wdiff.c:1193 #, c-format msgid " %d %.0f%% changed" msgid_plural " %d %.0f%% changed" msgstr[0] " %d %.0f %% změněno" msgstr[1] " %d %.0f %% změněna" msgstr[2] " %d %.0f %% změněno" # Přívlastek k „%d slov“ #: src/mdiff.c:3732 src/wdiff.c:1190 #, c-format msgid " %d %.0f%% inserted" msgid_plural " %d %.0f%% inserted" msgstr[0] " %d %.0f %% vloženo" msgstr[1] " %d %.0f %% vložena" msgstr[2] " %d %.0f %% vloženo" #: src/mdiff.c:3763 src/wdiff.c:1233 src/wdiff2.c:172 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Více informací získáte příkazem „%s --help“.\n" #: src/mdiff.c:3768 msgid "" "mdiff - Studies multiple files and searches for similar sequences, it then\n" "produces possibly detailed lists of differences and similarities.\n" msgstr "" "mdiff – Prostuduje více souborů a vyhledá v nich podobnosti, následně je\n" "možné vypsat podrobný seznam rozdílů a podobností.\n" #: src/mdiff.c:3773 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Použití: %s [PŘEPÍNAČ]… [SOUBOR]…\n" #: src/mdiff.c:3777 msgid "" "\n" "Operation modes:\n" msgstr "" "\n" "Operační režimy:\n" #: src/mdiff.c:3778 msgid " -h (ignored)\n" msgstr " -h (ignoruje se)\n" #: src/mdiff.c:3779 msgid " -v, --verbose report a few statistics on stderr\n" msgstr "" " -v, --verbose vypíše jednoduchou statistiku na chybový výstup\n" #: src/mdiff.c:3780 src/unify.c:295 msgid " --help display this help then exit\n" msgstr " --help zobrazí tuto nápovědu a skončí\n" #: src/mdiff.c:3781 src/unify.c:296 msgid " --version display program version then exit\n" msgstr " --version zobrazí verzi programu a skončí\n" #: src/mdiff.c:3783 msgid "" "\n" "Formatting output:\n" msgstr "" "\n" "Formátování výstupu:\n" #: src/mdiff.c:3784 msgid " -T, --initial-tab produce TAB instead of initial space\n" msgstr " -T, --initial-tab místo úvodní mezery použije tabulátor\n" #: src/mdiff.c:3785 msgid " -l, --paginate paginate output through `pr'\n" msgstr " -l, --paginate výstup stránkuje pomocí „pr“\n" #: src/mdiff.c:3786 msgid " -S, --string[=STRING] take note of another user STRING\n" msgstr " -S, --string[=ŘETĚZEC] vezme v úvahu další uživatelský ŘETĚZEC\n" #: src/mdiff.c:3787 msgid "" " -V, --show-links give file and line references in annotations\n" msgstr " -V, --show-links v popiscích uvede soubor a řádek\n" #: src/mdiff.c:3788 msgid " -t, --expand-tabs expand tabs to spaces in the output\n" msgstr " -t, --expand-tabs na výstupu expanduje tabulátory na mezery\n" #: src/mdiff.c:3791 msgid "" "\n" "Debugging:\n" msgstr "" "\n" "Ladění:\n" #: src/mdiff.c:3792 msgid " -0, --debugging output many details about what is going on\n" msgstr " -0, --debugging vypisuje mnoho podrobností o tom, co se děje\n" #: src/mdiff.c:3795 msgid "" "\n" "Word mode options:\n" msgstr "" "\n" "Přepínače režimu slov:\n" #: src/mdiff.c:3796 src/wdiff.c:1251 src/wdiff2.c:190 msgid " -1, --no-deleted inhibit output of deleted words\n" msgstr " -1, --no-deleted potlačí výstup odstraněných slov\n" #: src/mdiff.c:3797 src/wdiff.c:1252 src/wdiff2.c:191 msgid " -2, --no-inserted inhibit output of inserted words\n" msgstr " -2, --no-inserted potlačí výstup vložených slov\n" #: src/mdiff.c:3798 src/wdiff.c:1253 src/wdiff2.c:192 msgid " -3, --no-common inhibit output of common words\n" msgstr " -3, --no-common potlačí výstup společných slov\n" #: src/mdiff.c:3799 msgid " -A, --auto-pager automatically calls a pager\n" msgstr " -A, --auto-pager automaticky zavolá stránkovač\n" #: src/mdiff.c:3800 msgid " -k, --less-mode variation of printer mode for \"less\"\n" msgstr " -k, --less-mode variace na tiskový režim „less“\n" #: src/mdiff.c:3801 msgid " -m, --avoid-wraps do not extend fields through newlines\n" msgstr " -m, --avoid-wraps položky nerozšiřuje pomocí nových řádků\n" #: src/mdiff.c:3802 msgid " -o, --printer overstrike as for printers\n" msgstr " -o, --printer přeškrtne jako pro tiskárny\n" #: src/mdiff.c:3803 msgid " -z, --terminal use termcap as for terminal displays\n" msgstr "" " -z, --terminal použije termcap jako pro displeje terminálu\n" #: src/mdiff.c:3804 msgid " -O, --item-regexp=REGEXP compare items as defined by REGEXP\n" msgstr "" " -O, --item-regexp=REGULÁRNÍ_VÝRAZ\n" " porovná položky určené REGULÁRNÍM_VÝRAZEM\n" #: src/mdiff.c:3805 msgid " -W, --word-mode compare words instead of lines\n" msgstr " -W, --word-mode porovná slova namísto řádků\n" #: src/mdiff.c:3990 msgid "With no FILE, or when FILE is -, read standard input.\n" msgstr "Bez SOUBORU nebo je-li SOUBOR -, čte ze standardního vstupu.\n" #: src/mdiff.c:3992 src/unify.c:300 src/wdiff.c:1269 src/wdiff2.c:210 msgid "Report bugs to .\n" msgstr "" "Chyby v programu oznamujte na adrese (anglicky),\n" "připomínky k překladu zasílejte na \n" "(česky).\n" #: src/mdiff.c:4004 #, c-format msgid "ignoring option %s (not implemented)" msgstr "přepínač %s se ignoruje (není implementován)" #: src/mdiff.c:4300 #, c-format msgid "cannot use -z, termcap not available" msgstr "přepínač -z nelze použít, termcap není k dispozici" #: src/mdiff.c:4339 #, c-format msgid "word merging for two files only (so far)" msgstr "spojování slov jen pro dva soubory (zatím)" #: src/mdiff.c:4355 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc.\n" #: src/mdiff.c:4358 src/unify.c:407 src/wdiff.c:1395 src/wdiff2.c:131 msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Toto je volné programové vybavení; podmínky pro kopírování a rozšiřování\n" "naleznete ve zdrojových textech. Toto programové vybavení je zcela BEZ " "ZÁRUKY,\n" "a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NĚJAKÝ KONKRÉTNÍ ÚČEL.\n" #: src/mdiff.c:4361 src/wdiff.c:1398 src/wdiff2.c:134 msgid "" "\n" "Written by Franc,ois Pinard .\n" msgstr "" "\n" "Napsal François Pinard .\n" #: src/mdiff.c:4396 #, c-format msgid "options -123RSYZ meaningful only when two inputs" msgstr "přepínače -123RSYZ mají smysl jen při dvou vstupech" #: src/pipes.c:47 #, c-format msgid "error redirecting stream" msgstr "chyba při přesměrování proudu" #: src/pipes.c:51 #, c-format msgid "failed to execute %s" msgstr "selhalo spuštění %s" #: src/unify.c:145 #, c-format msgid "could not find a name for the diff at line %ld" msgstr "na řádku %ld nebylo možné najít jméno pro diff" #: src/unify.c:274 #, c-format msgid "try `%s --help' for more information\n" msgstr "více informací získáte příkazem „%s --help“\n" #: src/unify.c:279 msgid "unify - Transforms context diffs into unidiffs, or vice-versa.\n" msgstr "unify – Převádí kontextový formát diffu na sjednocený a obráceně.\n" #: src/unify.c:283 #, c-format msgid "Usage: %s [OPTION]... [FILE]\n" msgstr "Použití: %s [PŘEPÍNAČ]… [SOUBOR]\n" #: src/unify.c:286 msgid " -c, --context-diffs force output to context diffs\n" msgstr " -c, --context-diffs vynutí výstup v kontextovém formátu\n" #: src/unify.c:287 msgid " -e, --echo-comments echo comments to standard error\n" msgstr " -e, --echo-comments komentáře vypisuje na chybový výstup\n" #: src/unify.c:288 msgid " -o, --old-diffs output old-style diffs, no matter what\n" msgstr "" " -o, --old-diffs výstup je ve starém formátu, v každém případě\n" #: src/unify.c:289 msgid " -p, --patch-format generate patch format\n" msgstr " -p, --patch-format výstup ve formátu patch\n" #: src/unify.c:290 msgid " -P same as -p\n" msgstr " -P stejné jako -p\n" #: src/unify.c:291 msgid " -s, --strip-comments strip comment lines\n" msgstr " -s, --strip-comments odstraní řádky s komentáři\n" #: src/unify.c:292 msgid " -u, --unidiffs force output to unidiffs\n" msgstr " -u, --unidiffs vynutí výstup ve formátu sjednoceného diffu\n" #: src/unify.c:293 msgid " -U same as -p and -u\n" msgstr " -U stejné jako -p a -u\n" #: src/unify.c:294 msgid " -=, --use-equals replace spaces by equal signs in unidiffs\n" msgstr "" " -=, --use-equals ve sjednoceném formátu nahradí mezery rovnítky\n" #: src/unify.c:298 msgid "If FILE is not specified, read standard input.\n" msgstr "Není-li SOUBOR zadán, čte ze standardního vstupu.\n" #: src/unify.c:389 #, c-format msgid "unable to open `%s'" msgstr "soubor „%s“ nelze otevřít" #: src/unify.c:395 #, c-format msgid "only one filename allowed" msgstr "je povoleno pouze jedno jméno souboru" #: src/unify.c:404 msgid "" "\n" "Copyright (C) 1994, 1997 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1994, 1997 Free Software Foundation, Inc.\n" #: src/unify.c:410 msgid "" "\n" "Written by Wayne Davison .\n" msgstr "" "\n" "Napsal Wayne Davison .\n" #: src/unify.c:548 #, c-format msgid "invalid unified diff header at line %ld" msgstr "chybná hlavička sjednoceného diffu na řádku %ld" #: src/unify.c:590 #, c-format msgid "malformed unified diff at line %ld" msgstr "poškozený sjednocený diff na řádku %ld" #: src/unify.c:620 #, c-format msgid "context diff missing `old' header at line %ld" msgstr "na řádku %ld kontextového diffu chybí hlavička starého typu" #: src/unify.c:664 src/unify.c:683 src/unify.c:753 src/unify.c:771 #, c-format msgid "malformed context diff at line %ld" msgstr "poškozený kontextový diff na řádku %ld" #: src/unify.c:718 #, c-format msgid "context diff missing `new' header at line %ld" msgstr "na řádku %ld kontextového diffu chybí hlavička nového typu" #: src/wdiff.c:582 src/wdiff.c:701 #, c-format msgid "no suitable temporary directory exists" msgstr "neexistuje žádný vhodný dočasný adresář" #: src/wdiff.c:1040 #, c-format msgid "%s: input program killed by signal %d\n" msgstr "%s: vstupní program zabit signálem %d\n" #: src/wdiff.c:1145 #, c-format msgid "%s: output program killed by signal %d\n" msgstr "%s: výstupní program zabit signálem %d\n" #: src/wdiff.c:1210 src/wdiff2.c:109 msgid "" "This program is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see .\n" msgstr "" "Tento program je volné programové vybavení; můžete jej šířit a/nebo " "upravovat\n" "podle ustanovení Obecné veřejné licence GNU, vydávané Free Software\n" "Foundation, a to buď verze 3 této licence, nebo (podle vašeho uvážení)\n" "kterékoli pozdější verze.\n" "\n" "Tento program je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLI\n" "ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO\n" "NĚJAKÝ KONKRÉTNÍ ÚČEL. Další podrobnosti naleznete v Obecné veřejné licenci " "GNU.\n" "\n" "Spolu s tímto programem byste měli obdržet kopii Obecné veřejné licence " "GNU.\n" "Pokud se tak nestalo, vizte .\n" #: src/wdiff.c:1238 msgid "wdiff - Compares words in two files and report differences.\n" msgstr "wdiff – Porovná slova ve dvou souborech a nahlásí rozdíly.\n" #: src/wdiff.c:1242 #, c-format msgid "" "Usage: %s [OPTION]... FILE1 FILE2\n" " or: %s -d [OPTION]... [FILE]\n" msgstr "" "Použití: %s [PŘEPÍNAČE]… SOUBOR1 SOUBOR2\n" " nebo: %s -d [PŘEPÍNAČE]… [SOUBOR]\n" #: src/wdiff.c:1247 src/wdiff2.c:186 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Povinné argumenty dlouhých přepínačů jsou též povinné pro krátké přepínače.\n" #: src/wdiff.c:1250 src/wdiff2.c:189 msgid " -C, --copyright display copyright then exit\n" msgstr " -C, --copyright zobrazí autorská práva a skončí\n" #: src/wdiff.c:1254 src/wdiff2.c:193 msgid " -a, --auto-pager automatically calls a pager\n" msgstr " -a, --auto-pager automaticky zavolá stránkovač\n" #: src/wdiff.c:1255 msgid " -d, --diff-input use single unified diff as input\n" msgstr "" " -d, --diff-input jako vstup použije jeden sjednocený diff\n" #: src/wdiff.c:1256 src/wdiff2.c:194 msgid " -h, --help display this help then exit\n" msgstr " -h, --help zobrazí tuto nápovědu a skončí\n" #: src/wdiff.c:1257 src/wdiff2.c:195 msgid " -i, --ignore-case fold character case while comparing\n" msgstr " -i, --ignore-case při porovnávání přehlíží velikost znaků\n" #: src/wdiff.c:1258 src/wdiff2.c:196 msgid " -l, --less-mode variation of printer mode for \"less\"\n" msgstr " -l, --less-mode variace na tiskový režim „less“\n" #: src/wdiff.c:1259 src/wdiff2.c:197 msgid " -n, --avoid-wraps do not extend fields through newlines\n" msgstr " -n, --avoid-wraps položky nerozšiřuje pomocí nových řádků\n" #: src/wdiff.c:1260 src/wdiff2.c:198 msgid " -p, --printer overstrike as for printers\n" msgstr " -p, --printer přeškrtne jako pro tiskárny\n" #: src/wdiff.c:1261 src/wdiff2.c:200 msgid "" " -s, --statistics say how many words deleted, inserted etc.\n" msgstr "" " -s, --statistics sdělí, kolik slov bylo odstraněno, vloženo " "atd.\n" #: src/wdiff.c:1262 src/wdiff2.c:201 msgid " -t, --terminal use termcap as for terminal displays\n" msgstr " -t, --terminal použije termcap jako pro terminál\n" #: src/wdiff.c:1263 src/wdiff2.c:202 msgid " -v, --version display program version then exit\n" msgstr " -v, --version zobrazí verzi programu a skončí\n" #: src/wdiff.c:1264 src/wdiff2.c:203 msgid "" " -w, --start-delete=STRING string to mark beginning of delete region\n" msgstr "" " -w, --start-delete=ŘETĚZEC začátek odstraněné oblasti vyznačí ŘETĚZCEM\n" #: src/wdiff.c:1265 src/wdiff2.c:204 msgid " -x, --end-delete=STRING string to mark end of delete region\n" msgstr "" " -x, --end-delete=ŘETĚZEC konec odstraněné oblasti vyznačí ŘETĚZCEM\n" #: src/wdiff.c:1266 src/wdiff2.c:205 msgid "" " -y, --start-insert=STRING string to mark beginning of insert region\n" msgstr "" " -y, --start-insert=ŘETĚZEC začátek vložené oblasti vyznačí ŘETĚZCEM\n" #: src/wdiff.c:1267 src/wdiff2.c:206 msgid " -z, --end-insert=STRING string to mark end of insert region\n" msgstr " -z, --end-insert=ŘETĚZEC konec vložené oblasti vyznačí ŘETĚZCEM\n" #: src/wdiff.c:1386 #, c-format msgid "cannot use -t, termcap not available" msgstr "přepínač -t nelze použít, termcap není k dispozici" #: src/wdiff.c:1391 msgid "" "\n" "Copyright (C) 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software\n" "Foundation, Inc.\n" #: src/wdiff.c:1436 src/wdiff.c:1454 #, c-format msgid "too many file arguments" msgstr "příliš mnoho argumentů souboru" #: src/wdiff.c:1449 src/wdiff2.c:320 #, c-format msgid "missing file arguments" msgstr "argumenty souboru nebyly zadány" #: src/wdiff2.c:128 msgid "" "\n" "Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.\n" msgstr "" "\n" "Copyright © 1997, 1998, 1999 Free Software Foundation, Inc.\n" #: src/wdiff2.c:177 msgid "" "wdiff - Compute word differences by internally launching `mdiff -W'.\n" "This program exists mainly to support the now oldish `wdiff' syntax.\n" msgstr "" "wdiff – Vypočte rozdíly ve slovech pomocí spuštění „mdiff -W“.\n" "Tento program existuje především proto, aby podporoval nyní zastaralou\n" "syntaxi nástroje „wdiff“.\n" #: src/wdiff2.c:182 #, c-format msgid "Usage: %s [OPTION]... FILE1 FILE2\n" msgstr "Použití: %s [PŘEPÍNAČE]… SOUBOR1 SOUBOR2\n" #: src/wdiff2.c:199 msgid " -q, --quiet inhibit the `mdiff' call message\n" msgstr " -q, --quiet potlačí hlášení o zavolání mdiff\n" #: src/wdiff2.c:208 msgid "This program also tells how `mdiff' could have been called directly.\n" msgstr "Tento program rovněž říká, jak by bylo možné zavolat „mdiff“ přímo.\n" #. TRANSLATORS: This and the next string are one message. #: src/wdiff2.c:332 #, c-format msgid "Launching `%s" msgstr "Spouští se „%s" #: src/wdiff2.c:335 #, c-format msgid "'\n" msgstr "“\n" #~ msgid "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgstr "" #~ "\n" #~ "Copyright (C) 1997 Free Software Foundation, Inc.\n" #~ msgid "" #~ "\n" #~ " -c, --context-diffs force output to context diffs\n" #~ " -e, --echo-comments echo comments to standard error\n" #~ " -o, --old-diffs output old-style diffs, no matter what\n" #~ " -p, --patch-format generate patch format\n" #~ " -P same as -p\n" #~ " -s, --strip-comments strip comment lines\n" #~ " -u, --unidiffs force output to unidiffs\n" #~ " -U same as -p and -u\n" #~ " -=, --use-equals replace spaces by equal signs in unidiffs\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ "\n" #~ "If FILE is not specified, read standard input.\n" #~ msgstr "" #~ "\n" #~ " -c, --context-diffs výstup do kontextového diffu\n" #~ " -e, --echo-comments opisuje komentáře na standardní chybový výstup\n" #~ " -o, --old-diffs výstup ve starém stylu diffu, nezáleží co\n" #~ " -p, --patch-format výstup ve formátu pro patch\n" #~ " -P jako -p\n" #~ " -s, --strip-comments odstraňuje komentáře\n" #~ " -u, --unidiffs výstup ve formátu unifikovaného diffu\n" #~ " -U jako -p a -u\n" #~ " -=, --use-equals nahradí mezery rovnítky v unifikovaném diffu\n" #~ " --help vypíše tuto nápovědu a skončí\n" #~ " --version vypíše označení verze a skončí\n" #~ "\n" #~ "Jestliže SOUBOR není zadán, bude čten standardní vstup.\n" #~ msgid "" #~ "\n" #~ "Report bugs to .\n" #~ msgstr "" #~ "\n" #~ " Chyby v programu oznamujte na adrese " #~ "(pouze\n" #~ "anglicky), připomínky k překladu zasílejte na (česky).\n" #~ msgid "Specify a terminal type with `setenv TERM '." #~ msgstr "Určete typ terminálu nastavením proměnné prostředí TERM." wdiff-1.2.1/po/ChangeLog0000644000000000000000000000364511744500575011711 000000000000002010-05-25 gettextize * Makefile.in.in: Upgrade to gettext-0.18. * Rules-quot: Upgrade to gettext-0.18. 2010-01-21 gettextize * Makefile.in.in: Upgrade to gettext-0.17. 2007-07-10 gettextize * Makefile.in.in: New file, from gettext-0.16.1. * Rules-quot: New file, from gettext-0.16.1. * boldquot.sed: New file, from gettext-0.16.1. * en@boldquot.header: New file, from gettext-0.16.1. * en@quot.header: New file, from gettext-0.16.1. * insert-header.sin: New file, from gettext-0.16.1. * quot.sed: New file, from gettext-0.16.1. * remove-potcdate.sin: New file, from gettext-0.16.1. * POTFILES.in: New file. 1999-03-12 Franois Pinard * cs.po: Updated. 1998-12-07 Franois Pinard * ru.po: New file. 1998-05-01 Franois Pinard * cs.po: Updated. 1997-05-04 Franois Pinard * sv.po: Updated. 1997-04-28 Franois Pinard * es.po: Updated. 1997-04-16 Franois Pinard * sv.po: Updated. 1997-02-14 Franois Pinard * nl.po: Updated. 1997-02-12 Franois Pinard * all: Updated from PO file registry, also some new files. * it.po: Withdrawn, as proper legalese is missing. 1995-01-24 Franois Pinard * it.tt: New file, for Italian. 1994-12-07 Franois Pinard * cz.tt: New file, for Czech. 1994-12-03 Franois Pinard * Makefile.in (realclean): Delete stamp-cod. 1994-12-02 Franois Pinard * de.tt: New file, for German. 1994-12-01 Franois Pinard * LOCALE, libintl.c, libintl.h: New files, from elsewhere. * fr.tt: New file, for French. * Makefile.in: Adjusted. wdiff-1.2.1/man/0000755000000000000000000000000012116513235010333 500000000000000wdiff-1.2.1/man/wdiff.10000644000000000000000000000517512116513234011443 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.13. .TH WDIFF "1" "March 2013" "wdiff 1.2.1" "User Commands" .SH NAME wdiff - display word differences between text files .SH SYNOPSIS .B wdiff [\fIOPTION\fR]... \fIFILE1 FILE2\fR .br .B wdiff \fI-d \fR[\fIOPTION\fR]... [\fIFILE\fR] .SH DESCRIPTION wdiff \- Compares words in two files and report differences. .PP Mandatory arguments to long options are mandatory for short options too. .TP \fB\-C\fR, \fB\-\-copyright\fR display copyright then exit .TP \fB\-1\fR, \fB\-\-no\-deleted\fR inhibit output of deleted words .TP \fB\-2\fR, \fB\-\-no\-inserted\fR inhibit output of inserted words .TP \fB\-3\fR, \fB\-\-no\-common\fR inhibit output of common words .TP \fB\-a\fR, \fB\-\-auto\-pager\fR automatically calls a pager .TP \fB\-d\fR, \fB\-\-diff\-input\fR use single unified diff as input .TP \fB\-h\fR, \fB\-\-help\fR display this help then exit .TP \fB\-i\fR, \fB\-\-ignore\-case\fR fold character case while comparing .TP \fB\-l\fR, \fB\-\-less\-mode\fR variation of printer mode for "less" .TP \fB\-n\fR, \fB\-\-avoid\-wraps\fR do not extend fields through newlines .TP \fB\-p\fR, \fB\-\-printer\fR overstrike as for printers .TP \fB\-s\fR, \fB\-\-statistics\fR say how many words deleted, inserted etc. .TP \fB\-t\fR, \fB\-\-terminal\fR use termcap as for terminal displays .TP \fB\-v\fR, \fB\-\-version\fR display program version then exit .TP \fB\-w\fR, \fB\-\-start\-delete\fR=\fISTRING\fR string to mark beginning of delete region .TP \fB\-x\fR, \fB\-\-end\-delete\fR=\fISTRING\fR string to mark end of delete region .TP \fB\-y\fR, \fB\-\-start\-insert\fR=\fISTRING\fR string to mark beginning of insert region .TP \fB\-z\fR, \fB\-\-end\-insert\fR=\fISTRING\fR string to mark end of insert region .SH COMPATIBILITY Some options that used to provide some unique functionality are no longer recommended, but still recognized for the sake of backwards compatibility. .TP \fB\-K\fR, \fB\-\-no\-init\-term\fR Now synonymous to \fI\-\-terminal\fR, which never initializes the terminal. .SH AUTHOR Written by Franc,ois Pinard . .SH "REPORTING BUGS" Report bugs to . .SH COPYRIGHT Copyright \(co 1992, 1997, 1998, 1999, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" The full documentation for .B wdiff is maintained as a Texinfo manual. If the .B info and .B wdiff programs are properly installed at your site, the command .IP .B info wdiff .PP should give you access to the complete manual. wdiff-1.2.1/man/Makefile.am0000644000000000000000000000254312116363376012324 00000000000000## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. man_MANS = wdiff.1 $(EXPERIMENTAL_MANS) EXTRA_MANS = mdiff.1 unify.1 wdiff2.1 EXTRA_DIST = mdiff.1 unify.1 wdiff.1 wdiff2.1 wdiff.h2m # The man pages depend on the --help strings and the version number. common_mandeps = $(top_srcdir)/configure.ac # We want help2man to access the built binaries via PATH path_help2man=PATH="../src$(PATH_SEPARATOR)$$PATH" $(HELP2MAN) # Depend on the source, not the binary; we don't need to regenerate the # binary when any source file changes, only the main one. # Use -o so that the `missing' program can infer the output file. mdiff.1: $(top_srcdir)/src/mdiff.c $(common_mandeps) test ../src/mdiff -nt $< || $(MAKE) -C ../src mdiff $(path_help2man) mdiff -o $@ unify.1: $(top_srcdir)/src/unify.c $(common_mandeps) test ../src/unify -nt $< || $(MAKE) -C ../src unify $(path_help2man) unify -o $@ wdiff.1: $(top_srcdir)/src/wdiff.c wdiff.h2m $(common_mandeps) test ../src/wdiff -nt $< || $(MAKE) -C ../src wdiff $(path_help2man) -i wdiff.h2m wdiff -o $@ wdiff2.1: $(top_srcdir)/src/wdiff2.c $(common_mandeps) test ../src/wdiff2 -nt $< || $(MAKE) -C ../src wdiff2 $(path_help2man) wdiff2 -o $@ wdiff-1.2.1/man/Makefile.in0000644000000000000000000012075312116513165012332 00000000000000# Makefile.in generated by automake 1.13.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 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 = : build_triplet = @build@ host_triplet = @host@ subdir = man DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/getdelim.m4 \ $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/iswblank.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readlink.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/time_h.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \ $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOM4TE = @AUTOM4TE@ AUTOMAKE = @AUTOMAKE@ AUTOTEST = @AUTOTEST@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ EXPERIMENTAL = @EXPERIMENTAL@ EXPERIMENTAL_MANS = @EXPERIMENTAL_MANS@ EXPERIMENTAL_PROGRAMS = @EXPERIMENTAL_PROGRAMS@ EXPERIMENTAL_TEXI = @EXPERIMENTAL_TEXI@ FLOAT_H = @FLOAT_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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 = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = wdiff.1 $(EXPERIMENTAL_MANS) EXTRA_MANS = mdiff.1 unify.1 wdiff2.1 EXTRA_DIST = mdiff.1 unify.1 wdiff.1 wdiff2.1 wdiff.h2m # The man pages depend on the --help strings and the version number. common_mandeps = $(top_srcdir)/configure.ac # We want help2man to access the built binaries via PATH path_help2man = PATH="../src$(PATH_SEPARATOR)$$PATH" $(HELP2MAN) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu man/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-man \ uninstall-man1 # Depend on the source, not the binary; we don't need to regenerate the # binary when any source file changes, only the main one. # Use -o so that the `missing' program can infer the output file. mdiff.1: $(top_srcdir)/src/mdiff.c $(common_mandeps) test ../src/mdiff -nt $< || $(MAKE) -C ../src mdiff $(path_help2man) mdiff -o $@ unify.1: $(top_srcdir)/src/unify.c $(common_mandeps) test ../src/unify -nt $< || $(MAKE) -C ../src unify $(path_help2man) unify -o $@ wdiff.1: $(top_srcdir)/src/wdiff.c wdiff.h2m $(common_mandeps) test ../src/wdiff -nt $< || $(MAKE) -C ../src wdiff $(path_help2man) -i wdiff.h2m wdiff -o $@ wdiff2.1: $(top_srcdir)/src/wdiff2.c $(common_mandeps) test ../src/wdiff2 -nt $< || $(MAKE) -C ../src wdiff2 $(path_help2man) wdiff2 -o $@ # 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: wdiff-1.2.1/man/wdiff2.10000644000000000000000000000463112116513235011522 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.13. .TH WDIFF "1" "March 2013" "wdiff 1.2.1" "User Commands" .SH NAME wdiff \- manual page for wdiff 1.2.1 .SH SYNOPSIS .B wdiff2 [\fIOPTION\fR]... \fIFILE1 FILE2\fR .SH DESCRIPTION wdiff \- Compute word differences by internally launching `mdiff \fB\-W\fR'. This program exists mainly to support the now oldish `wdiff' syntax. .PP Mandatory arguments to long options are mandatory for short options too. .TP \fB\-C\fR, \fB\-\-copyright\fR display copyright then exit .TP \fB\-1\fR, \fB\-\-no\-deleted\fR inhibit output of deleted words .TP \fB\-2\fR, \fB\-\-no\-inserted\fR inhibit output of inserted words .TP \fB\-3\fR, \fB\-\-no\-common\fR inhibit output of common words .TP \fB\-a\fR, \fB\-\-auto\-pager\fR automatically calls a pager .TP \fB\-h\fR, \fB\-\-help\fR display this help then exit .TP \fB\-i\fR, \fB\-\-ignore\-case\fR fold character case while comparing .TP \fB\-l\fR, \fB\-\-less\-mode\fR variation of printer mode for "less" .TP \fB\-n\fR, \fB\-\-avoid\-wraps\fR do not extend fields through newlines .TP \fB\-p\fR, \fB\-\-printer\fR overstrike as for printers .TP \fB\-q\fR, \fB\-\-quiet\fR inhibit the `mdiff' call message .TP \fB\-s\fR, \fB\-\-statistics\fR say how many words deleted, inserted etc. .TP \fB\-t\fR, \fB\-\-terminal\fR use termcap as for terminal displays .TP \fB\-v\fR, \fB\-\-version\fR display program version then exit .TP \fB\-w\fR, \fB\-\-start\-delete\fR=\fISTRING\fR string to mark beginning of delete region .TP \fB\-x\fR, \fB\-\-end\-delete\fR=\fISTRING\fR string to mark end of delete region .TP \fB\-y\fR, \fB\-\-start\-insert\fR=\fISTRING\fR string to mark beginning of insert region .TP \fB\-z\fR, \fB\-\-end\-insert\fR=\fISTRING\fR string to mark end of insert region .PP This program also tells how `mdiff' could have been called directly. .SH AUTHOR Written by Franc,ois Pinard . .SH "REPORTING BUGS" Report bugs to . .SH COPYRIGHT Copyright \(co 1997, 1998, 1999 Free Software Foundation, Inc. .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" The full documentation for .B wdiff is maintained as a Texinfo manual. If the .B info and .B wdiff programs are properly installed at your site, the command .IP .B info wdiff .PP should give you access to the complete manual. wdiff-1.2.1/man/unify.10000644000000000000000000000310112116513234011461 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.13. .TH UNIFY "1" "March 2013" "unify 1.2.1" "User Commands" .SH NAME unify \- manual page for unify 1.2.1 .SH SYNOPSIS .B unify [\fIOPTION\fR]... [\fIFILE\fR] .SH DESCRIPTION unify \- Transforms context diffs into unidiffs, or vice\-versa. .TP \fB\-c\fR, \fB\-\-context\-diffs\fR force output to context diffs .TP \fB\-e\fR, \fB\-\-echo\-comments\fR echo comments to standard error .TP \fB\-o\fR, \fB\-\-old\-diffs\fR output old\-style diffs, no matter what .TP \fB\-p\fR, \fB\-\-patch\-format\fR generate patch format .TP \fB\-P\fR same as \fB\-p\fR .TP \fB\-s\fR, \fB\-\-strip\-comments\fR strip comment lines .TP \fB\-u\fR, \fB\-\-unidiffs\fR force output to unidiffs .TP \fB\-U\fR same as \fB\-p\fR and \fB\-u\fR .TP \fB\-=\fR, \fB\-\-use\-equals\fR replace spaces by equal signs in unidiffs .TP \fB\-\-help\fR display this help then exit .TP \fB\-\-version\fR display program version then exit .PP If FILE is not specified, read standard input. .SH AUTHOR Written by Wayne Davison . .SH "REPORTING BUGS" Report bugs to . .SH COPYRIGHT Copyright \(co 1994, 1997 Free Software Foundation, Inc. .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" The full documentation for .B unify is maintained as a Texinfo manual. If the .B info and .B unify programs are properly installed at your site, the command .IP .B info unify .PP should give you access to the complete manual. wdiff-1.2.1/man/wdiff.h2m0000644000000000000000000000052511744500575011775 00000000000000[name] wdiff - display word differences between text files [compatibility] Some options that used to provide some unique functionality are no longer recommended, but still recognized for the sake of backwards compatibility. .TP \fB\-K\fR, \fB\-\-no\-init\-term\fR Now synonymous to \fI\-\-terminal\fR, which never initializes the terminal. wdiff-1.2.1/man/mdiff.10000644000000000000000000000470012116513234011422 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.13. .TH MDIFF "1" "March 2013" "mdiff 1.2.1" "User Commands" .SH NAME mdiff \- manual page for mdiff 1.2.1 .SH SYNOPSIS .B mdiff [\fIOPTION\fR]... [\fIFILE\fR]... .SH DESCRIPTION mdiff \- Studies multiple files and searches for similar sequences, it then produces possibly detailed lists of differences and similarities. .SS "Operation modes:" .TP \fB\-h\fR (ignored) .TP \fB\-v\fR, \fB\-\-verbose\fR report a few statistics on stderr .TP \fB\-\-help\fR display this help then exit .TP \fB\-\-version\fR display program version then exit .SS "Formatting output:" .TP \fB\-T\fR, \fB\-\-initial\-tab\fR produce TAB instead of initial space .TP \fB\-l\fR, \fB\-\-paginate\fR paginate output through `pr' .TP \fB\-S\fR, \fB\-\-string\fR[=\fISTRING\fR] take note of another user STRING .TP \fB\-V\fR, \fB\-\-show\-links\fR give file and line references in annotations .TP \fB\-t\fR, \fB\-\-expand\-tabs\fR expand tabs to spaces in the output .SS "Debugging:" .TP \fB\-0\fR, \fB\-\-debugging\fR output many details about what is going on .SS "Word mode options:" .TP \fB\-1\fR, \fB\-\-no\-deleted\fR inhibit output of deleted words .TP \fB\-2\fR, \fB\-\-no\-inserted\fR inhibit output of inserted words .TP \fB\-3\fR, \fB\-\-no\-common\fR inhibit output of common words .TP \fB\-A\fR, \fB\-\-auto\-pager\fR automatically calls a pager .TP \fB\-k\fR, \fB\-\-less\-mode\fR variation of printer mode for "less" .TP \fB\-m\fR, \fB\-\-avoid\-wraps\fR do not extend fields through newlines .TP \fB\-o\fR, \fB\-\-printer\fR overstrike as for printers .TP \fB\-z\fR, \fB\-\-terminal\fR use termcap as for terminal displays .TP \fB\-O\fR, \fB\-\-item\-regexp\fR=\fIREGEXP\fR compare items as defined by REGEXP .TP \fB\-W\fR, \fB\-\-word\-mode\fR compare words instead of lines .PP With no FILE, or when FILE is \-, read standard input. .SH AUTHOR Written by Franc,ois Pinard . .SH "REPORTING BUGS" Report bugs to . .SH COPYRIGHT Copyright \(co 1992, 1997, 1998, 1999, 2010 Free Software Foundation, Inc. .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" The full documentation for .B mdiff is maintained as a Texinfo manual. If the .B info and .B mdiff programs are properly installed at your site, the command .IP .B info mdiff .PP should give you access to the complete manual. wdiff-1.2.1/ABOUT-NLS0000644000000000000000000027215511744500575010754 000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of May 2010. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar as ast az be be@latin bg bn_IN bs ca crh +---------------------------------------------------+ a2ps | [] [] | aegis | | ant-phone | | anubis | | aspell | [] [] | bash | | bfd | | bibshelf | [] | binutils | | bison | | bison-runtime | [] | bluez-pin | [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] [] | cpio | | cppi | | cpplib | [] | cryptsetup | | dfarc | | dialog | [] [] | dico | | diffutils | [] | dink | | doodle | | e2fsprogs | [] | enscript | [] | exif | | fetchmail | [] | findutils | [] | flex | [] | freedink | | gas | | gawk | [] [] | gcal | [] | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gip | [] | gjay | | gliv | [] | glunarclock | [] [] | gnubiff | | gnucash | [] | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | | gold | | gpe-aerial | | gpe-beam | | gpe-bluetooth | | gpe-calendar | | gpe-clock | [] | gpe-conf | | gpe-contacts | | gpe-edit | | gpe-filemanager | | gpe-go | | gpe-login | | gpe-ownerinfo | [] | gpe-package | | gpe-sketchbook | | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] | gpe-today | [] | gpe-todo | | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | [] [] | gsasl | | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] [] [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] [] | gutenprint | | hello | [] | help2man | | hylafax | | idutils | | indent | [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | | iso_639 | [] [] [] [] [] | iso_639_3 | [] | jwhois | | kbd | | keytouch | [] | keytouch-editor | | keytouch-keyboa... | [] | klavaro | [] | latrine | | ld | [] | leafpad | [] [] | libc | [] [] | libexif | () | libextractor | | libgnutls | | libgpewidget | | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | [] | libidn | | lifelines | | liferea | [] [] | lilypond | | linkdr | [] | lordsawar | | lprng | | lynx | [] | m4 | | mailfromd | | mailutils | | make | | man-db | | man-db-manpages | | minicom | | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | | psmisc | | pspp | [] | pwdutils | | radius | [] | recode | [] [] | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] [] | sed | [] [] | sharutils | [] [] | shishi | | skencil | | solfege | | solfege-manual | | soundtracker | | sp | | sysstat | | tar | [] | texinfo | | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] [] | wyslij-po | | xchat | [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +---------------------------------------------------+ af am ar as ast az be be@latin bg bn_IN bs ca crh 6 0 2 3 19 1 11 3 28 3 1 38 5 cs da de el en en_GB en_ZA eo es et eu fa fi +-------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] () | anubis | [] [] [] | aspell | [] [] [] [] [] | bash | [] [] [] [] | bfd | [] [] | bibshelf | [] [] [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] | bombono-dvd | [] [] | buzztard | [] [] [] | cflow | [] [] [] | clisp | [] [] [] [] | coreutils | [] [] [] [] | cpio | [] | cppi | [] | cpplib | [] [] [] | cryptsetup | [] | dfarc | [] [] [] [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] [] | dink | [] [] [] | doodle | [] | e2fsprogs | [] [] [] | enscript | [] [] [] | exif | () [] [] [] | fetchmail | [] [] () [] [] [] | findutils | [] [] [] [] | flex | [] [] [] | freedink | [] [] [] [] | gas | [] | gawk | [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] | gip | [] [] [] [] [] | gjay | [] [] | gliv | [] [] [] [] | glunarclock | [] [] [] | gnubiff | () | gnucash | [] () () () () () | gnuedu | [] [] | gnulib | [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] [] | gpe-aerial | [] [] [] [] [] | gpe-beam | [] [] [] [] [] | gpe-bluetooth | [] [] [] | gpe-calendar | [] [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] [] | gpe-go | [] [] [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] [] [] [] | gpe-sketchbook | [] [] [] [] [] | gpe-su | [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] | gpe-today | [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] () [] [] [] [] | gprof | [] [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] [] | grub | [] [] [] | gsasl | [] [] | gss | [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] | gtick | [] () [] [] | gtkam | [] [] () [] [] | gtkorphan | [] [] [] [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] [] [] [] | hello | [] [] [] [] [] | help2man | [] [] | hylafax | [] [] | idutils | [] [] [] | indent | [] [] [] [] [] [] [] [] | iso_15924 | [] () [] [] [] | iso_3166 | [] [] [] () [] [] [] () [] | iso_3166_2 | () | iso_4217 | [] [] [] () [] [] [] | iso_639 | [] [] [] () [] [] [] | iso_639_3 | | jwhois | [] [] | kbd | [] [] [] [] [] | keytouch | [] [] [] | keytouch-editor | [] [] [] | keytouch-keyboa... | [] [] | klavaro | [] [] [] [] | latrine | [] () [] | ld | [] [] [] | leafpad | [] [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] [] () | libextractor | | libgnutls | [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] () | libgphoto2_port | [] () [] | libgsasl | [] | libiconv | [] [] [] [] [] [] | libidn | [] [] [] [] | lifelines | [] () | liferea | [] [] [] [] [] | lilypond | [] [] [] [] | linkdr | [] [] [] [] | lordsawar | [] | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] [] [] | man-db | | man-db-manpages | | minicom | [] [] [] [] [] | mkisofs | [] | myserver | | nano | [] [] [] [] | opcodes | [] [] [] | parted | [] [] | pies | | popt | [] [] [] [] [] [] | psmisc | [] [] [] [] | pspp | [] | pwdutils | [] | radius | [] | recode | [] [] [] [] [] [] [] | rosegarden | () () () () | rpm | [] [] [] | rush | | sarg | | screem | | scrollkeeper | [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] | shishi | | skencil | [] () [] | solfege | [] [] [] [] | solfege-manual | [] [] | soundtracker | [] [] [] | sp | [] | sysstat | [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] | tin | [] [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] [] | vice | () () | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] [] | wget | [] [] [] [] | wyslij-po | [] | xchat | [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] | +-------------------------------------------------+ cs da de el en en_GB en_ZA eo es et eu fa fi 64 105 117 18 1 8 0 28 89 18 19 0 104 fr ga gl gu he hi hr hu hy id is it ja ka kn +------------------------------------------------+ a2ps | [] [] [] | aegis | [] [] | ant-phone | [] [] | anubis | [] [] [] | aspell | [] [] [] [] | bash | [] [] [] | bfd | [] [] | bibshelf | [] [] [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] | bombono-dvd | | buzztard | [] | cflow | [] [] | clisp | [] | coreutils | [] [] [] [] [] | cpio | [] [] [] | cppi | [] | cpplib | [] [] | cryptsetup | [] [] [] | dfarc | [] [] | dialog | [] [] [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] [] [] | dink | [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | exif | [] [] [] [] [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] | freedink | [] [] | gas | [] [] | gawk | [] [] [] [] () [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] [] | gjay | | gliv | () | glunarclock | [] [] [] | gnubiff | () [] () | gnucash | () () () () [] | gnuedu | [] [] | gnulib | [] [] [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] | gpe-aerial | [] [] | gpe-beam | [] [] [] | gpe-bluetooth | [] [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] [] [] | gpe-edit | [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] | gpe-su | [] [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] | grub | [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] [] | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | [] [] [] [] | gtick | [] [] [] [] | gtkam | [] [] [] [] [] | gtkorphan | [] [] [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] [] [] | hello | [] [] | help2man | [] | hylafax | [] | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | () [] [] | iso_3166 | () [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | () [] [] [] | iso_4217 | () [] [] [] [] | iso_639 | () [] [] [] [] [] [] [] | iso_639_3 | () [] [] | jwhois | [] [] [] [] | kbd | [] [] | keytouch | [] [] [] [] [] | keytouch-editor | [] [] [] [] | keytouch-keyboa... | [] [] [] [] | klavaro | [] [] | latrine | [] [] | ld | [] [] [] | leafpad | [] [] [] [] [] [] () | libc | [] [] [] [] | libexif | | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] [] | lifelines | () | liferea | [] [] [] [] | lilypond | [] | linkdr | [] [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] [] [] | m4 | [] [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | [] [] | man-db-manpages | [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | | nano | [] [] [] [] [] | opcodes | [] [] [] | parted | [] [] [] [] | pies | | popt | [] [] [] [] [] [] [] [] | psmisc | [] [] | pspp | | pwdutils | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rosegarden | () () () () | rpm | [] [] | rush | | sarg | [] | screem | [] [] | scrollkeeper | [] [] [] | sed | [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] | shishi | [] | skencil | [] | solfege | [] [] [] | solfege-manual | [] [] | soundtracker | [] [] | sp | [] () | sysstat | [] [] [] [] | tar | [] [] [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux-ng | [] [] [] [] [] | vice | () () () | vmm | [] | vorbis-tools | [] | wastesedge | () () | wdiff | | wget | [] [] [] [] [] [] [] | wyslij-po | [] [] | xchat | [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | +------------------------------------------------+ fr ga gl gu he hi hr hu hy id is it ja ka kn 121 53 20 4 8 2 5 53 2 120 5 83 66 0 4 ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne +-----------------------------------------------+ a2ps | [] | aegis | | ant-phone | | anubis | [] [] | aspell | [] | bash | | bfd | | bibshelf | [] [] | binutils | | bison | [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] | cpio | | cppi | | cpplib | | cryptsetup | | dfarc | [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] | dink | | doodle | | e2fsprogs | | enscript | | exif | [] | fetchmail | | findutils | | flex | | freedink | [] | gas | | gawk | | gcal | | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] | gettext-tools | [] | gip | [] [] | gjay | | gliv | | glunarclock | [] | gnubiff | | gnucash | () () () () | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | [] | gold | | gpe-aerial | [] | gpe-beam | [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] | gpe-timesheet | [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | | gsasl | | gss | | gst-plugins-bad | [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | | gtick | | gtkam | [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | | hello | [] [] [] | help2man | | hylafax | | idutils | | indent | | iso_15924 | [] [] | iso_3166 | [] [] () [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] | iso_639 | [] [] | iso_639_3 | [] | jwhois | [] | kbd | | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | klavaro | [] | latrine | [] | ld | | leafpad | [] [] [] | libc | [] | libexif | | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | | libidn | | lifelines | | liferea | | lilypond | | linkdr | | lordsawar | | lprng | | lynx | | m4 | | mailfromd | | mailutils | | make | [] | man-db | | man-db-manpages | | minicom | [] | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | [] [] [] | psmisc | | pspp | | pwdutils | | radius | | recode | | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] | sed | | sharutils | | shishi | | skencil | | solfege | [] | solfege-manual | | soundtracker | | sp | | sysstat | [] | tar | [] | texinfo | [] | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] | wyslij-po | | xchat | [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +-----------------------------------------------+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne 20 5 10 1 12 48 4 2 2 4 24 10 19 3 1 nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr +---------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] [] | anubis | [] [] [] | aspell | [] [] [] [] [] | bash | [] [] | bfd | [] | bibshelf | [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] () | buzztard | [] [] | cflow | [] | clisp | [] [] | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cppi | [] | cpplib | [] | cryptsetup | [] | dfarc | [] | dialog | [] [] [] [] | dico | [] | diffutils | [] [] [] [] [] [] | dink | () | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | exif | [] [] [] () [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] [] | freedink | [] [] | gas | | gawk | [] [] [] [] | gcal | | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] | gip | [] [] [] [] [] | gjay | | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] | gnubiff | [] () | gnucash | [] () () () | gnuedu | [] | gnulib | [] [] [] [] | gnunet | | gnunet-gtk | | gnutls | [] [] | gold | | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] [] | gphoto2 | [] [] [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | grub | [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] [] [] | gutenprint | [] [] | hello | [] [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] [] [] [] | iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | iso_3166_2 | [] [] [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] [] [] | keytouch-editor | [] [] [] | keytouch-keyboa... | [] [] [] | klavaro | [] [] | latrine | [] [] | ld | | leafpad | [] [] [] [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] | libgphoto2_port | [] [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] | lifelines | [] [] | liferea | [] [] [] [] [] () () [] | lilypond | [] | linkdr | [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] | make | [] [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | | nano | [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | pies | [] | popt | [] [] [] [] | psmisc | [] [] [] | pspp | [] [] | pwdutils | [] | radius | [] [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () | rpm | [] [] [] | rush | [] [] | sarg | | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] [] [] [] | solfege-manual | [] [] [] | soundtracker | [] | sp | | sysstat | [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] [] | vice | [] | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] | +---------------------------------------------------+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr 135 10 4 7 105 1 29 61 47 91 3 55 47 8 37 sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW +---------------------------------------------------+ a2ps | [] [] [] [] [] | 27 aegis | [] | 9 ant-phone | [] [] [] [] | 9 anubis | [] [] [] [] | 15 aspell | [] [] [] | 20 bash | [] [] | 11 bfd | [] | 6 bibshelf | [] [] [] | 16 binutils | [] [] | 8 bison | [] [] | 12 bison-runtime | [] [] [] [] [] [] | 29 bluez-pin | [] [] [] [] [] [] [] [] | 37 bombono-dvd | [] | 4 buzztard | [] | 7 cflow | [] [] [] | 9 clisp | | 10 coreutils | [] [] [] [] | 22 cpio | [] [] [] [] [] [] | 13 cppi | [] [] | 5 cpplib | [] [] [] [] [] [] | 13 cryptsetup | [] [] | 7 dfarc | [] | 9 dialog | [] [] [] [] [] [] [] | 30 dico | [] | 2 diffutils | [] [] [] [] [] [] | 30 dink | | 4 doodle | [] [] | 7 e2fsprogs | [] [] [] | 11 enscript | [] [] [] [] | 17 exif | [] [] [] | 16 fetchmail | [] [] [] | 17 findutils | [] [] [] [] [] | 20 flex | [] [] [] [] | 15 freedink | [] | 10 gas | [] | 4 gawk | [] [] [] [] | 18 gcal | [] [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] [] | 34 gettext-runtime | [] [] [] [] [] [] [] | 30 gettext-tools | [] [] [] [] [] [] | 22 gip | [] [] [] [] | 22 gjay | [] | 3 gliv | [] [] [] | 14 glunarclock | [] [] [] [] [] | 19 gnubiff | [] [] | 4 gnucash | () [] () () | 9 gnuedu | [] [] | 7 gnulib | [] [] [] [] | 16 gnunet | [] | 1 gnunet-gtk | [] [] [] | 5 gnutls | [] [] [] | 10 gold | [] | 4 gpe-aerial | [] [] [] | 18 gpe-beam | [] [] [] | 19 gpe-bluetooth | [] [] [] | 13 gpe-calendar | [] [] [] [] | 12 gpe-clock | [] [] [] [] [] | 28 gpe-conf | [] [] [] [] | 20 gpe-contacts | [] [] [] | 17 gpe-edit | [] [] [] | 12 gpe-filemanager | [] [] [] [] | 16 gpe-go | [] [] [] [] [] | 25 gpe-login | [] [] [] | 11 gpe-ownerinfo | [] [] [] [] [] | 25 gpe-package | [] [] [] | 13 gpe-sketchbook | [] [] [] | 20 gpe-su | [] [] [] [] [] | 30 gpe-taskmanager | [] [] [] [] [] | 29 gpe-timesheet | [] [] [] [] [] | 25 gpe-today | [] [] [] [] [] [] | 30 gpe-todo | [] [] [] [] | 17 gphoto2 | [] [] [] [] [] | 24 gprof | [] [] [] | 15 gpsdrive | [] [] [] | 11 gramadoir | [] [] [] | 11 grep | [] [] [] | 10 grub | [] [] [] | 14 gsasl | [] [] [] [] | 14 gss | [] [] [] | 11 gst-plugins-bad | [] [] [] [] | 22 gst-plugins-base | [] [] [] [] [] | 24 gst-plugins-good | [] [] [] [] [] | 25 gst-plugins-ugly | [] [] [] [] [] | 29 gstreamer | [] [] [] [] | 22 gtick | [] [] [] | 13 gtkam | [] [] [] | 20 gtkorphan | [] [] [] | 14 gtkspell | [] [] [] [] [] [] [] [] [] | 45 gutenprint | [] | 10 hello | [] [] [] [] [] [] | 21 help2man | [] [] | 7 hylafax | [] | 5 idutils | [] [] [] [] | 17 indent | [] [] [] [] [] [] | 30 iso_15924 | () [] () [] [] | 16 iso_3166 | [] [] () [] [] () [] [] [] () | 53 iso_3166_2 | () [] () [] | 9 iso_4217 | [] () [] [] () [] [] | 26 iso_639 | [] [] [] () [] () [] [] [] [] | 38 iso_639_3 | [] () | 8 jwhois | [] [] [] [] [] | 16 kbd | [] [] [] [] [] | 15 keytouch | [] [] [] | 16 keytouch-editor | [] [] [] | 14 keytouch-keyboa... | [] [] [] | 14 klavaro | [] | 11 latrine | [] [] [] | 10 ld | [] [] [] [] | 11 leafpad | [] [] [] [] [] [] | 33 libc | [] [] [] [] [] | 21 libexif | [] () | 6 libextractor | [] | 1 libgnutls | [] [] [] | 9 libgpewidget | [] [] [] | 14 libgpg-error | [] [] [] | 9 libgphoto2 | [] [] | 8 libgphoto2_port | [] [] [] [] | 13 libgsasl | [] [] [] | 13 libiconv | [] [] [] [] | 21 libidn | () [] [] | 11 lifelines | [] | 4 liferea | [] [] [] | 21 lilypond | [] | 7 linkdr | [] [] [] [] [] | 17 lordsawar | | 1 lprng | [] | 3 lynx | [] [] [] [] | 17 m4 | [] [] [] [] | 19 mailfromd | [] [] | 3 mailutils | [] | 5 make | [] [] [] [] | 21 man-db | [] [] [] | 8 man-db-manpages | | 4 minicom | [] [] | 16 mkisofs | [] [] | 9 myserver | | 0 nano | [] [] [] [] | 21 opcodes | [] [] [] | 11 parted | [] [] [] [] [] | 15 pies | [] [] | 3 popt | [] [] [] [] [] [] | 27 psmisc | [] [] | 11 pspp | | 4 pwdutils | [] [] | 6 radius | [] [] | 9 recode | [] [] [] [] | 28 rosegarden | () | 0 rpm | [] [] [] | 11 rush | [] [] | 4 sarg | | 1 screem | [] | 3 scrollkeeper | [] [] [] [] [] | 27 sed | [] [] [] [] [] | 30 sharutils | [] [] [] [] [] | 22 shishi | [] | 3 skencil | [] [] | 7 solfege | [] [] [] [] | 16 solfege-manual | [] | 8 soundtracker | [] [] [] | 9 sp | [] | 3 sysstat | [] [] | 15 tar | [] [] [] [] [] [] | 23 texinfo | [] [] [] [] | 16 tin | | 4 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux-ng | [] [] [] [] | 20 vice | () () | 1 vmm | [] | 4 vorbis-tools | [] | 6 wastesedge | | 2 wdiff | [] [] | 7 wget | [] [] [] [] [] | 26 wyslij-po | [] [] | 8 xchat | [] [] [] [] [] [] | 36 xdg-user-dirs | [] [] [] [] [] [] [] [] [] | 60 xkeyboard-config | [] [] [] [] | 25 +---------------------------------------------------+ 84 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW 178 domains 119 1 3 2 0 10 66 50 155 17 97 7 41 2610 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If May 2010 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. wdiff-1.2.1/Makefile.in0000644000000000000000000015056012116513165011556 00000000000000# Makefile.in generated by automake 1.13.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 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 = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in ABOUT-NLS BACKLOG COPYING THANKS TODO \ build-aux/compile build-aux/config.guess \ build-aux/config.rpath build-aux/config.sub \ build-aux/install-sh build-aux/missing \ $(top_srcdir)/build-aux/compile \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.rpath \ $(top_srcdir)/build-aux/config.sub \ $(top_srcdir)/build-aux/install-sh \ $(top_srcdir)/build-aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/getdelim.m4 \ $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/iswblank.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readlink.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/time_h.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \ $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xsize.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 config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOM4TE = @AUTOM4TE@ AUTOMAKE = @AUTOMAKE@ AUTOTEST = @AUTOTEST@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ EXPERIMENTAL = @EXPERIMENTAL@ EXPERIMENTAL_MANS = @EXPERIMENTAL_MANS@ EXPERIMENTAL_PROGRAMS = @EXPERIMENTAL_PROGRAMS@ EXPERIMENTAL_TEXI = @EXPERIMENTAL_TEXI@ FLOAT_H = @FLOAT_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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 = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = lib po src doc man ACLOCAL_AMFLAGS = -I m4 # --------- # # ChangeLog # # --------- # # -------------- # # helper scripts # # -------------- # EXTRA_DIST = ChangeLog $(top_srcdir)/build-aux/msgitm.pm \ $(top_srcdir)/build-aux/print-po.pl $(srcdir)/$(TESTSUITE) \ $(TESTSUITE_AT) $(srcdir)/tests/package.m4 m4/gnulib-cache.m4 # (copied from Makefile.am in libtool CVS 2007-07-11) # Using `cd' in backquotes may print the directory name, use this instead: lt__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd # The testsuite files are evaluated in the order given here. TESTSUITE = tests/testsuite TESTSUITE_AT = tests/testsuite.at \ tests/cluster.at \ tests/wdiff.at # Be sure to reexport important environment variables: TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" LD="$(LD)" LDFLAGS="$(LDFLAGS)" \ LIBS="$(LIBS)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \ OBJEXT="$(OBJEXT)" EXEEXT="$(EXEEXT)" \ SHELL="$(SHELL)" CONFIG_SHELL="$(SHELL)" \ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" CXXCPP="$(CXXCPP)" \ F77="$(F77)" FFLAGS="$(FFLAGS)" \ FC="$(FC)" FCFLAGS="$(FCFLAGS)" \ GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)" DISTCLEANFILES = tests/atconfig CD_TESTDIR = abs_srcdir=`$(lt__cd) $(srcdir) && pwd`; cd tests all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__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) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) 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) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 # 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. $(am__recursive_targets): @fail= 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//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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; \ ($(am__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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ 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 || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -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 $(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__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_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) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(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 \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { 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 $(MAKE) $(AM_MAKEFLAGS) check-local check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -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." clean: clean-recursive clean-am: clean-generic clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: installcheck-local maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check-am install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am check-local clean clean-cscope \ clean-generic clean-local cscope cscopelist-am ctags ctags-am \ dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installcheck-local installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am ChangeLog: LC_ALL=en_US.utf8 \ bzr log --gnu-changelog --include-merged --omit-merges > $@.tmp cat $@.old >> $@.tmp mv $@.tmp $@ # Use `$(srcdir)' for the benefit of non-GNU makes: this is # how `testsuite' appears in our dependencies. $(srcdir)/$(TESTSUITE): $(srcdir)/tests/package.m4 $(TESTSUITE_AT) Makefile.am cd $(srcdir)/tests && \ $(AUTOTEST) `echo $(TESTSUITE_AT) | sed 's,tests/,,g'` -o testsuite.tmp && \ mv -f testsuite.tmp testsuite $(srcdir)/tests/package.m4: $(srcdir)/configure.ac { \ echo '# Signature of the current package.'; \ echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \ echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \ echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \ echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \ echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \ } > $(srcdir)/tests/package.m4 tests/atconfig: $(top_builddir)/config.status $(SHELL) ./config.status tests/atconfig # Hook the test suite into the check rule check-local: tests/atconfig $(srcdir)/$(TESTSUITE) $(bin_SCRIPTS) $(CD_TESTDIR); \ CONFIG_SHELL="$(SHELL)" $(SHELL) $$abs_srcdir/$(TESTSUITE) \ $(TESTSUITEFLAGS) AUTOTEST_PATH="src" # Run the test suite on the *installed* tree. installcheck-local: $(CD_TESTDIR); \ CONFIG_SHELL="$(SHELL)" $(SHELL) $$abs_srcdir/$(TESTSUITE) \ $(TESTSUITEFLAGS) AUTOTEST_PATH="$(exec_prefix)/bin" # We need to remove any file droppings left behind by testsuite clean-local: -$(CD_TESTDIR); \ test -f $$abs_srcdir/$(TESTSUITE) && \ $(SHELL) $$abs_srcdir/$(TESTSUITE) --clean # 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: wdiff-1.2.1/maint.mk0000644000000000000000000017440312116377053011160 00000000000000# -*-Makefile-*- # This Makefile fragment tries to be general-purpose enough to be # used by many projects via the gnulib maintainer-makefile module. ## Copyright (C) 2001-2013 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 3 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, see . # This is reported not to work with make-3.79.1 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) ME := maint.mk # Diagnostic for continued use of deprecated variable. # Remove in 2013 ifneq ($(build_aux),) $(error "$(ME): \ set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)") endif # Helper variables. _empty = _sp = $(_empty) $(_empty) # _equal,S1,S2 # ------------ # If S1 == S2, return S1, otherwise the empty string. _equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) # member-check,VARIABLE,VALID-VALUES # ---------------------------------- # Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and # return it. Die otherwise. member-check = \ $(strip \ $(if $($(1)), \ $(if $(findstring $(_sp),$($(1))), \ $(error invalid $(1): '$($(1))', expected $(2)), \ $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)), \ $(error invalid $(1): '$($(1))', expected $(2)))), \ $(error $(1) undefined))) # Do not save the original name or timestamp in the .tar.gz file. # Use --rsyncable if available. gzip_rsyncable := \ $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \ && printf %s --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' GIT = git VC = $(GIT) VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) # You can override this variable in cfg.mk to set your own regexp # matching files to ignore. VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ # This is to preprocess robustly the output of $(VC_LIST), so that even # when $(srcdir) is a pathological name like "....", the leading sed command # removes only the intended prefix. _dot_escaped_srcdir = $(subst .,\.,$(srcdir)) # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only # when $(srcdir) is not ".". ifeq ($(srcdir),.) _prepend_srcdir_prefix = else _prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|' endif # In order to be able to consistently filter "."-relative names, # (i.e., with no $(srcdir) prefix), this definition is careful to # remove any $(srcdir) prefix, and to restore what it removes. _sc_excl = \ $(or $(exclude_file_name_regexp--$@),^$$) VC_LIST_EXCEPT = \ $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \ | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ $(_prepend_srcdir_prefix) ifeq ($(origin prev_version_file), undefined) prev_version_file = $(srcdir)/.prev-version endif PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) ifeq ($(VC),$(GIT)) this-vc-tag = v$(VERSION) this-vc-tag-regexp = v$(VERSION_REGEXP) else tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') tag-this-version = $(subst .,_,$(VERSION)) this-vc-tag = $(tag-package)-$(tag-this-version) this-vc-tag-regexp = $(this-vc-tag) endif my_distdir = $(PACKAGE)-$(VERSION) # Old releases are stored here. release_archive_dir ?= ../release # If RELEASE_TYPE is undefined, but RELEASE is, use its second word. # But overwrite VERSION. ifdef RELEASE VERSION := $(word 1, $(RELEASE)) RELEASE_TYPE ?= $(word 2, $(RELEASE)) endif # Validate and return $(RELEASE_TYPE), or die. RELEASE_TYPES = alpha beta stable release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES)) # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. # Use alpha.gnu.org for alpha and beta releases. # Use ftp.gnu.org for stable releases. gnu_ftp_host-alpha = alpha.gnu.org gnu_ftp_host-beta = alpha.gnu.org gnu_ftp_host-stable = ftp.gnu.org gnu_rel_host ?= $(gnu_ftp_host-$(release-type)) url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \ http://ftpmirror.gnu.org/$(PACKAGE), \ ftp://$(gnu_rel_host)/gnu/$(PACKAGE)) # Override this in cfg.mk if you are using a different format in your # NEWS file. today = $(shell date +%Y-%m-%d) # Select which lines of NEWS are searched for $(news-check-regexp). # This is a sed line number spec. The default says that we search # lines 1..10 of NEWS for $(news-check-regexp). # If you want to search only line 3 or only lines 20-22, use "3" or "20,22". news-check-lines-spec ?= 1,10 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' # Prevent programs like 'sort' from considering distinct strings to be equal. # Doing it here saves us from having to set LC_ALL elsewhere in this file. export LC_ALL = C ## --------------- ## ## Sanity checks. ## ## --------------- ## _cfg_mk := $(wildcard $(srcdir)/cfg.mk) # Collect the names of rules starting with 'sc_'. syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \ $(srcdir)/$(ME) $(_cfg_mk))) .PHONY: $(syntax-check-rules) ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) local-checks-available += $(syntax-check-rules) else local-checks-available += no-vc-detected no-vc-detected: @echo "No version control files detected; skipping syntax check" endif .PHONY: $(local-checks-available) # Arrange to print the name of each syntax-checking rule just before running it. $(syntax-check-rules): %: %.m sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) .PHONY: $(sc_m_rules_) $(sc_m_rules_): @echo $(patsubst sc_%.m, %, $@) @date +%s.%N > .sc-start-$(basename $@) @echo -ne '\e[31m' # Compute and print the elapsed time for each syntax-check rule. sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) .PHONY: $(sc_z_rules_) $(sc_z_rules_): %.z: % @echo -ne '\e[0m' @end=$$(date +%s.%N); \ start=$$(cat .sc-start-$*); \ rm -f .sc-start-$*; \ awk -v s=$$start -v e=$$end \ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper # that computes and prints elapsed time. local-check := \ $(patsubst sc_%, sc_%.z, \ $(filter-out $(local-checks-to-skip), $(local-checks-available))) syntax-check: @$(VC_LIST) > .vc.list @$(MAKE) -k $(local-check) VC_LIST='cat .vc.list' @$(RM) .vc.list # _sc_search_regexp # # This macro searches for a given construct in the selected files and # then takes some action. # # Parameters (shell variables): # # prohibit | require # # Regular expression (ERE) denoting either a forbidden construct # or a required construct. Those arguments are exclusive. # # exclude # # Regular expression (ERE) denoting lines to ignore that matched # a prohibit construct. For example, this can be used to exclude # comments that mention why the nearby code uses an alternative # construct instead of the simpler prohibited construct. # # in_vc_files | in_files # # grep-E-style regexp selecting the files to check. For in_vc_files, # the regexp is used to select matching files from the list of all # version-controlled files; for in_files, it's from the names printed # by "find $(srcdir)". When neither is specified, use all files that # are under version control. # # containing | non_containing # # Select the files (non) containing strings matching this regexp. # If both arguments are specified then CONTAINING takes # precedence. # # with_grep_options # # Extra options for grep. # # ignore_case # # Ignore case. # # halt # # Message to display before to halting execution. # # Finally, you may exempt files based on an ERE matching file names. # For example, to exempt from the sc_space_tab check all files with the # .diff suffix, set this Make variable: # # exclude_file_name_regexp--sc_space_tab = \.diff$ # # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, # when filtering by name via in_files, we explicitly filter out matching # names here as well. # Initialize each, so that envvar settings cannot interfere. export require = export prohibit = export exclude = export in_vc_files = export in_files = export containing = export non_containing = export halt = export with_grep_options = # By default, _sc_search_regexp does not ignore case. export ignore_case = _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) define _sc_say_and_exit dummy=; : so we do not need a semicolon before each use; \ { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; endef define _sc_search_regexp dummy=; : so we do not need a semicolon before each use; \ \ : Check arguments; \ test -n "$$prohibit" && test -n "$$require" \ && { msg='Cannot specify both prohibit and require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -z "$$require" \ && { msg='Should specify either prohibit or require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -n "$$exclude" \ && { msg='Use of exclude requires a prohibit pattern' \ $(_sc_say_and_exit) } || :; \ test -n "$$in_vc_files" && test -n "$$in_files" \ && { msg='Cannot specify both in_vc_files and in_files' \ $(_sc_say_and_exit) } || :; \ test "x$$halt" != x \ || { msg='halt not defined' $(_sc_say_and_exit) }; \ \ : Filter by file name; \ if test -n "$$in_files"; then \ files=$$(find $(srcdir) | grep -E "$$in_files" \ | grep -Ev '$(_sc_excl)'); \ else \ files=$$($(VC_LIST_EXCEPT)); \ if test -n "$$in_vc_files"; then \ files=$$(echo "$$files" | grep -E "$$in_vc_files"); \ fi; \ fi; \ \ : Filter by content; \ test -n "$$files" && test -n "$$containing" \ && { files=$$(grep -l "$$containing" $$files); } || :; \ test -n "$$files" && test -n "$$non_containing" \ && { files=$$(grep -vl "$$non_containing" $$files); } || :; \ \ : Check for the construct; \ if test -n "$$files"; then \ if test -n "$$prohibit"; then \ grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \ | grep -vE "$${exclude:-^$$}" \ && { msg="$$halt" $(_sc_say_and_exit) } || :; \ else \ grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \ | grep . \ && { msg="$$halt" $(_sc_say_and_exit) } || :; \ fi \ else :; \ fi || :; endef sc_avoid_if_before_free: @$(srcdir)/$(_build-aux)/useless-if-before-free \ $(useless_free_options) \ $$($(VC_LIST_EXCEPT) | grep -v useless-if-before-free) && \ { echo '$(ME): found useless "if" before "free" above' 1>&2; \ exit 1; } || : sc_cast_of_argument_to_free: @prohibit='\&2; exit 1; } || : else @: endif # Don't use *scanf or the old ato* functions in "real" code. # They provide no error checking mechanism. # Instead, use strto* functions. sc_prohibit_atoi_atof: @prohibit='\<([fs]?scanf|ato([filq]|ll)) *\(' \ halt='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \ $(_sc_search_regexp) # Use STREQ rather than comparing strcmp == 0, or != 0. sp_ = strcmp *\(.+\) sc_prohibit_strcmp: @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)' \ exclude='# *define STRN?EQ\(' \ halt='replace strcmp calls above with STREQ/STRNEQ' \ $(_sc_search_regexp) # Really. You don't want to use this function. # It may fail to NUL-terminate the destination, # and always NUL-pads out to the specified length. sc_prohibit_strncpy: @prohibit='\&2; \ exit 1; } || : # Error messages should not start with a capital letter sc_error_message_uppercase: @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ | grep -E '"[A-Z]' \ | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' && \ { echo '$(ME): found capitalized error message' 1>&2; \ exit 1; } || : # Error messages should not end with a period sc_error_message_period: @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ | grep -E '[^."]\."' && \ { echo '$(ME): found error message ending in period' 1>&2; \ exit 1; } || : sc_file_system: @prohibit=file''system \ ignore_case=1 \ halt='found use of "file''system"; spell it "file system"' \ $(_sc_search_regexp) # Don't use cpp tests of this symbol. All code assumes config.h is included. sc_prohibit_have_config_h: @prohibit='^# *if.*HAVE''_CONFIG_H' \ halt='found use of HAVE''_CONFIG_H; remove' \ $(_sc_search_regexp) # Nearly all .c files must include . However, we also permit this # via inclusion of a package-specific header, if cfg.mk specified one. # config_h_header must be suitable for grep -E. config_h_header ?= sc_require_config_h: @require='^# *include $(config_h_header)' \ in_vc_files='\.c$$' \ halt='the above files do not include ' \ $(_sc_search_regexp) # You must include before including any other header file. # This can possibly be via a package-specific header, if given by cfg.mk. sc_require_config_h_first: @if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ fail=0; \ for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \ grep '^# *include\>' $$i | sed 1q \ | grep -E '^# *include $(config_h_header)' > /dev/null \ || { echo $$i; fail=1; }; \ done; \ test $$fail = 1 && \ { echo '$(ME): the above files include some other header' \ 'before ' 1>&2; exit 1; } || :; \ else :; \ fi sc_prohibit_HAVE_MBRTOWC: @prohibit='\bHAVE_MBRTOWC\b' \ halt="do not use $$prohibit; it is always defined" \ $(_sc_search_regexp) # To use this "command" macro, you must first define two shell variables: # h: the header name, with no enclosing <> or "" # re: a regular expression that matches IFF something provided by $h is used. define _sc_header_without_use dummy=; : so we do not need a semicolon before each use; \ h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`; \ if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ files=$$(grep -l '^# *include '"$$h_esc" \ $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ grep -LE "$$re" $$files | grep . && \ { echo "$(ME): the above files include $$h but don't use it" \ 1>&2; exit 1; } || :; \ else :; \ fi endef # Prohibit the inclusion of assert.h without an actual use of assert. sc_prohibit_assert_without_use: @h='assert.h' re='\new(file => "/dev/stdin")->as_string'|sed 's/\?://g' # Note this was produced by the above: # _xa1 = \ #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) # But we can do better, in at least two ways: # 1) take advantage of two "dup"-suffixed strings: # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable # "char|[cmz]" # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa2 = X([CZ]|N?M)ALLOC sc_prohibit_xalloc_without_use: @h='xalloc.h' \ re='\<($(_xa1)|$(_xa2)) *\('\ $(_sc_header_without_use) # Extract function names: # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h _hash_re = \ clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning _hash_fn = \<($(_hash_re)) *\( _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> sc_prohibit_hash_without_use: @h='hash.h' \ re='$(_hash_fn)|$(_hash_struct)'\ $(_sc_header_without_use) sc_prohibit_cloexec_without_use: @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ $(_sc_header_without_use) sc_prohibit_posixver_without_use: @h='posixver.h' re='\' \ halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ $(_sc_search_regexp) # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ # Each nonempty ChangeLog line must start with a year number, or a TAB. sc_changelog: @prohibit='^[^12 ]' \ in_vc_files='^ChangeLog$$' \ halt='found unexpected prefix in a ChangeLog' \ $(_sc_search_regexp) # Ensure that each .c file containing a "main" function also # calls set_program_name. sc_program_name: @require='set_program_name *\(m?argv\[0\]\);' \ in_vc_files='\.c$$' \ containing='\
/dev/null \ && : || { die=1; echo $$i; } \ done; \ test $$die = 1 && \ { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ echo 1>&2 'Exit something'; \ exit 1; } || :; \ fi sc_trailing_blank: @prohibit='[ ]$$' \ halt='found trailing blank(s)' \ exclude='^Binary file .* matches$$' \ $(_sc_search_regexp) # Match lines like the following, but where there is only one space # between the options and the description: # -D, --all-repeated[=delimit-method] print all duplicate lines\n longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)? sc_two_space_separator_in_usage: @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ halt='help2man requires at least two spaces between an option and its description'\ $(_sc_search_regexp) # A regexp matching function names like "error" that may be used # to emit translatable messages. _gl_translatable_diag_func_re ?= error # Look for diagnostics that aren't marked for translation. # This won't find any for which error's format string is on a separate line. sc_unmarked_diagnostics: @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ exclude='(_|ngettext ?)\(' \ halt='found unmarked diagnostic(s)' \ $(_sc_search_regexp) # Avoid useless parentheses like those in this example: # #if defined (SYMBOL) || defined (SYM2) sc_useless_cpp_parens: @prohibit='^# *if .*defined *\(' \ halt='found useless parentheses in cpp directive' \ $(_sc_search_regexp) # List headers for which HAVE_HEADER_H is always true, assuming you are # using the appropriate gnulib module. CAUTION: for each "unnecessary" # #if HAVE_HEADER_H that you remove, be sure that your project explicitly # requires the gnulib module that guarantees the usability of that header. gl_assured_headers_ = \ cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//g' # Convert the list of names to upper case, and replace each space with "|". az_ = abcdefghijklmnopqrstuvwxyz AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ gl_header_upper_case_or_ = \ $$($(gl_assured_headers_) \ | tr $(az_)/.- $(AZ_)___ \ | tr -s ' ' '|' \ ) sc_prohibit_always_true_header_tests: @or=$(gl_header_upper_case_or_); \ re="HAVE_($$or)_H"; \ prohibit='\<'"$$re"'\>' \ halt=$$(printf '%s\n' \ 'do not test the above HAVE_
_H symbol(s);' \ ' with the corresponding gnulib module, they are always true') \ $(_sc_search_regexp) sc_prohibit_defined_have_decl_tests: @prohibit='#[ ]*if(n?def|.*\[ (]+HAVE_DECL_' \ halt='HAVE_DECL macros are always defined' \ $(_sc_search_regexp) # ================================================================== gl_other_headers_ ?= \ intprops.h \ openat.h \ stat-macros.h # Perl -lne code to extract "significant" cpp-defined symbols from a # gnulib header file, eliminating a few common false-positives. # The exempted names below are defined only conditionally in gnulib, # and hence sometimes must/may be defined in application code. gl_extract_significant_defines_ = \ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ && $$2 !~ /(?:rpl_|_used_without_)/\ && $$1 !~ /^(?:NSIG|ENODATA)$$/\ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ and print $$1 # Create a list of regular expressions matching the names # of macros that are guaranteed to be defined by parts of gnulib. define def_sym_regex gen_h=$(gl_generated_headers_); \ (cd $(gnulib_dir)/lib; \ for f in *.in.h $(gl_other_headers_); do \ test -f $$f \ && perl -lne '$(gl_extract_significant_defines_)' $$f; \ done; \ ) | sort -u \ | sed 's/^/^ *# *(define|undef) */;s/$$/\\>/' endef # Don't define macros that we already get from gnulib header files. sc_prohibit_always-defined_macros: @if test -d $(gnulib_dir); then \ case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ esac; \ $(def_sym_regex) | grep -E -f - $$($(VC_LIST_EXCEPT)) \ && { echo '$(ME): define the above via some gnulib .h file' \ 1>&2; exit 1; } || :; \ fi # ================================================================== # Prohibit checked in backup files. sc_prohibit_backup_files: @$(VC_LIST) | grep '~$$' && \ { echo '$(ME): found version controlled backup file' 1>&2; \ exit 1; } || : # Require the latest GPL. sc_GPL_version: @prohibit='either ''version [^3]' \ halt='GPL vN, N!=3' \ $(_sc_search_regexp) # Require the latest GFDL. Two regexp, since some .texi files end up # line wrapping between 'Free Documentation License,' and 'Version'. _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) sc_GFDL_version: @prohibit='$(_GFDL_regexp)' \ halt='GFDL vN, N!=3' \ $(_sc_search_regexp) # Don't use Texinfo's @acronym{}. # http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ sc_texinfo_acronym: @prohibit='@acronym\{' \ in_vc_files='$(texinfo_suffix_re_)' \ halt='found use of Texinfo @acronym{}' \ $(_sc_search_regexp) cvs_keywords = \ Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State sc_prohibit_cvs_keyword: @prohibit='\$$($(cvs_keywords))\$$' \ halt='do not use CVS keyword expansion' \ $(_sc_search_regexp) # This Perl code is slightly obfuscated. Not only is each "$" doubled # because it's in a Makefile, but the $$c's are comments; we cannot # use "#" due to the way the script ends up concatenated onto one line. # It would be much more concise, and would produce better output (including # counts) if written as: # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... # but that would be far less efficient, reading the entire contents # of each file, rather than just the last two bytes of each. # In addition, while the code below detects both blank lines and a missing # newline at EOF, the above detects only the former. # # This is a perl script that is expected to be the single-quoted argument # to a command-line "-le". The remaining arguments are file names. # Print the name of each file that does not end in exactly one newline byte. # I.e., warn if there are blank lines (2 or more newlines), or if the # last byte is not a newline. However, currently we don't complain # about any file that contains exactly one byte. # Exit nonzero if at least one such file is found, otherwise, exit 0. # Warn about, but otherwise ignore open failure. Ignore seek/read failure. # # Use this if you want to remove trailing empty lines from selected files: # perl -pi -0777 -e 's/\n\n+$/\n/' files... # require_exactly_one_NL_at_EOF_ = \ foreach my $$f (@ARGV) \ { \ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ my $$p = sysseek (F, -2, 2); \ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ my $$last_two_bytes; \ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ close F; \ $$c = "ignore read failure"; \ $$p && ($$last_two_bytes eq "\n\n" \ || substr ($$last_two_bytes,1) ne "\n") \ and (print $$f), $$fail=1; \ } \ END { exit defined $$fail } sc_prohibit_empty_lines_at_EOF: @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \ || { echo '$(ME): empty line(s) or no newline at EOF' \ 1>&2; exit 1; } || : # Make sure we don't use st_blocks. Use ST_NBLOCKS instead. # This is a bit of a kludge, since it prevents use of the string # even in comments, but for now it does the job with no false positives. sc_prohibit_stat_st_blocks: @prohibit='[.>]st_blocks' \ halt='do not use st_blocks; use ST_NBLOCKS' \ $(_sc_search_regexp) # Make sure we don't define any S_IS* macros in src/*.c files. # They're already defined via gnulib's sys/stat.h replacement. sc_prohibit_S_IS_definition: @prohibit='^ *# *define *S_IS' \ halt='do not define S_IS* macros; include ' \ $(_sc_search_regexp) # Perl block to convert a match to FILE_NAME:LINENO:TEST, # that is shared by two definitions below. perl_filename_lineno_text_ = \ -e ' {' \ -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ -e ' print "$$ARGV:$$n:$$v\n";' \ -e ' }' prohibit_doubled_word_RE_ ?= \ /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims prohibit_doubled_word_ = \ -e 'while ($(prohibit_doubled_word_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_doubled_word_match_RE_ ?= ^$$ sc_prohibit_doubled_word: @perl -n -0777 $(prohibit_doubled_word_) $$($(VC_LIST_EXCEPT)) \ | grep -vE '$(ignore_doubled_word_match_RE_)' \ | grep . && { echo '$(ME): doubled words' 1>&2; exit 1; } || : # A regular expression matching undesirable combinations of words like # "can not"; this matches them even when the two words appear on different # lines, but not when there is an intervening delimiter like "#" or "*". # Similarly undesirable, "See @xref{...}", since an @xref should start # a sentence. Explicitly prohibit any prefix of "see" or "also". # Also prohibit a prefix matching "\w+ +". # @pxref gets the same see/also treatment and should be parenthesized; # presume it must *not* start a sentence. bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{ bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{ prohibit_undesirable_word_seq_RE_ ?= \ /(?:\bcan\s+not\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims prohibit_undesirable_word_seq_ = \ -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_undesirable_word_sequence_RE_ ?= ^$$ sc_prohibit_undesirable_word_seq: @perl -n -0777 $(prohibit_undesirable_word_seq_) \ $$($(VC_LIST_EXCEPT)) \ | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || : _ptm1 = use "test C1 && test C2", not "test C1 -''a C2" _ptm2 = use "test C1 || test C2", not "test C1 -''o C2" # Using test's -a and -o operators is not portable. # We prefer test over [, since the latter is spelled [[ in configure.ac. sc_prohibit_test_minus_ao: @prohibit='(\ /dev/null \ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ done; \ test $$fail = 1 && \ { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ exit 1; } || :; \ fi # Warn about "c0nst struct Foo const foo[]", # but not about "char const *const foo" or "#define const const". sc_redundant_const: @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ halt='redundant "const" in declarations' \ $(_sc_search_regexp) sc_const_long_option: @prohibit='^ *static.*struct option ' \ exclude='const struct option|struct option const' \ halt='add "const" to the above declarations' \ $(_sc_search_regexp) NEWS_hash = \ $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ $(srcdir)/NEWS \ | perl -0777 -pe \ 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ | md5sum - \ | sed 's/ .*//') # Ensure that we don't accidentally insert an entry into an old NEWS block. sc_immutable_NEWS: @if test -f $(srcdir)/NEWS; then \ test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ fi # Update the hash stored above. Do this after each release and # for any corrections to old entries. update-NEWS-hash: NEWS perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ $(srcdir)/cfg.mk # Ensure that we use only the standard $(VAR) notation, # not @...@ in Makefile.am, now that we can rely on automake # to emit a definition for each substituted variable. # However, there is still one case in which @VAR@ use is not just # legitimate, but actually required: when augmenting an automake-defined # variable with a prefix. For example, gettext uses this: # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ # otherwise, makeinfo would put German or French (current locale) # navigation hints in the otherwise-English documentation. # # Allow the package to add exceptions via a hook in cfg.mk; # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. _makefile_at_at_check_exceptions ?= sc_makefile_at_at_check: @perl -ne '/\@\w+\@/' \ -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ -e ''$(_makefile_at_at_check_exceptions) \ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : news-check: NEWS $(AM_V_GEN)if sed -n $(news-check-lines-spec)p $< \ | grep -E $(news-check-regexp) >/dev/null; then \ :; \ else \ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ exit 1; \ fi sc_makefile_TAB_only_indentation: @prohibit='^ [ ]{8}' \ in_vc_files='akefile|\.mk$$' \ halt='found TAB-8-space indentation' \ $(_sc_search_regexp) sc_m4_quote_check: @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ in_vc_files='(^configure\.ac|\.m4)$$' \ halt='quote the first arg to AC_DEF*' \ $(_sc_search_regexp) fix_po_file_diag = \ 'you have changed the set of files with translatable diagnostics;\n\ apply the above patch\n' # Verify that all source files using _() (more specifically, files that # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in. po_file ?= $(srcdir)/po/POTFILES.in generated_files ?= $(srcdir)/lib/*.[ch] generated_files_sharing_po = \ $(if $(wildcard $(srcdir)/lib/po/POTFILES.in),,$(generated_files)) _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) sc_po_check: @if test -f $(po_file); then \ grep -E -v '^(#|$$)' $(po_file) \ | grep -v '^src/false\.c$$' | sort > $@-1; \ files=; \ for file in $$($(VC_LIST_EXCEPT)) \ $(generated_files_sharing_po); do \ test -r $$file || continue; \ case $$file in \ *.m4|*.mk) continue ;; \ *.?|*.??) ;; \ *) continue;; \ esac; \ case $$file in \ *.[ch]) \ base=`expr " $$file" : ' \(.*\)\..'`; \ { test -f $$base.l || test -f $$base.y; } && continue;; \ esac; \ files="$$files $$file"; \ done; \ grep -E -l '$(_gl_translatable_string_re)' $$files \ | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2; \ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ rm -f $@-1 $@-2; \ fi # Sometimes it is useful to change the PATH environment variable # in Makefiles. When doing so, it's better not to use the Unix-centric # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'. msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead' sc_makefile_path_separator_check: @prohibit='PATH[=].*:' \ in_vc_files='akefile|\.mk$$' \ halt=$(msg) \ $(_sc_search_regexp) # Check that 'make alpha' will not fail at the end of the process, # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) # and is read-only. writable-files: $(AM_V_GEN)if test -d $(release_archive_dir); then \ for file in $(DIST_ARCHIVES); do \ for p in ./ $(release_archive_dir)/; do \ test -e $$p$$file || continue; \ test -w $$p$$file \ || { echo ERROR: $$p$$file is not writable; fail=1; }; \ done; \ done; \ test "$$fail" && exit 1 || : ; \ else :; \ fi v_etc_file = $(gnulib_dir)/lib/version-etc.c sample-test = tests/sample-test texi = doc/$(PACKAGE).texi # Make sure that the copyright date in $(v_etc_file) is up to date. # Do the same for the $(sample-test) and the main doc/.texi file. sc_copyright_check: @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ in_files=$(v_etc_file) \ halt='out of date copyright in $(v_etc_file); update it' \ $(_sc_search_regexp) @require='# Copyright \(C\) '$$(date +%Y)' Free' \ in_vc_files=$(sample-test) \ halt='out of date copyright in $(sample-test); update it' \ $(_sc_search_regexp) @require='Copyright @copyright\{\} .*'$$(date +%Y)' Free' \ in_vc_files=$(texi) \ halt='out of date copyright in $(texi); update it' \ $(_sc_search_regexp) # If tests/help-version exists and seems to be new enough, assume that its # use of init.sh and path_prepend_ is correct, and ensure that every other # use of init.sh is identical. # This is useful because help-version cross-checks prog --version # with $(VERSION), which verifies that its path_prepend_ invocation # sets PATH correctly. This is an inexpensive way to ensure that # the other init.sh-using tests also get it right. _hv_file ?= $(srcdir)/tests/help-version _hv_regex_weak ?= ^ *\. .*/init\.sh" # Fix syntax-highlighters " _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" sc_cross_check_PATH_usage_in_tests: @if test -f $(_hv_file); then \ grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ exit 0; }; \ grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ exit 1; }; \ good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \ grep -LFx "$$good" \ $$(grep -lE '$(_hv_regex_weak)' $$($(VC_LIST_EXCEPT))) \ | grep . && \ { echo "$(ME): the above files use path_prepend_ inconsistently" \ 1>&2; exit 1; } || :; \ fi # BRE regex of file contents to identify a test script. _test_script_regex ?= \ # In tests, use "compare expected actual", not the reverse. sc_prohibit_reversed_compare_failure: @prohibit='\ vc-diffs || : $(AM_V_at)if test -s vc-diffs; then \ cat vc-diffs; \ echo "Some files are locally modified:" 1>&2; \ exit 1; \ else \ rm vc-diffs; \ fi rel-files = $(DIST_ARCHIVES) gnulib_dir ?= $(srcdir)/gnulib gnulib-version = $$(cd $(gnulib_dir) && git describe) bootstrap-tools ?= autoconf,automake,gnulib # If it's not already specified, derive the GPG key ID from # the signed tag we've just applied to mark this release. gpg_key_ID ?= \ $$(cd $(srcdir) \ && git cat-file tag v$(VERSION) \ | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null \ | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}') translation_project_ ?= coordinator@translationproject.org # Make info-gnu the default only for a stable release. announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT) announcement_mail_headers_stable = \ To: info-gnu@gnu.org \ Cc: $(announcement_Cc_) \ Mail-Followup-To: $(PACKAGE_BUGREPORT) announcement_Cc_alpha = $(translation_project_) announcement_mail_headers_alpha = \ To: $(PACKAGE_BUGREPORT) \ Cc: $(announcement_Cc_) announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha) announcement_mail_headers_beta = $(announcement_mail_headers_alpha) announcement_mail_Cc_ ?= $(announcement_mail_Cc_$(release-type)) announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type)) announcement: NEWS ChangeLog $(rel-files) # Not $(AM_V_GEN) since the output of this command serves as # announcement message: it would start with " GEN announcement". $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen \ --mail-headers='$(announcement_mail_headers_)' \ --release-type=$(release-type) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ --srcdir=$(srcdir) \ --news=$(srcdir)/NEWS \ --bootstrap-tools=$(bootstrap-tools) \ $$(case ,$(bootstrap-tools), in (*,gnulib,*) \ echo --gnulib-version=$(gnulib-version);; esac) \ --no-print-checksums \ $(addprefix --url-dir=, $(url_dir_list)) .PHONY: release-commit release-commit: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/do-release-commit-and-tag \ -C $(abs_builddir) $(RELEASE) ## ---------------- ## ## Updating files. ## ## ---------------- ## ftp-gnu = ftp://ftp.gnu.org/gnu www-gnu = http://www.gnu.org upload_dest_dir_ ?= $(PACKAGE) upload_command = \ $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \ --to $(gnu_rel_host):$(upload_dest_dir_) \ $(rel-files) emit_upload_commands: @echo ===================================== @echo ===================================== @echo '$(upload_command)' @echo '# send the ~/announce-$(my_distdir) e-mail' @echo ===================================== @echo ===================================== .PHONY: upload upload: $(AM_V_GEN)$(upload_command) define emit-commit-log printf '%s\n' 'maint: post-release administrivia' '' \ '* NEWS: Add header line for next release.' \ '* .prev-version: Record previous version.' \ '* cfg.mk (old_NEWS_hash): Auto-update.' endef .PHONY: no-submodule-changes no-submodule-changes: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ diff=$$(cd $(srcdir) && git submodule -q foreach \ git diff-index --name-only HEAD) \ || exit 1; \ case $$diff in '') ;; \ *) echo '$(ME): submodule files are locally modified:'; \ echo "$$diff"; exit 1;; esac; \ else \ : ; \ fi submodule-checks ?= no-submodule-changes public-submodule-commit # Ensure that each sub-module commit we're using is public. # Without this, it is too easy to tag and release code that # cannot be built from a fresh clone. .PHONY: public-submodule-commit public-submodule-commit: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ cd $(srcdir) && \ git submodule --quiet foreach \ test '"$$(git rev-parse "$$sha1")"' \ = '"$$(git merge-base origin "$$sha1")"' \ || { echo '$(ME): found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi # This rule has a high enough utility/cost ratio that it should be a # dependent of "check" by default. However, some of us do occasionally # commit a temporary change that deliberately points to a non-public # submodule commit, and want to be able to use rules like "make check". # In that case, run e.g., "make check gl_public_submodule_commit=" # to disable this test. gl_public_submodule_commit ?= public-submodule-commit check: $(gl_public_submodule_commit) .PHONY: alpha beta stable release ALL_RECURSIVE_TARGETS += alpha beta stable alpha beta stable: syntax-check writable-files $(submodule-checks) $(AM_V_GEN)test $@ = stable \ && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : $(AM_V_at)$(MAKE) vc-diff-check $(AM_V_at)$(MAKE) news-check $(AM_V_at)$(MAKE) distcheck $(AM_V_at)$(MAKE) dist $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ release: $(AM_V_GEN)$(MAKE) $(release-type) # Override this in cfg.mk if you follow different procedures. release-prep-hook ?= release-prep gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] .PHONY: release-prep release-prep: $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \ > ~/announce-$(my_distdir) $(AM_V_at)if test -d $(release_archive_dir); then \ ln $(rel-files) $(release_archive_dir); \ chmod a-w $(rel-files); \ fi $(AM_V_at)echo $(VERSION) > $(prev_version_file) $(AM_V_at)$(MAKE) update-NEWS-hash $(AM_V_at)perl -pi \ -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' \ $(srcdir)/NEWS $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1; \ cd $(srcdir) && $(VC) commit -m "$$msg" -a # Override this with e.g., -s $(srcdir)/some_other_name.texi # if the default $(PACKAGE)-derived name doesn't apply. gendocs_options_ ?= .PHONY: web-manual web-manual: $(AM_V_GEN)test -z "$(manual_title)" \ && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : $(AM_V_at)cd '$(srcdir)/doc'; \ $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ -o '$(abs_builddir)/doc/manual' \ --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ "$(PACKAGE_NAME) - $(manual_title)" $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs." .PHONY: web-manual-update web-manual-update: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir) # Code Coverage init-coverage: $(MAKE) $(AM_MAKEFLAGS) clean lcov --directory . --zerocounters COVERAGE_CCOPTS ?= "-g --coverage" COVERAGE_OUT ?= doc/coverage build-coverage: $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check mkdir -p $(COVERAGE_OUT) lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ --capture gen-coverage: genhtml --output-directory $(COVERAGE_OUT) \ $(COVERAGE_OUT)/$(PACKAGE).info \ --highlight --frames --legend \ --title "$(PACKAGE_NAME)" coverage: init-coverage build-coverage gen-coverage # Some projects carry local adjustments for gnulib modules via patches in # a gnulib patch directory whose default name is gl/ (defined in bootstrap # via local_gl_dir=gl). Those patches become stale as the originals evolve # in gnulib. Use this rule to refresh any stale patches. It applies each # patch to the original in $(gnulib_dir) and uses the temporary result to # generate a fuzz-free .diff file. If you customize the name of your local # gnulib patch directory via bootstrap.conf, this rule detects that name. # Run this from a non-VPATH (i.e., srcdir) build directory. .PHONY: refresh-gnulib-patches refresh-gnulib-patches: gl=gl; \ if test -f bootstrap.conf; then \ t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ -e 'END{defined $$d and print $$d}' bootstrap.conf); \ test -n "$$t" && gl=$$t; \ fi; \ for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do \ b=$$(printf %s "$$diff"|sed 's/\.diff$$//'); \ VERSION_CONTROL=none \ patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ ( cd $(gnulib_dir) || exit 1; \ git diff "$$b" > "../$$gl/$$diff"; \ git checkout $$b ) || exit 1; \ done # Update gettext files. PACKAGE ?= $(shell basename $(PWD)) PO_DOMAIN ?= $(PACKAGE) PODIR ?= po RSYNC_OPTIONS = -iz RSYNC_PROTECT ?= en@boldquot.po en@quot.po .PHONY: refresh-po refresh-po: @echo "$(ME): getting translations into $(PODIR)..." rsync $(RSYNC_OPTIONS) -Lrc --delete \ $(patsubst %,-f 'protect %',$(RSYNC_PROTECT)) \ -f 'include *.po' -f 'exclude *' \ translationproject.org::tp/latest/$(PO_DOMAIN)/ $(PODIR) @touch $(PODIR)/LINGUAS sed -i -e '/^[a-z]/d' $(PODIR)/LINGUAS { echo 'en@boldquot'; echo 'en@quot'; ls $(PODIR)/*.po; } \ | sed -e 's/\.po//;s,$(PODIR)/,,' | sort -u >> $(PODIR)/LINGUAS # Running indent once is not idempotent, but running it twice is. INDENT_SOURCES ?= $(C_SOURCES) .PHONY: indent indent: indent $(INDENT_STYLE) $(INDENT_SOURCES) indent $(INDENT_STYLE) $(INDENT_SOURCES) # If you want to set UPDATE_COPYRIGHT_* environment variables, # put the assignments in this variable. update-copyright-env ?= # Run this rule once per year (usually early in January) # to update all FSF copyright year lists in your project. # If you have an additional project-specific rule, # add it in cfg.mk along with a line 'update-copyright: prereq'. # By default, exclude all variants of COPYING; you can also # add exemptions (such as ChangeLog..* for rotated change logs) # in the file .x-update-copyright. .PHONY: update-copyright update-copyright: $(AM_V_GEN)grep -l -w Copyright \ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. # NOTE: to override any _gl_TS_* default value, you must # define the variable(s) using "export" in cfg.mk. _gl_TS_dir ?= src ALL_RECURSIVE_TARGETS += sc_tight_scope sc_tight_scope: tight-scope.mk @fail=0; \ if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ > /dev/null \ && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ > /dev/null 2>&1; then \ echo '$(ME): skipping $@'; \ else \ $(MAKE) -s -C $(_gl_TS_dir) \ -f Makefile \ -f $(abs_top_srcdir)/cfg.mk \ -f $(abs_top_builddir)/$< \ _gl_tight_scope \ || fail=1; \ fi; \ rm -f $<; \ exit $$fail tight-scope.mk: $(ME) @rm -f $@ $@-t @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t @chmod a=r $@-t && mv $@-t $@ ifeq (a,b) # TS-start # Most functions should have static scope. # Any that don't must be marked with 'extern', but 'main' # and 'usage' are exceptions: they're always extern, but # do not need to be marked. Symbols matching '__.*' are # reserved by the compiler, so are automatically excluded below. _gl_TS_unmarked_extern_functions ?= main usage _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/ # If your project uses a macro like "XTERN", then put # the following in cfg.mk to override this default: # export _gl_TS_extern = extern|XTERN _gl_TS_extern ?= extern # The second nm|grep checks for file-scope variables with 'extern' scope. # Without gnulib's progname module, you might put program_name here. # Symbols matching '__.*' are reserved by the compiler, # so are automatically excluded below. _gl_TS_unmarked_extern_vars ?= # NOTE: the _match variables are perl expressions -- not mere regular # expressions -- so that you can extend them to match other patterns # and easily extract matched variable names. # For example, if your project declares some global variables via # a macro like this: GLOBAL(type, var_name, initializer), then you # can override this definition to automatically extract those names: # export _gl_TS_var_match = \ # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/ # The names of object files in (or relative to) $(_gl_TS_dir). _gl_TS_obj_files ?= *.$(OBJEXT) # Files in which to search for the one-line style extern declarations. # $(_gl_TS_dir)-relative. _gl_TS_headers ?= $(noinst_HEADERS) _gl_TS_other_headers ?= *.h .PHONY: _gl_tight_scope _gl_tight_scope: $(bin_PROGRAMS) t=exceptions-$$$$; \ trap 's=$$?; rm -f $$t; exit $$s' 0; \ for sig in 1 2 3 13 15; do \ eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ done; \ src=`for f in $(SOURCES); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ hdr=`for f in $(_gl_TS_headers); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ grep -h -A1 '^extern .*[^;]$$' $$src \ | grep -vE '^(extern |--)' | sed 's/ .*//'; \ perl -lne \ '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr; \ ) | sort -u > $$t; \ nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \ && { echo the above functions should have static scope >&2; \ exit 1; } || : ; \ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \ perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' \ $$hdr $(_gl_TS_other_headers) \ ) | sort -u > $$t; \ nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p' \ | sort -u | grep -Ev -f $$t \ && { echo the above variables should have static scope >&2; \ exit 1; } || : # TS-end endif wdiff-1.2.1/TODO0000644000000000000000000000147111744500575010204 00000000000000* TODO file for GNU `wdiff' allout -*- outline -*- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. Tell if you feel like volunteering for any of these ideas, listed more or less in decreasing order of priority. Some TODO items are implicit from received email. See file BACKLOG. Significant contributions require written assignments and disclaimers. .@ ChangeLog .* Select by options exactly what is whitespace. .* Implement a clever combination of these two ideas: (1) have a wpatch program (Zhuo Zang , 1992-08-13); (2) use unified diff format (Per Cederqvist , 1992-11-22). wdiff-1.2.1/aclocal.m40000644000000000000000000011721112116513162011342 00000000000000# generated automatically by aclocal 1.13.1 -*- Autoconf -*- # Copyright (C) 1996-2012 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. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2013 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. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.13.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.13.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 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-2013 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_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl 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-2013 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. # 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", "OBJC", "OBJCXX", "UPC", or "GJC". # 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$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". rm -rf conftest.dir 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 am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) 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 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # 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. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 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_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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"` # 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'`; 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-2013 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 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.65])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 if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi 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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])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]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # 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_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 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 if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 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. # 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-2013 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_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .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 # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999-2013 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_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 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_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 is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 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_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], [m4_foreach_w([_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-2013 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 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_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 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="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 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_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 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_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. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} 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/00gnulib.m4]) m4_include([m4/alloca.m4]) m4_include([m4/btowc.m4]) m4_include([m4/canonicalize.m4]) m4_include([m4/codeset.m4]) m4_include([m4/configmake.m4]) m4_include([m4/double-slash-root.m4]) m4_include([m4/dup2.m4]) m4_include([m4/eealloc.m4]) m4_include([m4/environ.m4]) m4_include([m4/errno_h.m4]) m4_include([m4/error.m4]) m4_include([m4/exponentd.m4]) m4_include([m4/extensions.m4]) m4_include([m4/extern-inline.m4]) m4_include([m4/fcntl-o.m4]) m4_include([m4/float_h.m4]) m4_include([m4/getdelim.m4]) m4_include([m4/getline.m4]) m4_include([m4/getopt.m4]) m4_include([m4/gettext.m4]) m4_include([m4/glibc21.m4]) m4_include([m4/gnulib-common.m4]) m4_include([m4/gnulib-comp.m4]) m4_include([m4/iconv.m4]) m4_include([m4/include_next.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/intmax_t.m4]) m4_include([m4/inttypes_h.m4]) m4_include([m4/iswblank.m4]) m4_include([m4/langinfo_h.m4]) m4_include([m4/largefile.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libunistring-base.m4]) m4_include([m4/localcharset.m4]) m4_include([m4/locale-fr.m4]) m4_include([m4/locale-ja.m4]) m4_include([m4/locale-zh.m4]) m4_include([m4/locale_h.m4]) m4_include([m4/localeconv.m4]) m4_include([m4/longlong.m4]) m4_include([m4/lstat.m4]) m4_include([m4/malloc.m4]) m4_include([m4/malloca.m4]) m4_include([m4/mbchar.m4]) m4_include([m4/mbiter.m4]) m4_include([m4/mbrtowc.m4]) m4_include([m4/mbsinit.m4]) m4_include([m4/mbstate_t.m4]) m4_include([m4/mbtowc.m4]) m4_include([m4/memchr.m4]) m4_include([m4/mmap-anon.m4]) m4_include([m4/msvc-inval.m4]) m4_include([m4/msvc-nothrow.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nl_langinfo.m4]) m4_include([m4/nls.m4]) m4_include([m4/nocrash.m4]) m4_include([m4/off_t.m4]) m4_include([m4/onceonly.m4]) m4_include([m4/pathmax.m4]) m4_include([m4/po.m4]) m4_include([m4/printf.m4]) m4_include([m4/progtest.m4]) m4_include([m4/readlink.m4]) m4_include([m4/realloc.m4]) m4_include([m4/regex.m4]) m4_include([m4/setenv.m4]) m4_include([m4/size_max.m4]) m4_include([m4/ssize_t.m4]) m4_include([m4/stat.m4]) m4_include([m4/stdbool.m4]) m4_include([m4/stddef_h.m4]) m4_include([m4/stdint.m4]) m4_include([m4/stdint_h.m4]) m4_include([m4/stdio_h.m4]) m4_include([m4/stdlib_h.m4]) m4_include([m4/strerror.m4]) m4_include([m4/string_h.m4]) m4_include([m4/strstr.m4]) m4_include([m4/sys_socket_h.m4]) m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_types_h.m4]) m4_include([m4/sys_wait_h.m4]) m4_include([m4/time_h.m4]) m4_include([m4/unistd_h.m4]) m4_include([m4/vasnprintf.m4]) m4_include([m4/vasprintf.m4]) m4_include([m4/warn-on-use.m4]) m4_include([m4/wchar_h.m4]) m4_include([m4/wchar_t.m4]) m4_include([m4/wcrtomb.m4]) m4_include([m4/wctype_h.m4]) m4_include([m4/wcwidth.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/xalloc.m4]) m4_include([m4/xsize.m4]) wdiff-1.2.1/build-aux/0000755000000000000000000000000012116513227011453 500000000000000wdiff-1.2.1/build-aux/install-sh0000755000000000000000000003325512075577011013414 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false 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: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -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. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; 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 if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? 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 "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # 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: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # 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 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $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 $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 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. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: wdiff-1.2.1/build-aux/vc-list-files0000755000000000000000000000735712116370307014016 00000000000000#!/bin/sh # List version-controlled file names. # Print a version string. scriptversion=2012-05-19.18; # UTC # Copyright (C) 2006-2013 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 3 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, see . # List the specified version-controlled files. # With no argument, list them all. With a single DIRECTORY argument, # list the version-controlled files in that directory. # If there's an argument, it must be a single, "."-relative directory name. # cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/ postprocess= case $1 in --help) cat <. EOF exit ;; --version) year=`echo "$scriptversion" | sed 's/[^0-9].*//'` cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit ;; -C) test "$2" = . || postprocess="| sed 's|^|$2/|'" cd "$2" || exit 1 shift; shift ;; esac test $# = 0 && set . for dir do if test -d .git; then test "x$dir" = x. \ && dir= sed_esc= \ || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } # Ignore git symlinks - either they point into the tree, in which case # we don't need to visit the target twice, or they point somewhere # else (often into a submodule), in which case the content does not # belong to this package. eval exec git ls-tree -r 'HEAD:"$dir"' \ \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" eval exec bzr ls -R --versioned --kind=file '"$dir"' $postprocess elif test -d CVS; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" if test -x build-aux/cvsu; then eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess elif (cvsu --help) >/dev/null 2>&1; then eval cvsu --find --types=AFGM '"$dir"' $postprocess else eval awk -F/ \''{ \ if (!$1 && $3 !~ /^-/) { \ f=FILENAME; \ if (f ~ /CVS\/Entries$/) \ f = substr(f, 1, length(f)-11); \ print f $2; \ }}'\'' \ `find "$dir" -name Entries -print` /dev/null' $postprocess fi elif test -d .svn; then eval exec svn list -R '"$dir"' $postprocess else echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 exit 1 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: wdiff-1.2.1/build-aux/config.sub0000755000000000000000000010612412074237423013366 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012, 2013 Free Software Foundation, Inc. timestamp='2013-01-11' # This file 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 3 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, see . # # 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. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx | dvp \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mipsEE* | ee | ps2) basic_machine=mips64r5900el-scei case $os in -linux*) ;; *) os=-elf ;; esac ;; iop) basic_machine=mipsel-scei os=-irx ;; dvp) basic_machine=dvp-scei os=-elf ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: wdiff-1.2.1/build-aux/missing0000755000000000000000000001533112075577011013002 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written 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, see . # 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 case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. 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 # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: wdiff-1.2.1/build-aux/useless-if-before-free0000755000000000000000000001411412116370307015560 00000000000000eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}' & eval 'exec perl -wST "$0" $argv:q' if 0; # Detect instances of "if (p) free (p);". # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces. my $VERSION = '2012-01-06 07:23'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. # Copyright (C) 2008-2013 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 3 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, see . # Written by Jim Meyering use strict; use warnings; use Getopt::Long; (my $ME = $0) =~ s|.*/||; # use File::Coda; # http://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM < sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; exit }, list => \$list, 'name=s@' => \@name, ) or usage 1; # Make sure we have the right number of non-option arguments. # Always tell the user why we fail. @ARGV < 1 and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR; my $or = join '|', @name; my $regexp = qr/(?:$or)/; # Set the input record separator. # Note: this makes it impractical to print line numbers. $/ = '"'; my $found_match = 0; FILE: foreach my $file (@ARGV) { open FH, '<', $file or (warn "$ME: can't open '$file' for reading: $!\n"), $err = EXIT_ERROR, next; while (defined (my $line = )) { while ($line =~ /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\) # 1 2 3 (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;| \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg) { my $all = $1; my ($lhs, $rhs) = ($2, $3); my ($free_opnd, $braced_free_opnd) = ($4, $5); my $non_NULL; if (!defined $rhs) { $non_NULL = $lhs } elsif (is_NULL $rhs) { $non_NULL = $lhs } elsif (is_NULL $lhs) { $non_NULL = $rhs } else { next } # Compare the non-NULL part of the "if" expression and the # free'd expression, without regard to white space. $non_NULL =~ tr/ \t//d; my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd; $e2 =~ tr/ \t//d; if ($non_NULL eq $e2) { $found_match = 1; $list and (print "$file\0"), next FILE; print "$file: $all\n"; } } } } continue { close FH; } $found_match && $err == EXIT_NO_MATCH and $err = EXIT_MATCH; exit $err; } my $foo = <<'EOF'; # The above is to *find* them. # This adjusts them, removing the unnecessary "if (p)" part. # FIXME: do something like this as an option (doesn't do braces): free=xfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0x3b -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s' # Use the following to remove redundant uses of kfree inside braces. # Note that -0777 puts perl in slurp-whole-file mode; # but we have plenty of memory, these days... free=kfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0777 -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms' Be careful that the result of the above transformation is valid. If the matched string is followed by "else", then obviously, it won't be. When modifying files, refuse to process anything other than a regular file. EOF ## Local Variables: ## mode: perl ## indent-tabs-mode: nil ## eval: (add-hook 'write-file-hooks 'time-stamp) ## time-stamp-start: "my $VERSION = '" ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" ## time-stamp-time-zone: "UTC" ## time-stamp-end: "'; # UTC" ## End: wdiff-1.2.1/build-aux/print-po.pl0000755000000000000000000000617611744500575013525 00000000000000#!/usr/bin/perl # print-po.pl - print translations in the order in which they appear in sources # Copyright (C) 2010 Free Software Foundation, Inc. # 2010 Martin von Gagern # # 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 3 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, see . =pod =head1 NAME print-po.pl - print translations in the order in which they appear in sources =head1 SYNOPSIS B I =head1 DESCRIPTION The script expects a list of po or pot files as command line arguments. For every source file mentioned in the C<#:> comments it prints all messages in the order in which they appear in the source file. The first column of the output gives the number of times a message was used, so that one can adjust the less-often used messages to match the style of the more often used ones. An C indicates a missing translation string, a C<-> a continuation line and a C<+> more than 9 occurrences of a message. Output will always be in UTF-8. =head1 HISTORY This script was originally written for GNU wdiff. Its main application is to check formatting of usage help screens. =head1 AUTHOR Written 2010 by Martin von Gagern =head1 COPYRIGHT Copyright (C) 2010 Free Software Foundation, Inc. Licensed under the GNU General Public License version 3 or later. =cut use strict; use warnings; use Encode; BEGIN { my $incdir = __FILE__; $incdir = '.' unless $incdir =~ s:/[^/]+$::; unshift @INC, $incdir; } use msgitm; binmode STDOUT, ':utf8'; for my $pofile (@ARGV) { my @po = msgitm->parse($pofile); print "========== $pofile ==========\n"; my %src = (); my %cnt = (); my $encoding = "utf8"; for my $itm (@po) { my $id = $itm->msgid; my $str = $itm->msgstr; $encoding = $1 if $id eq '' && $str =~ /; charset=(.*?)\\n/; $str = $id if $pofile =~ /\.pot$/; my @refs = $itm->srcrefs; my $cnt = scalar(@refs); for my $ref (@refs) { next unless $ref =~ /^(.*):(\d+)$/; my $file = $1; my $line = $2; push @{$src{$file}}, { line => $line, cnt => $cnt, id => $id, str => $str }; } } for my $file (sort keys %src) { print "---------- $file ($pofile) ----------\n"; for my $m (sort { $a->{line} <=> $b->{line} } @{$src{$file}}) { my $str = $m->{str}; my $cnt = $m->{cnt}; my $id = $m->{id}; $_ = $str; $_ = $id if $_ eq ''; $_ = decode($encoding, $_); s/(\\[\\nt"])/eval qq{"$1"}/eg; s/\n?$/\n/; s/^([^\n]{79})([^\n])/$1| !!! |$2/mg; s/^/-|/mg; s/^-/X/ if $str eq ''; $cnt = '+' if $cnt > 9; s/^-/$cnt/; print; } } } wdiff-1.2.1/build-aux/compile0000755000000000000000000001624512075577011012766 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: wdiff-1.2.1/build-aux/mdate-sh0000755000000000000000000001363712075577011013042 00000000000000#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2010-08-21.06; # UTC # Copyright (C) 1995-2013 Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 # # 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi case $1 in '') echo "$0: No file. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: mdate-sh [--help] [--version] FILE Pretty-print the modification day of FILE, in the format: 1 January 1970 Report bugs to . EOF exit $? ;; -v | --v*) echo "mdate-sh $scriptversion" exit $? ;; esac error () { echo "$0: $1" >&2 exit 1 } # Prevent date giving response in another language. LANG=C export LANG LC_ALL=C export LC_ALL LC_TIME=C export LC_TIME # GNU ls changes its time format in response to the TIME_STYLE # variable. Since we cannot assume 'unset' works, revert this # variable to its documented default. if test "${TIME_STYLE+set}" = set; then TIME_STYLE=posix-long-iso export TIME_STYLE fi save_arg1=$1 # Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then ls_command='ls -L -l -d' else ls_command='ls -l -d' fi # Avoid user/group names that might have spaces, when possible. if ls -n /dev/null 1>/dev/null 2>&1; then ls_command="$ls_command -n" fi # A 'ls -l' line looks as follows on OS/2. # drwxrwx--- 0 Aug 11 2001 foo # This differs from Unix, which adds ownership information. # drwxrwx--- 2 root root 4096 Aug 11 2001 foo # # To find the date, we split the line on spaces and iterate on words # until we find a month. This cannot work with files whose owner is a # user named "Jan", or "Feb", etc. However, it's unlikely that '/' # will be owned by a user whose name is a month. So we first look at # the extended ls output of the root directory to decide how many # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. set x`$ls_command /` # Find which argument is the month. month= command= until test $month do test $# -gt 0 || error "failed parsing '$ls_command /' output" shift # Add another shift to the command. command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac done test -n "$month" || error "failed parsing '$ls_command /' output" # Get the extended ls output of the file or directory. set dummy x`eval "$ls_command \"\\\$save_arg1\""` # Remove all preceding arguments eval $command # Because of the dummy argument above, month is in $2. # # On a POSIX system, we should have # # $# = 5 # $1 = file size # $2 = month # $3 = day # $4 = year or time # $5 = filename # # On Darwin 7.7.0 and 7.6.0, we have # # $# = 4 # $1 = day # $2 = month # $3 = year or time # $4 = filename # Get the month. case $2 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac case $3 in ???*) day=$1;; *) day=$3; shift;; esac # Here we have to deal with the problem that the ls output gives either # the time of day or the year. case $3 in *:*) set `date`; eval year=\$$# case $2 in Jan) nummonthtod=1;; Feb) nummonthtod=2;; Mar) nummonthtod=3;; Apr) nummonthtod=4;; May) nummonthtod=5;; Jun) nummonthtod=6;; Jul) nummonthtod=7;; Aug) nummonthtod=8;; Sep) nummonthtod=9;; Oct) nummonthtod=10;; Nov) nummonthtod=11;; Dec) nummonthtod=12;; esac # For the first six month of the year the time notation can also # be used for files modified in the last year. if (expr $nummonth \> $nummonthtod) > /dev/null; then year=`expr $year - 1` fi;; *) year=$3;; esac # The result. echo $day $month $year # 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: wdiff-1.2.1/build-aux/snippet/0000755000000000000000000000000012116513224013132 500000000000000wdiff-1.2.1/build-aux/snippet/warn-on-use.h0000644000000000000000000001200712116370307015401 00000000000000/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2013 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 3 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, see . */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. This macro is useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system : #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char ***rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") is like _GL_WARN_ON_USE (function, "string"), except that the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif wdiff-1.2.1/build-aux/snippet/arg-nonnull.h0000644000000000000000000000230012116370307015455 00000000000000/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2013 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 3 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, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif wdiff-1.2.1/build-aux/snippet/_Noreturn.h0000644000000000000000000000046212116370307015203 00000000000000#if !defined _Noreturn && __STDC_VERSION__ < 201112 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif wdiff-1.2.1/build-aux/snippet/c++defs.h0000644000000000000000000002675312116370307014455 00000000000000/* C++ compatible function declaration macros. Copyright (C) 2010-2013 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 3 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, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ rettype (*const func) parameters = ::rpl_func; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ rettype (*const func) parameters = \ reinterpret_cast(::rpl_func); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* If we were to write rettype (*const func) parameters = ::func; like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls better (remove an indirection through a 'static' pointer variable), but then the _GL_CXXALIASWARN macro below would cause a warning not only for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = ::func; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = \ reinterpret_cast(::func); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = \ reinterpret_cast( \ (rettype2(*)parameters2)(::func)); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ wdiff-1.2.1/build-aux/depcomp0000755000000000000000000005570312075577011012767 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-10-18.11; # UTC # Copyright (C) 1999-2013 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, see . # 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 outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} 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" # Avoid interferences from the environment. gccflag= dashmflag= # 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 cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc 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. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## 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). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - 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 -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # 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. ## 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. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -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 -ne 0; then 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 ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # 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 ;; 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. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then 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" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; 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. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies 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$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # 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 ;; #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 "X$1" != 'X--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|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | 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 "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi 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. -arch) eat=yes ;; -*|$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" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | 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 "X$1" != 'X--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. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # 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 ;; 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: wdiff-1.2.1/build-aux/config.rpath0000755000000000000000000004443512116370307013715 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2013 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # 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. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # 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. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU/*) eval $set_cc_for_build cat <<-EOF > $dummy.c #include #ifdef __UCLIBC__ # ifdef __UCLIBC_CONFIG_VERSION__ LIBC=uclibc __UCLIBC_CONFIG_VERSION__ # else LIBC=uclibc # endif #else # ifdef __dietlibc__ LIBC=dietlibc # else LIBC=gnu # endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: wdiff-1.2.1/build-aux/texinfo.tex0000644000000000000000000116655512075577011013621 00000000000000% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2012-11-08.11} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, % 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. % % This texinfo.tex file 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 3 of the % License, or (at your option) any later version. % % This texinfo.tex file 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, see . % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without % restriction. (This has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or % http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or % http://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. % % The GNU Texinfo home page is http://www.gnu.org/software/texinfo. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{l.\the\inputlineno:\space} \fi % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi % Since the category of space is not known, we have to be careful. \chardef\spacecat = 10 \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. \chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! \chardef\hashChar = `\# \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make % some effort to order the tracing commands to reduce output in the log % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \def\loggingall{% \tracingstats2 \tracingpages1 \tracinglostchars2 % 2 gives us more in etex \tracingparagraphs1 \tracingoutput1 \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % @errormsg{MSG}. Do the index-like expansions on MSG, but if things % aren't perfect, it's not the end of the world, being an error message, % after all. % \def\errormsg{\begingroup \indexnofonts \doerrormsg} \def\doerrormsg#1{\errmessage{#1}} % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi\fi} \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. The solution is % described on page 260 of The TeXbook. It involves outputting two % marks for the sectioning macros, one before the section break, and % one after. I won't pretend I can describe this better than DEK... \def\domark{% \toks0=\expandafter{\lastchapterdefs}% \toks2=\expandafter{\lastsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\lastcolordefs}% \mark{% \the\toks0 \the\toks2 \noexpand\or \the\toks4 \the\toks6 \noexpand\else \the\toks8 }% } % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\topmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\topmark\fi} % Avoid "undefined control sequence" errors. \def\lastchapterdefs{} \def\lastsectiondefs{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\lastcolordefs{} % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; % it needs to be % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \vskip-\topandbottommargin \vtop to0pt{% \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vss}% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \vbox to0pt{\vss \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% }% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} % % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my % favourite TeX trick. --kasal, 16nov03 \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } \def\doparseargdef#1#2{% \def#2{\parsearg#1}% \def#1##1% } % Several utility definitions with active space: { \obeyspaces \gdef\obeyedspace{ } % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % \gdef\sepspaces{\obeyspaces\let =\tie} % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\leavevmode \penalty \@M \ ). \gdef\unsepspaces{\let =\space} } \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} % Define the framework for environments in texinfo.tex. It's used like this: % % \envdef\foo{...} % \def\Efoo{...} % % It's the responsibility of \envdef to insert \begingroup before the % actual body; @end closes the group after calling \Efoo. \envdef also % defines \thisenv, so the current environment is known; @end checks % whether the environment name matches. The \checkenv macro can also be % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they % are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty outside of any environment% \else in environment \expandafter\string#1% \fi } % @end foo executes the definition of \Efoo. % But first, it executes a specialized version of \checkenv % \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\unskip\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. \def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. % \def\onword{on} \def\offword{off} % \parseargdef\frenchspacing{% \def\temp{#1}% \ifx\temp\onword \plainfrenchspacing \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % % Another complication is that the group might be very large. This can % cause the glue on the previous page to be unduly stretched, because it % does not have much material. In this case, it's better to add an % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). % \newbox\groupbox \def\vfilllimit{0.7} % \envdef\group{% \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi \startsavinginserts % \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % The \vtop produces a box with normal height and large depth; thus, TeX puts % \baselineskip glue before it, and (when the next line of text is done) % \lineskip glue after it. Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% % To get correct interline space between the last line of the group % and the first line afterwards, we have to propagate \prevdepth. \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). \dimen2 = \pageheight \advance\dimen2 by -\pagetotal % if the group doesn't fit on the current page, and it's a big big % group, force a page break. \ifdim \dimen0 > \dimen2 \ifdim \pagetotal < \vfilllimit\pageheight \page \fi \fi \box\groupbox \prevdepth = \dimen1 \checkinserts } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break (and is undocumented). \let\br = \par % @page forces the start of a new page. % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion % class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} % \def\doinmargin#1#2{\strut\vadjust{% \nobreak \kern-\strutdepth \vtop to \strutdepth{% \baselineskip=\strutdepth \vss % if you have multiple lines of stuff to put here, you'll need to % make the vbox yourself of the appropriate size. \ifx#1l% \llap{\ignorespaces #2\hskip\inmarginspacing}% \else \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% \fi \null }% }} \def\inleftmargin{\doinmargin l} \def\inrightmargin{\doinmargin r} % % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). % \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% \else \def\lefttext{#1}% have only one text \def\righttext{#1}% \fi % \ifodd\pageno \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin \else \def\temp{\inleftmargin\lefttext}% \fi \temp } % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the % change spans more than two lines of output. To handle that, we would % have adopt a much more difficult approach (putting marks into the main % vertical list for the beginning and end of each change). This command % is not documented, not supported, and doesn't work. % \def\|{% % \vadjust can only be used in horizontal mode. \leavevmode % % Append this vertical mode material after the current line in the output. \vadjust{% % We want to insert a rule with the height and depth of the current % leading; that is exactly what \strutbox is supposed to record. \vskip-\baselineskip % % \vadjust-items are inserted at the left edge of the type. So % the \llap here moves out into the left-hand margin. \llap{% % % For a thicker or thinner bar, change the `1pt'. \vrule height\baselineskip width1pt % % This is the space between the bar and the text. \hskip 12pt }% }% } % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} % \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\centersub\centerH \else \let\centersub\centerV \fi \centersub{\hfil \ignorespaces#1\unskip \hfil}% \let\centersub\relax % don't let the definition persist, just in case } \def\centerH#1{{% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }} % \newcount\centerpenalty \def\centerV#1{% % The idea here is the same as in \startdefun, \cartouche, etc.: if % @center is the first thing after a section heading, we need to wipe % out the negative parskip inserted by \sectionheading, but still % prevent a page break here. \centerpenalty = \lastpenalty \ifnum\centerpenalty>10000 \vskip\parskip \fi \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi \line{\kern\leftskip #1\kern\rightskip}% } % @sp n outputs n lines of vertical space % \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment % \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} % \let\c=\comment % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % NCHARS can also be the word `asis' or `none'. % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @firstparagraphindent WORD % If WORD is `none', then suppress indentation of the first paragraph % after a section heading. If WORD is `insert', then do indent at such % paragraphs. % % The paragraph indentation is suppressed or not by calling % \suppressfirstparagraphindent, which the sectioning commands do. % We switch the definition of this back and forth according to WORD. % By default, we suppress indentation. % \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} \def\insertword{insert} % \parseargdef\firstparagraphindent{% \def\temp{#1}% \ifx\temp\noneword \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent \else\ifx\temp\insertword \let\suppressfirstparagraphindent = \relax \else \errhelp = \EMsimple \errmessage{Unknown @firstparagraphindent option `\temp'}% \fi\fi } % Here is how we actually suppress indentation. Redefine \everypar to % \kern backwards by \parindent, and then reset itself to empty. % % We also make \indent itself not actually do anything until the next % paragraph. % \gdef\dosuppressfirstparagraphindent{% \gdef\indent{% \restorefirstparagraphindent \indent }% \gdef\noindent{% \restorefirstparagraphindent \noindent }% \global\everypar = {% \kern -\parindent \restorefirstparagraphindent }% } \gdef\restorefirstparagraphindent{% \global \let \indent = \ptexindent \global \let \noindent = \ptexnoindent \global \everypar = {}% } % @refill is a no-op. \let\refill=\relax % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate (before @setfilename). % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. \openin 1 texinfo.cnf \ifeof 1 \else \input texinfo.cnf \fi \closein 1 % \comment % Ignore the actual filename. } % Called from \setfilename. % \def\openindices{% \newindex{cp}% \newcodeindex{fn}% \newcodeindex{vr}% \newcodeindex{tp}% \newcodeindex{ky}% \newcodeindex{pg}% } % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 % can be set). So we test for \relax and 0 as well as being undefined. \ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi % PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and % related messages. The final outcome is that it is up to the TeX user % to double the backslashes and otherwise make the string valid, so % that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to % do this reliably, so we use it. % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% \ifx\pdfescapestring\thisisundefined % No primitive available; should we give a warning or log? % Many times it won't matter. \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#1}}% \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros based on pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % k sets the color for filling (usual text, etc.); % K sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\pdfimgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \pdfimagewidth \fi \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} % \def\pdfmkdest#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \turnoffactive \makevalueexpandable \def\pdfdestname{#1}% \txiescapepdf\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. \def\urlcolor{\rgbDarkRed} \def\linkcolor{\rgbDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \edef\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else \txiescapepdf\pdfoutlinedest \fi % % Also escape PDF chars in the display string. \edef\pdfoutlinetext{#1}% \txiescapepdf\pdfoutlinetext % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Read toc silently, to get counts of subentries for \pdfoutline. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% \def\thissubsecnum{##2}% }% \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% \def\thischapnum{0}% \def\thissecnum{0}% \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. \def\appentry{\numchapentry}% \def\appsecentry{\numsecentry}% \def\appsubsecentry{\numsubsecentry}% \def\appsubsubsecentry{\numsubsubsecentry}% \def\unnchapentry{\numchapentry}% \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of % subentries, which we calculated on our first read of the .toc above. % % We use the node names as the destinations. \def\numchapentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% count is always zero \dopdfoutline{##1}{}{##3}{##4}}% % % PDF outlines are displayed using system fonts, instead of % document fonts. Therefore we cannot use special characters, % since the encoding is unknown. For example, the eogonek from % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % % TODO this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Too % much work for too little return. Just use the ASCII equivalents % we use for the index sort strings. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput \message{fonts,} % Change the current font style to #1, remembering it in \curfontstyle. % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in % italics, not bold italics. % \def\setfontstyle#1{% \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. \csname ten#1\endcsname % change the current font } % Select #1 fonts with the current style. % \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}} % Unfortunately, we have to override this for titles and the like, since % in those cases "rm" is bold. Sigh. \def\rmisbold{\rm\def\curfontstyle{bf}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam \def\sf{\fam=\sffam \setfontstyle{sf}} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named \fontprefix#2. % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). % Example: % #1 = \textrm % #2 = \rmshape % #3 = 10 % #4 = \mainmagstep % #5 = OT1 % \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % % (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} % Definitions for a main text size of 11pt. (The default in Texinfo.) % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm } % end of 11pt text font size definitions, \definetextfontsizexi % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acro in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} \divide\parskip by 2 % reduce space between paragraphs \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm } % end of 10pt text font size definitions, \definetextfontsizex % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xiword{11} \def\xword{10} \def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts except % in the main text, we don't bother to reset \scriptfont and % \scriptscriptfont (which would also require loading a lot more fonts). % \def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf \textfont\ttfam=\tentt \textfont\sffam=\tensf } % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this because \STYLE needs to also set the % current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire % \tenSTYLE to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used in % the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{27pt}} \def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts \def\reducedfonts{% \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi \message{markup,} % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will % define and register \INITMACRO to be called on markup style changes. % \INITMACRO can check \currentmarkupstyle for the innermost % style and the set of \ifmarkupSTYLE switches for all styles % currently in effect. \newif\ifmarkupvar \newif\ifmarkupsamp \newif\ifmarkupkey %\newif\ifmarkupfile % @file == @samp. %\newif\ifmarkupoption % @option == @samp. \newif\ifmarkupcode \newif\ifmarkupkbd %\newif\ifmarkupenv % @env == @code. %\newif\ifmarkupcommand % @command == @code. \newif\ifmarkuptex % @tex (and part of @math, for now). \newif\ifmarkupexample \newif\ifmarkupverb \newif\ifmarkupverbatim \let\currentmarkupstyle\empty \def\setupmarkupstyle#1{% \csname markup#1true\endcsname \def\currentmarkupstyle{#1}% \markupstylesetup } \let\markupstylesetup\empty \def\defmarkupstylesetup#1{% \expandafter\def\expandafter\markupstylesetup \expandafter{\markupstylesetup #1}% \def#1% } % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } { \catcode`\'=\active \catcode`\`=\active \gdef\markupsetuplqdefault{\let`\lq} \gdef\markupsetuprqdefault{\let'\rq} \gdef\markupsetcodequoteleft{\let`\codequoteleft} \gdef\markupsetcodequoteright{\let'\codequoteright} } \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright % \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright % \let\markupsetuplqkbd \markupsetcodequoteleft \let\markupsetuprqkbd \markupsetcodequoteright % \let\markupsetuplqsamp \markupsetcodequoteleft \let\markupsetuprqsamp \markupsetcodequoteright % \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright % \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it % works for pasting with more pdf viewers (at least evince), the % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi } % Commands to set the quote options. % \parseargdef\codequoteundirected{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequoteundirected\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequoteundirected\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% \fi\fi } % \parseargdef\codequotebacktick{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequotebacktick\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequotebacktick\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% \fi\fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Font commands. % #1 is the font command (\sl or \it), #2 is the text to slant. % If we are in a monospaced environment, however, 1) always use \ttsl, % and 2) do not add an italic correction. \def\dosmartslant#1#2{% \ifusingtt {{\ttsl #2}\let\next=\relax}% {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% \next } \def\smartslanted{\dosmartslant\sl} \def\smartitalic{\dosmartslant\it} % Output an italic correction unless \next (presumed to be the following % character) is such as not to need one. \def\smartitaliccorrection{% \ifx\next,% \else\ifx\next-% \else\ifx\next.% \else\ptexslash \fi\fi\fi \aftersmartic } % Unconditional use \ttsl, and no ic. @var is set to this for defuns. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \def\aftersmartic{} \def\var#1{% \let\saveaftersmartic = \aftersmartic \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% \smartslanted{#1}% } \let\i=\smartitalic \let\slanted=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other \def\endofsentencespacefactor{3000}% default % @t, explicit typewriter. \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} % @indicateurl is \samp, that is, with quotes. \let\indicateurl=\samp % @code (and similar) prints in typewriter, but with spaces the same % size as normal in the surrounding text, without hyphenation, etc. % This is a subroutine for that. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. % -- rms. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setupmarkupstyle{code}% % The following should really be moved into \setupmarkupstyle handlers. \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\realdash \let_\realunder \fi \codex } } \def\codex #1{\tclose{#1}\endgroup} \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}% } % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} \def\keywordfalse{false} \parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } % For @command, @env, @file, @option quotes seem unnecessary, % so use \code rather than \samp. \let\command=\code \let\env=\code \let\file=\code \let\option=\code % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url % itself. First (mandatory) arg is the url. % (This \urefnobreak definition isn't used now, leaving it for a while % for comparison.) \def\urefnobreak#1{\dourefnobreak #1,,,\finish} \def\dourefnobreak#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url \fi \else \code{#1}% only url given, so show it \fi \fi \endlink \endgroup} % This \urefbreak definition is the active one. \def\urefbreak{\begingroup \urefcatcodes \dourefbreak} \let\uref=\urefbreak \def\dourefbreak#1{\urefbreakfinish #1,,,\finish} \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url \fi \else \urefcode{#1}% only url given, so show it \fi \fi \endlink \endgroup} % Allow line breaks around only a few characters (only). \def\urefcatcodes{% \catcode\ampChar=\active \catcode\dotChar=\active \catcode\hashChar=\active \catcode\questChar=\active \catcode\slashChar=\active } { \urefcatcodes % \global\def\urefcode{\begingroup \setupmarkupstyle{code}% \urefcatcodes \let&\urefcodeamp \let.\urefcodedot \let#\urefcodehash \let?\urefcodequest \let/\urefcodeslash \codex } % % By default, they are just regular characters. \global\def&{\normalamp} \global\def.{\normaldot} \global\def#{\normalhash} \global\def?{\normalquest} \global\def/{\normalslash} } % we put a little stretch before and after the breakable chars, to help % line breaking of long url's. The unequal skips make look better in % cmtt at least, especially for dots. \def\urefprestretch{\urefprebreak \hskip0pt plus.13em } \def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } % \def\urefcodeamp{\urefprestretch \&\urefpoststretch} \def\urefcodedot{\urefprestretch .\urefpoststretch} \def\urefcodehash{\urefprestretch \#\urefpoststretch} \def\urefcodequest{\urefprestretch ?\urefpoststretch} \def\urefcodeslash{\futurelet\next\urefcodeslashfinish} { \catcode`\/=\active \global\def\urefcodeslashfinish{% \urefprestretch \slashChar % Allow line break only after the final / in a sequence of % slashes, to avoid line break between the slashes in http://. \ifx\next/\else \urefpoststretch \fi } } % One more complication: by default we'll break after the special % characters, but some people like to break before the special chars, so % allow that. Also allow no breaking at all, for manual control. % \parseargdef\urefbreakstyle{% \def\txiarg{#1}% \ifx\txiarg\wordnone \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordbefore \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordafter \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} \else \errhelp = \EMsimple \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% \fi\fi\fi } \def\wordafter{after} \def\wordbefore{before} \def\wordnone{none} \urefbreakstyle after % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \let\email=\uref \fi % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct'. \kbdinputstyle distinct % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} \def\xkey{\key} \def\kbdsub#1#2#3\par{% \def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi } % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setupmarkupstyle{key}% \nohyphenation \ifmonospace\else\tt\fi #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { \catcode`\_ = \active \gdef\mathunderscore{% \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a math (or tt) \. % FYI, plain.tex uses \\ as a temporary control sequence (for no % particular reason), but this is not advertised and we don't care. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex \mathunderscore \let\\ = \mathbackslash \mathactive % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot $\finishmath } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. % We have to reset their definitions in case the @math was an argument % to a command which sets the catcodes (such as @item or @section). % { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % ctrl is no longer a Texinfo command, but leave this definition for fun. \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % \long\def\inlinefmt#1{\doinlinefmt #1,\finish} \long\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } % For raw, must switch into @tex before parsing the argument, to avoid % setting catcodes prematurely. Doing it this way means that, for % example, @inlineraw{html, foo{bar} gets a parse error instead of being % ignored. But this isn't important because if people want a literal % *right* brace they would have to use a command anyway, so they may as % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % \long\def\inlineraw{\tex \doinlineraw} \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi \endgroup % close group opened by \tex. } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. % Unless we're in typewriter, use \ecfont because the CM text fonts do % not have braces, and we don't want to switch into math. \def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} \def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} \let\{=\mylbrace \let\lbracechar=\{ \let\}=\myrbrace \let\rbracechar=\} \begingroup % Definitions to produce \{ and \} commands for indices, % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other !gdef!lbracecmd[\{]% !gdef!rbracecmd[\}]% !gdef!lbraceatcmd[@{]% !gdef!rbraceatcmd[@}]% !endgroup % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \ptexc \let\dotaccent = \ptexdot \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \ptext \let\ubaraccent = \ptexb \let\udotaccent = \d % Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} \def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{% \ifx\textnominalsize\xwordpt % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. % Revert to plain's \scriptsize, which is 7pt. \count255=\the\fam $\fam\count255 \scriptstyle A$% \else % For 11pt, we can use our lllsize. \selectfonts\lllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. \def\bullet{$\ptexbullet$} \def\geq{\ifmmode \ge\else $\ge$\fi} \def\leq{\ifmmode \le\else $\le$\fi} \def\minus{\ifmmode -\else $-$\fi} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % \def\error{\leavevmode\lower.7ex\copy\errorbox} % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} % @euro{} comes from a separate font, depending on the current style. % We use the free feym* fonts from the eurosym package by Henrik % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. % % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifmonospace % typewriter: \font\thisecfont = ectt\ecsize \space at \nominalsize \else \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quotedblleft="5C \chardef\quotedblright=`\" \chardef\quoteleft=`\` \chardef\quoteright=`\' \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % Do an implicit @contents or @shortcontents after @end titlepage if the % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. % \newif\ifsetcontentsaftertitlepage \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \parseargdef\shorttitlepage{% \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \let\page = \oldpage \page \null }% } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % Need this before the \...aftertitlepage checks so that if they are % in effect the toc pages will come out with page numbers. \HEADINGSon % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage \shortcontents \contents \global\let\shortcontents = \relax \global\let\contents = \relax \fi % \ifsetcontentsaftertitlepage \contents \global\let\contents = \relax \global\let\shortcontents = \relax \fi } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Settings used for typesetting titles: no hyphenation, no indentation, % don't worry much about spacing, ragged right. This should be used % inside a \vbox, and fonts need to be set appropriately first. Because % it is always used for titles, nothing else, we call \rmisbold. \par % should be specified before the end of the \vbox, since a vbox is a group. % \def\raggedtitlesettings{% \rmisbold \hyphenpenalty=10000 \parindent=0pt \tolerance=5000 \ptexraggedright } % Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt } \parseargdef\subtitle{% \checkenv\titlepage {\subtitlefont \rightline{#1}}% } % @author should come last, but may come many times. % It can also be used inside @quotation. % \parseargdef\author{% \def\temp{\quotation}% \ifx\thisenv\temp \def\quotationauthor{#1}% printed in \Equotation. \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi {\secfonts\rmisbold \leftline{#1}}% \fi } % Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} \def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddheading{\parsearg\oddheadingxxx} \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} \def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \def\evenfooting{\parsearg\evenfootingxxx} \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} \def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddfooting{\parsearg\oddfootingxxx} \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} \def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\pageheight by -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \def\headings #1 {\csname HEADINGS#1\endcsname} \def\headingsoff{% non-global headings elimination \evenheadline={\hfil}\evenfootline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting \HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. However, if % what follows is an environment such as @example, there will be no % \parskip glue; then the negative vskip we just inserted would % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a list environment}} \def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% \tablecheck{vtable}% } \def\tablecheck#1{% \ifnum \the\catcode`\^^M=\active \endgroup \errmessage{This command won't work in this context; perhaps the problem is that we are \inenvironment\thisenv}% \def\next{\doignore{#1}}% \else \let\next\tablex \fi \next } \def\tablex#1{% \def\itemindicate{#1}% \parsearg\tabley } \def\tabley#1{% {% \makevalueexpandable \edef\temp{\noexpand\tablez #1\space\space\space}% \expandafter }\temp \endtablez } \def\tablez #1 #2 #3 #4\endtablez{% \aboveenvbreak \ifnum 0#1>0 \advance \leftskip by #1\mil \fi \ifnum 0#2>0 \tableindent=#2\mil \fi \ifnum 0#3>0 \advance \rightskip by #3\mil \fi \itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi \let\item = \internalBitem \let\itemx = \internalBitemx } \def\Etable{\endgraf\afterenvbreak} \let\Eftable\Etable \let\Evtable\Etable \let\Eitemize\Etable \let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \envdef\itemize{\parsearg\doitemize} \def\doitemize#1{% \aboveenvbreak \itemmax=\itemindent \advance\itemmax by -\itemmargin \advance\leftskip by \itemindent \exdentamount=\itemindent \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi % % Try typesetting the item mark that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \vadjust{\penalty 1200}}% not good to break after first line of item. \flushcr } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a . % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab do not need to be on their own lines, but it will not hurt % if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the @columnfraction, usually a decimal number like .5, but might % be just 1. We just use it, whatever it is. % \def\pickupwholefraction#1 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % multitable-only commands. % % @headitem starts a heading row, which we typeset in bold. % Assignments have to be global since we are inside the implicit group % of an alignment entry. \everycr resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until % we again encounter the problem the 1sp was intended to solve. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % \newtoks\everytab % insert after every tab. % \envdef\multitable{% \vskip\parskip \startsavinginserts % % @item within a multitable starts a normal row. % We use \def instead of \let so that if one of the multitable entries % contains an @itemize, we don't choke on the \item (seen as \crcr aka % \endtemplate) expanding \doitemize. \def\item{\crcr}% % \tolerance=9500 \hbadness=9500 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% \global\colcount=0 % Reset the column counter. % Check for saved footnotes, etc. \checkinserts % Keeps underfull box messages off when table breaks over pages. %\filbreak % Maybe so, but it also creates really weird page breaks when the % table breaks over pages. Wouldn't \vfil be better? Wait until the % problem manifests itself, so it can be fixed for real --karl. }% }% % \parsearg\domultitable } \def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup &% \global\advance\colcount by 1 \multistrut \vtop{% % Use the current \colcount to find the correct column width: \hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively % marking characters. \noindent\ignorespaces##\unskip\multistrut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \def\setmultitablespacing{% \def\multistrut{\strut}% just use the standard line spacing % % Compute \multitablelinespace (if not defined by user) for use in % \multitableparskip calculation. We used define \multistrut based on % this, but (ironically) that caused the spacing to be off. % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi % Test to see if parskip is larger than space between lines of % table. If not, do nothing. % If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi} \message{conditionals,} % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, % @ifnotxml always succeed. They currently do nothing; we don't % attempt to check whether the conditionals are properly nested. But we % have to remember that they are conditionals, so that @end doesn't % attempt to close an environment group. % \def\makecond#1{% \expandafter\let\csname #1\endcsname = \relax \expandafter\let\csname iscond.#1\endcsname = 1 } \makecond{iftex} \makecond{ifnotdocbook} \makecond{ifnothtml} \makecond{ifnotinfo} \makecond{ifnotplaintext} \makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} \def\documentdescription{\doignore{documentdescription}} \def\docbook{\doignore{docbook}} \def\html{\doignore{html}} \def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} \def\ifxml{\doignore{ifxml}} \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} % Ignore text until a line `@end #1', keeping track of nested conditionals. % % A count to remember the depth of nesting. \newcount\doignorecount \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\- = \active \catcode`\_ = \active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\realdash \let_\normalunderscore } } % We have this subroutine so that we can handle at least some @value's % properly in indexes (we call \makevalueexpandable in \indexdummies). % The command has to be fully expandable (if the variable is set), since % the result winds up in the index file. This means that if the % variable's value contains other Texinfo commands, it's almost certain % it will fail (although perhaps we could fix that with sufficient work % to do a one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get special treatment of `@end ifset,' call \makeond and the redefine. % \makecond{ifset} \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} \def\doifset#1#2{% {% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname SET#2\endcsname\relax #1% If not set, redefine \next. \fi \expandafter }\next } \def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end executes the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the % above code: if the variable is not set, do nothing, if it is set, % then redefine \next to \ifclearfail. % \makecond{ifclear} \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written % without the @) is in fact defined. We can only feasibly check at the % TeX level, so something like `mathcode' is going to considered % defined even though it is not a Texinfo command. % \makecond{ifcommanddefined} \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} % \def\doifcmddefined#1#2{{% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname #2\endcsname\relax #1% If not defined, \let\next as above. \fi \expandafter }\next } \def\ifcmddefinedfail{\doignore{ifcommanddefined}} % @ifcommandnotdefined CMD ... handled similar to @ifclear above. \makecond{ifcommandnotdefined} \def\ifcommandnotdefined{% \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} % Set the `txicommandconditionals' variable, so documents have a way to % test if the @ifcommand...defined conditionals are available. \set txicommandconditionals % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that % \fooindex ...rest of line... puts an entry in the index foo. % It also defines \fooindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 % Open the file \fi \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. % \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. % \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), % #3 the target index (bar). \def\dosynindex#1#2#3{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. \expandafter \ifx\csname donesynindex#2\endcsname \relax % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname \expandafter\let\csname donesynindex#2\endcsname = 1 \fi % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname \expandafter\let\csname#2indfile\endcsname=\temp % redefine \fooindex: \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } % Define \doindex, the driver for all \fooindex macros. % Argument #1 is generated by the calling \fooindex macro, % and it is "foo", the name of the index. % \doindex just uses \parsearg; it calls \doind for the actual work. % This is because \doind is more useful to call from other macros. % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} % Take care of Texinfo commands that can appear in an index entry. % Since there are some commands we want to expand, and others we don't, % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % % Need these unexpandable (because we define \tt as a dummy) % definitions when @{ or @} appear in index entry text. Also, more % complicated, when \tex is in effect and \{ is a \delimiter again. % We can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. Perhaps we % should define @lbrace and @rbrace commands a la @comma. \def\{{{\tt\char123}}% \def\}{{\tt\char125}}% % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts % causes processing to be prematurely terminated. This is, % apparently, because \indexsorttmp is fully expanded, and \endinput % is an expandable command. The redefinition below makes \endinput % disappear altogether for that purpose -- although logging shows that % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} % @findex xyz % @end macro % ... % @funindex commtest % % The above is not enough to reproduce the bug, but it gives the flavor. % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} % % So: \let\endinput = \empty % % Do the redefinitions. \commondummies } % For the aux and toc files, @ is the escape character. So we want to % redefine everything using @ as the escape character (instead of % \realbackslash, still used for index files). When everything uses @, % this will be simpler. % \def\atdummies{% \def\@{@@}% \def\ {@ }% \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % % Do the redefinitions. \commondummies \otherbackslash } % Called from \indexdummies and \atdummies. % \def\commondummies{% % % \definedummyword defines \#1 as \string\#1\space, thus effectively % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. % % For control letters, we have \definedummyletter, which omits the % space. % % These can be used both for control words that take an argument and % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % \def\definedummyword ##1{\def##1{\string##1\space}}% \def\definedummyletter##1{\def##1{\string##1}}% \let\definedummyaccent\definedummyletter % \commondummiesnofonts % \definedummyletter\_% \definedummyletter\-% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\lbracechar \definedummyword\leq \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\rbracechar \definedummyword\result \definedummyword\textdegree % % We want to disable all macros so that they are not expanded by \write. \macrolist % \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % \def\commondummiesnofonts{% % Control letters and accents. \definedummyletter\!% \definedummyaccent\"% \definedummyaccent\'% \definedummyletter\*% \definedummyaccent\,% \definedummyletter\.% \definedummyletter\/% \definedummyletter\:% \definedummyaccent\=% \definedummyletter\?% \definedummyaccent\^% \definedummyaccent\`% \definedummyaccent\~% \definedummyword\u \definedummyword\v \definedummyword\H \definedummyword\dotaccent \definedummyword\ogonek \definedummyword\ringaccent \definedummyword\tieaccent \definedummyword\ubaraccent \definedummyword\udotaccent \definedummyword\dotless % % Texinfo font commands. \definedummyword\b \definedummyword\i \definedummyword\r \definedummyword\sansserif \definedummyword\sc \definedummyword\slanted \definedummyword\t % % Commands that take arguments. \definedummyword\abbr \definedummyword\acronym \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file \definedummyword\image \definedummyword\indicateurl \definedummyword\inforef \definedummyword\kbd \definedummyword\key \definedummyword\math \definedummyword\option \definedummyword\pxref \definedummyword\ref \definedummyword\samp \definedummyword\strong \definedummyword\tie \definedummyword\uref \definedummyword\url \definedummyword\var \definedummyword\verb \definedummyword\w \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % \def\indexnofonts{% % Accent commands should become @asis. \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |, etc. % Likewise with the other plain tex font commands. %\let\tt=\asis % \def\ { }% \def\@{@}% \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % % Unfortunately, texindex is not prepared to handle braces in the % content at all. So for index sorting, we map @{ and @} to strings % starting with |, since that ASCII character is between ASCII { and }. \def\{{|a}% \def\lbracechar{|a}% % \def\}{|b}% \def\rbracechar{|b}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\expansion{==>}% \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% \def\quotedblright{"}% \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% \def\registeredsymbol{R}% \def\result{=>}% \def\textdegree{o}% % \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax \else \indexlquoteignore \fi % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist } % Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us % ignore left quotes in the sort term. {\catcode`\`=\active \gdef\indexlquoteignore{\let`=\empty}} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % Most index entries go through here, but \dosubind is the general case. % #1 is the index name, #2 is the entry text. \def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % empty if called from \doind, as we usually are (the main exception % is with most defuns, which call us directly). % \def\dosubind#1#2#3{% \iflinks {% % Store the main index entry text (including the third arg). \toks0 = {#2}% % If third arg is present, precede it with a space. \def\thirdarg{#3}% \ifx\thirdarg\empty \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % \edef\writeto{\csname#1indfile\endcsname}% % \safewhatsit\dosubindwrite }% \fi } % Write the entry in \toks0 to the index file: % \def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % % Process the index entry with all font commands turned off, to % get the string to sort by. {\indexnofonts \edef\temp{\the\toks0}% need full expansion \xdef\indexsorttmp{\temp}% }% % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the % subentry case), texindex reduces to two when writing the .??s % sorted result. \edef\temp{% \write\writeto{% \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% \temp } % Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{\ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 \openin 1 \jobname.#1s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \else % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \temp \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns \input \jobname.#1s \enddoublecolumns \fi \fi \closein 1 \endgroup} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. \def\initial#1{{% % Some minor font changes for the special characters. \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt % % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. \nobreak \vskip 0pt plus 3\baselineskip \penalty 0 \vskip 0pt plus -3\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip }} % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % % A straightforward implementation would start like this: % \def\entry#1#2{... % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% \begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % Do not fill out the last line with white space. \parfillskip = 0in % % No extra space above this paragraph. \parskip = 0in % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % \hangindent is only relevant when the entry text and page number % don't both fit on one line. In that case, bob suggests starting the % dots pretty far over on the line. Unfortunately, a large % indentation looks wrong when the entry text itself is broken across % lines. So we use a small indentation and put up with long leaders. % % \hangafter is reset to 1 (which is the value we want) at the start % of each paragraph, so we need not do anything with that. \hangindent = 2em % % When the entry text needs to be broken, just fill out the first line % with blank space. \rightskip = 0pt plus1fil % % A bit of stretch before each entry for the benefit of balancing % columns. \vskip 0pt plus1pt % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% \def\entrybreak{\hfil\break}% % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. } \def\finishentry#1{% % #1 is the page number. % % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \setbox\boxA = \hbox{#1}% \ifdim\wd\boxA = 0pt \ % \else % % If we must, put the page number on a line of its own, and fill out % this line with blank space. (The \hfil is overwhelmed with the % fill leaders glue in \indexdotfill if the page number does fit.) \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % % The `\ ' here is removed by the implicit \unskip that TeX does as % part of (the primitive) \par. Without it, a spurious underfull % \hbox ensues. \ifpdf \pdfgettoks#1.% \ \the\toksA \else \ #1% \fi \fi \par \endgroup } % Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary#1#2{{% \parfillskip=0in \parskip=0in \hangindent=1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else #2 \fi \par }} % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. \output = {% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case we just ship out what is in \partialpage with the normal % output routine. Generally, \partialpage will be empty when this % runs and this will be a no-op. See the indexspread.tex test case. \ifvoid\partialpage \else \onepageout{\pagecontents\partialpage}% \fi % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% }% \eject % run that output routine to set \partialpage % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \vsize = 2\vsize } % The double-column output routine for all double-column pages except % the last. % \def\doublecolumnout{% \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty } % % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } % % All done with double columns. \def\enddoublecolumns{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \pageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. \balancecolumns % % If we end up splitting too much material for the current page, % though, there will be another page break right after this \output % invocation ends. Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. (We hope \balancecolumns will never be % called on to balance too much material, but if it is, this makes % the output somewhat more palatable.) \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize (after the % \endgroup where \vsize got restored). \pagegoal = \vsize } % % Called at the end of the double column material. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% \splittopskip = \topskip % Loop until we get a decent breakpoint. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by 1pt \repeat }% %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% % \pagesofar } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % Let's start with @part. \outer\parseargdef\part{\partzzz{#1}} \def\partzzz#1{% \chapoddpage \null \vskip.3\vsize % move it down on the page a bit \begingroup \noindent \titlefonts\rmisbold #1\par % the text \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page \chapoddpage \endgroup } % \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 % chapters, we're in trouble anyway, I'm sure.) \newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % % \def\appendixletter{\char\the\appendixno} % We do the following ugly conditional instead of the above simple % construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. % \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achieve this, remember the "biggest" unnum. sec. we are currently in: \chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. \def\chapheadtype{N} % Choose a heading macro % #1 is heading type % #2 is heading level % #3 is text for heading \def\genhead#1#2#3{% % Compute the abs. sec. level: \absseclevel=#2 \advance\absseclevel by \secbase % Make sure \absseclevel doesn't fall outside the range: \ifnum \absseclevel < 0 \absseclevel = 0 \else \ifnum \absseclevel > 3 \absseclevel = 3 \fi \fi % The heading type: \def\headtype{#1}% \if \headtype U% \ifnum \absseclevel < \unnlevel \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: \ifnum \absseclevel = 0 \edef\chapheadtype{\headtype}% \else \if \headtype A\if \chapheadtype N% \errmessage{@appendix... within a non-appendix chapter}% \fi\fi \fi % Check for numbered within unnumbered: \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else \chardef\unnlevel = 3 \fi \fi % Now print the heading: \if \headtype U% \ifcase\absseclevel \unnumberedzzz{#3}% \or \unnumberedseczzz{#3}% \or \unnumberedsubseczzz{#3}% \or \unnumberedsubsubseczzz{#3}% \fi \else \if \headtype A% \ifcase\absseclevel \appendixzzz{#3}% \or \appendixsectionzzz{#3}% \or \appendixsubseczzz{#3}% \or \appendixsubsubseczzz{#3}% \fi \else \ifcase\absseclevel \chapterzzz{#3}% \or \seczzz{#3}% \or \numberedsubseczzz{#3}% \or \numberedsubsubseczzz{#3}% \fi \fi \fi \suppressfirstparagraphindent } % an interface: \def\numhead{\genhead N} \def\apphead{\genhead A} \def\unnmhead{\genhead U} % @chapter, @appendix, @unnumbered. Increment top-level counter, reset % all lower-level sectioning counters to zero. % % Also set \chaplevelprefix, which we prepend to @float sequence numbers % (e.g., figures), q.v. By default (before any chapter), that is empty. \let\chaplevelprefix = \empty % \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz#1{% % section resetting is \global in case the chapter is in a group, such % as an @include file. \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\chapno by 1 % % Used for \float. \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % normally unnmhead0 calls unnumberedzzz: \outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 % % Since an unnumbered has no number, no prefix for figures. \global\let\chaplevelprefix = \empty \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) \toks0 = {#1}% \message{(\the\toks0)}% % \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% % Well, we could do the following in a group, but that would break % an assumption that \chapmacro is called at the outermost level. % Thus we are safer this way: --kasal, 24feb04 \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax } % @top is like @unnumbered. \let\top\unnumbered % Sections. % \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } % normally calls appendixsectionzzz: \outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection % normally calls unnumberedseczzz: \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. % % normally calls numberedsubseczzz: \outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } % normally calls appendixsubseczzz: \outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } % normally calls unnumberedsubseczzz: \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. % % normally numberedsubsubseczzz: \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally appendixsubsubseczzz: \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally unnumberedsubsubseczzz: \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \let\section = \numberedsec \let\subsection = \numberedsubsec \let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip \nobreak \suppressfirstparagraphindent } % @heading, @subheading, @subsubheading. \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. % Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \headingsoff \null \chappager \endgroup \fi } \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \domark % {% \chapfonts \rmisbold % % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerparameters{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt } % I don't think this chapter style is supported any more, so I'm not % updating it with the new noderef stuff. We'll see. --karl, 11aug03. % \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% \chapoddpage \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% \chapoddpage \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% \nobreak\bigskip \nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen \global\let\centerchapmacro=\centerchfopen} % Section titles. These macros combine the section number parts and % call the generic \sectionheading to do the printing. % \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. \newskip\subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. \def\subsubsecheadingskip{\subsecheadingskip} \def\subsubsecheadingbreak{\subsecheadingbreak} % Print any size, any type, section title. % % #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \checkenv{}% should not be in an environment. % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % \def\sectionlevel{#2}% \def\temptype{#3}% % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevsectiondefs=\lastsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\lastsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) However, when a paragraph is not started next % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out % or the negative glue will cause weirdly wrong output, typically % obscuring the section heading with something else. \vskip-\parskip % % This is so the last item on the main vertical list is a known % \penalty > 10000, so \startdefun, etc., can recognize the situation % and do the needful. \penalty 10001 } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. % % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} % We append the current node name (if any) and page number as additional % arguments for the \{chap,sec,...}entry macros which will eventually % read this. The node name is used in the pdf outlines as the % destination to jump to. % % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. % But if #1 is `omit', then we don't do anything. This is used for the % table of contents chapter openings themselves. % \newif\iftocfileopened \def\omitkeyword{omit}% % \def\writetocentry#1#2#3{% \edef\writetoctype{#1}% \ifx\writetoctype\omitkeyword \else \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi % \iflinks {\atdummies \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp }% \fi \fi % % Tell \shipout to create a pdf destination on each page, if we're % writing pdf. These are used in the table of contents. We can't % just write one on every page because the title pages are numbered % 1 and 2 (the page numbers aren't printed), and so are the first % two pages of the document. Thus, we'd have two destinations named % `1', and two named `2'. \ifpdf \global\pdfmakepagedesttrue \fi } % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active \catcode`\<=\active \catcode`\>=\active \catcode`\\=\active \catcode`\^=\active \catcode`\_=\active \catcode`\|=\active \catcode`\~=\active } % Read the toc file, which is essentially Texinfo input. \def\readtocfile{% \setupdatafile \activecatcodes \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\numsecentry##1##2##3##4{} \let\appsecentry = \numsecentry \let\unnsecentry = \numsecentry \let\numsubsecentry = \numsecentry \let\appsubsecentry = \numsecentry \let\unnsubsecentry = \numsecentry \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } \let\shortcontents = \summarycontents % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g., `A' for an appendix, or `3' for a chapter. % \def\shortchaplabel#1{% % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) % % We'd like to right-justify chapter numbers, but that looks strange % with appendix letters. And right-justifying numbers and % left-justifying letters looks strange when there is less than 10 % chapters. Have to read the whole toc once to know how many chapters % there are before deciding ... \hbox to 1em{#1\hss}% } % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Parts, in the main contents. Replace the part number, which doesn't % exist, with an empty box. Let's hope all the numbers have the same width. % Also ignore the page number, which is conventionally not printed. \def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} \def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} % % Parts, in the short toc. \def\shortpartentry#1#2#3#4{% \penalty-300 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip \shortchapentry{{\bf #1}}{\numeralbox}{}{}% } % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. % Need the word Appendix, and a fixed-size box. % \def\appendixbox#1{% % We use M since it's probably the widest letter. \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} \let\appsecentry=\numsecentry \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} \let\appsubsecentry=\numsubsecentry \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} \let\appsubsubsecentry=\numsubsubsecentry \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. % Same as \defaultparindent. \newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % We use the same \entry macro as for the index entries. \let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} \def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain @ character. \envdef\tex{% \setupmarkupstyle{tex}% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other \catcode`\`=\other \catcode`\'=\other \escapechar=`\\ % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. \mathactive % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\indent=\ptexindent \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi }} \let\afterenvbreak = \aboveenvbreak % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip \envdef\cartouche{% \ifhmode\par\fi % can't be in the midst of a paragraph. \startsavinginserts \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt % we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% % % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \kern3pt \hsize=\cartinner \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it in one command. #1 is the env name, #2 the definition. \def\makedispenvdef#1#2{% \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } % Define two environment synonyms (#1 and #2) for an environment. \def\maketwodispenvdef#1#2#3{% \makedispenvdef{#1}{#3}% \makedispenvdef{#2}{#3}% } % % @lisp: indented, narrowed, typewriter font; % @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble } % @flushleft: same as @format, but doesn't obey \SETdispenvsize. \envdef\flushleft{% \let\nonarrowing = t% \nonfillstart \gobble } \let\Eflushleft = \afterenvbreak % @flushright. % \envdef\flushright{% \let\nonarrowing = t% \nonfillstart \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. \envdef\raggedright{% \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax \advance\rightskip by \lispnarrowing \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } \def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% \def\temp{#1}% \ifx\temp\empty \else {\bf #1: }% \fi } % @indentedblock is like @quotation, but indents only on the left and % has no optional argument. % \makedispenvdef{indentedblock}{\indentedblockstart} % \def\indentedblockstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi } % Keep a nonzero parskip for the environment, since we're doing normal filling. % \def\Eindentedblock{% \par {\parskip=0pt \afterenvbreak}% } \def\Esmallindentedblock{\Eindentedblock} % LaTeX-like @verbatim...@end verbatim and @verb{...} % If we want to allow any as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % % [Knuth] p.344; only we need to do the other characters Texinfo sets % active too. Otherwise, they get lost as the first character on a % verbatim line. \def\dospecials{% \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setupmarkupstyle{verb}% \tabeightspaces % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces } % Setup for the @verbatim environment % % Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % % We typeset each line of the verbatim in an \hbox, so we can handle % tabs. The \global is in case the verbatim line starts with an accent, % or some other command that starts with a begin-group. Otherwise, the % entire \verbbox would disappear at the corresponding end-group, before % it is typeset. Meanwhile, we can't have nested verbatim commands % (can we?), so the \global won't be overwriting itself. \newbox\verbbox \def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab \divide\dimen\verbbox by\tabw \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart \tt % easiest (and conventionally used) font for verbatim % The \leavevmode here is for blank lines. Otherwise, we would % never \starttabox and the \egroup would end verbatim mode. \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and % make each space count. % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } % Do the @verb magic: verbatim text is quoted by unique % delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % \def\verb{\begingroup\setupverb\doverb} % % % Do the @verbatim magic: define the macro \doverbatim so that % the (first) argument ends when '@end verbatim' is reached, ie: % % \def\doverbatim#1@end verbatim{#1} % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] % \begingroup \catcode`\ =\active \obeylines % % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% % We really want {...\end verbatim} in the body of the macro, but % without the active space; thus we have to use \xdef and \gobble. \endgroup % \envdef\verbatim{% \setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% } % @copying ... @end copying. % Save the text away for @insertcopying later. % % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is very desirable. % \def\copying{\checkenv{}\begingroup\scanargctxt\docopying} \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} % \def\insertcopying{% \begingroup \parindent = 0pt % paragraph indentation looks wrong on title page \scanexp\copyingtext \endgroup } \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } \newif\ifdoingtypefn % doing typed function? \newif\ifrettypeownline % typeset return type on its own line? % @deftypefnnewline on|off says whether the return type of typed functions % are printed on their own line. This affects @deftypefn, @deftypefun, % @deftypeop, and @deftypemethod. % \parseargdef\deftypefnnewline{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxideftypefnnl\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETtxideftypefnnl\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @txideftypefnnl value `\temp', must be on|off}% \fi\fi } % Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} % @deffn category class name args \makedefun{defop}#1 {\defopon{#1\ \putwordon}} % \defopon {category on}class name args \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deffngeneral {subind}category name args % \def\deffngeneral#1#2 #3 #4\endheader{% % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. \dosubind{fn}{\code{#3}}{#1}% \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} % \deftypeopon {category on}class type name args \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deftypefngeneral {subind}category type name args % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} % \deftypecvof {category of}class type var args \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } % \deftypecvgeneral {subind}category type var args % \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% \dosubind{vr}{\code{#4}}{#1}% \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } % @defcv category class var args \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } % Types: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: \makedefun{defun}{\deffnheader{\putwordDeffunc} } \makedefun{defmac}{\deffnheader{\putwordDefmac} } \makedefun{defspec}{\deffnheader{\putwordDefspec} } \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } \makedefun{defvar}{\defvrheader{\putwordDefvar} } \makedefun{defopt}{\defvrheader{\putwordDefopt} } \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } \makedefun{defmethod}{\defopon\putwordMethodon} \makedefun{deftypemethod}{\deftypeopon\putwordMethodon} \makedefun{defivar}{\defcvof\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} % \defname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % Determine if we are typesetting the return type of a typed function % on a line by itself. \rettypeownlinefalse \ifdoingtypefn % doing a typed function specifically? % then check user option for putting return type on its own line: \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else \rettypeownlinetrue \fi \fi % % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % % Figure out line sizes for the paragraph shape. We'll always have at % least two. \tempnum = 2 % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip % % If doing a return type on its own line, we'll have another line. \ifrettypeownline \advance\tempnum by 1 \def\maybeshapeline{0in \hsize}% \else \def\maybeshapeline{}% \fi % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % % The final paragraph shape: \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 % % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize % \hsize has to be shortened this way: \kern\leftskip % Intentionally do not respect \rightskip, since we need the space. }% % % Allow all lines to be underfull without complaint: \tolerance=10000 \hbadness=10000 \exdentamount=\defbodyindent {% % defun fonts. We use typewriter by default (used to be bold) because: % . we're printing identifiers, they should be in tt in principle. % . in languages with many accents, such as Czech or French, it's % common to leave accents off identifiers. The result looks ok in % tt, but exceedingly strange in rm. % . we don't want -- and --- to be treated as ligatures. % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt \def\temp{#2}% text of the return type \ifx\temp\empty\else \tclose{\temp}% typeset the return type \ifrettypeownline % put return type on its own line; prohibit line break following: \hfil\vadjust{\nobreak}\break \else \space % type on same line, so just followed by a space \fi \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm % \boldbrax % arguments will be output next, if any. } % Print arguments in slanted roman (not ttsl), inconsistently with using % tt for the name. This is because literal text is sometimes needed in % the argument list (groff manual), and ttsl and tt are not very % distinguishable. Prevent hyphenation at `-' chars. % \def\defunargs#1{% % use sl by default (not ttsl), % tt for the names. \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we % want a way to get ttsl. We used to recommend @var for that, so % leave the code in, but it's strange for @var to lead to typewriter. % Nowadays we recommend @code, since the difference between a ttsl hyphen % and a tt hyphen is pretty tiny. @code also disables ?` !`. \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi \def\scanmacro#1{\begingroup \newlinechar`\^^M \let\xeatspaces\eatspaces % % Undo catcode changes of \startcontents and \doprintindex % When called from @insertcopying or (short)caption, we need active % backslash to get it printed correctly. Previously, we had % \catcode`\\=\other instead. We'll see whether a problem appears % with macro expansion. --kasal, 19aug04 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ % % ... and for \example: \spaceisspace % % The \empty here causes a following catcode 5 newline to be eaten as % part of reading whitespace after a control sequence. It does not % eat a catcode 13 newline. There's no good way to handle the two % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX % would then have different behavior). See the Macro Details node in % the manual for the workaround we recommend for macros and % line-oriented commands. % \scantokens{#1\empty}% \endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% \temp } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \definedummyword\macro1\definedummyword\macro2... % Currently is also contains all @aliases; the list can be split % if there is a need. \def\macrolist{} % Add the macro to \macrolist \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} \def\addtomacrolistxxx#1{% \toks0 = \expandafter{\macrolist\definedummyword#1}% \xdef\macrolist{\the\toks0}% } % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname } % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } % Trim a single trailing ^^M off a string. {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \ % to recognize macro arguments; this is the job of \mbodybackslash. % % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. % \def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } \def\macroargctxt{% used when scanning invocations \scanctxt \catcode`\\=0 } % why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" % for the single characters \ { }. Thus, we end up with the "commands" % that would be written @\ @{ @} in a Texinfo document. % % We already have @{ and @}. For @\, we define it here, and only for % this purpose, to produce a typewriter backslash (so, the @\ that we % define for @math can't be used with @macro calls): % \def\\{\normalbackslash}% % % We would like to do this for \, too, since that is what makeinfo does. % But it is not possible, because Texinfo already has a command @, for a % cedilla accent. Documents must use @comma{} instead. % % \anythingelse will almost certainly be an error of some kind. % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. % {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\margbackslash#1{\char`\#1 } \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0\relax \else \expandafter\parsemargdef \argl;% \if\paramno>256\relax \ifx\eTeXversion\thisisundefined \errhelp = \EMsimple \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} \fi \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% \ifx #1\relax % remove this \else \noexpand\definedummyword \noexpand#1% \fi } % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % For macro processing make @ a letter so that we can make Texinfo private macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.BLAH for each BLAH % in the params list to some hook where the argument si to be expanded. If % there are less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % % We need to get `macro parameter char #' into several definitions. % The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. % % If there are 10 or more arguments, a different technique is used, where the % hook remains in the body, and when macro is to be expanded the body is % processed again to replace the arguments. % % In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the % argument N value and then \edef the body (nothing else will expand because of % the catcode regime underwhich the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, you need that no macro has more than 256 arguments, otherwise an % error is produced. \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax \let\xeatspaces\relax \parsemargdefxxx#1,;,% % In case that there are 10 or more arguments we parse again the arguments % list to set new definitions for the \macarg.BLAH macros corresponding to % each BLAH argument. It was anyhow needed to parse already once this list % in order to count the arguments, and as macros with at most 9 arguments % are by far more frequent than macro with 10 or more arguments, defining % twice the \macarg.BLAH macros does not cost too much processing power. \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments \fi } \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else \let\next=\parsemmanyargdef@@ \edef\tempb{\eatspaces{#1}}% \expandafter\def\expandafter\tempa \expandafter{\csname macarg.\tempb\endcsname}% % Note that we need some extra \noexpand\noexpand, this is because we % don't want \the to be expanded in the \parsermacbody as it uses an % \xdef . \expandafter\edef\tempa {\noexpand\noexpand\noexpand\the\toks\the\paramno}% \advance\paramno by 1\relax \fi\next} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) % \catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \catcode `\@=11\relax \let\endargs@\relax \let\nil@\relax \def\nilm@{\nil@}% \long\def\nillm@{\nil@}% % This macro is expanded during the Texinfo macro expansion, not during its % definition. It gets all the arguments values and assigns them to macros % macarg.ARGNAME % % #1 is the macro name % #2 is the list of argument names % #3 is the list of argument values \def\getargvals@#1#2#3{% \def\macargdeflist@{}% \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. \def\paramlist{#2,\nil@}% \def\macroname{#1}% \begingroup \macroargctxt \def\argvaluelist{#3,\nil@}% \def\@tempa{#3}% \ifx\@tempa\empty \setemptyargvalues@ \else \getargvals@@ \fi } % \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. \ifx\argvaluelist\nillm@ \else \errhelp = \EMsimple \errmessage{Too many arguments in macro `\macroname'!}% \fi \let\next\macargexpandinbody@ \else \ifx\argvaluelist\nillm@ % No more arguments values passed to macro. Set remaining named-arg % macros to empty. \let\next\setemptyargvalues@ \else % pop current arg name into \@tempb \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% \expandafter\@tempa\expandafter{\paramlist}% % pop current argument value into \@tempc \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% \expandafter\@tempa\expandafter{\argvaluelist}% % Here \@tempb is the current arg name and \@tempc is the current arg value. % First place the new argument macro definition into \@tempd \expandafter\macname\expandafter{\@tempc}% \expandafter\let\csname macarg.\@tempb\endcsname\relax \expandafter\def\expandafter\@tempe\expandafter{% \csname macarg.\@tempb\endcsname}% \edef\@tempd{\long\def\@tempe{\the\macname}}% \push@\@tempd\macargdeflist@ \let\next\getargvals@@ \fi \fi \next } \def\push@#1#2{% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#2% \expandafter\expandafter\expandafter{% \expandafter#1#2}% } % Replace arguments by their values in the macro body, and place the result % in macro \@tempa \def\macvalstoargs@{% % To do this we use the property that token registers that are \the'ed % within an \edef expand only once. So we are going to place all argument % values into respective token registers. % % First we save the token context, and initialize argument numbering. \begingroup \paramno0\relax % Then, for each argument number #N, we place the corresponding argument % value into a new token list register \toks#N \expandafter\putargsintokens@\saveparamlist@,;,% % Then, we expand the body so that argument are replaced by their % values. The trick for values not to be expanded themselves is that they % are within tokens and that tokens expand only once in an \edef . \edef\@tempc{\csname mac.\macroname .body\endcsname}% % Now we restore the token stack pointer to free the token list registers % which we have used, but we make sure that expanded body is saved after % group. \expandafter \endgroup \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% } \def\macargexpandinbody@{% %% Define the named-macro outside of this group and then close this group. \expandafter \endgroup \macargdeflist@ % First the replace in body the macro arguments by their values, the result % is in \@tempa . \macvalstoargs@ % Then we point at the \norecurse or \gobble (for recursive) macro value % with \@tempb . \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname % Depending on whether it is recursive or not, we need some tailing % \egroup . \ifx\@tempb\gobble \let\@tempc\relax \else \let\@tempc\egroup \fi % And now we do the real job: \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% \@tempd } \def\putargsintokens@#1,{% \if#1;\let\next\relax \else \let\next\putargsintokens@ % First we allocate the new token list register, and give it a temporary % alias \@tempb . \toksdef\@tempb\the\paramno % Then we place the argument value into that token list register. \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname \expandafter\@tempb\expandafter{\@tempa}% \advance\paramno by 1\relax \fi \next } % Save the token stack pointer into macro #1 \def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} % Restore the token stack pointer from number in macro #1 \def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} % newtoks that can be used non \outer . \def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} % Tailing missing arguments are set to empty \def\setemptyargvalues@{% \ifx\paramlist\nilm@ \let\next\macargexpandinbody@ \else \expandafter\setemptyargvaluesparser@\paramlist\endargs@ \let\next\setemptyargvalues@ \fi \next } \def\setemptyargvaluesparser@#1,#2\endargs@{% \expandafter\def\expandafter\@tempa\expandafter{% \expandafter\def\csname macarg.#1\endcsname{}}% \push@\@tempa\macargdeflist@ \def\paramlist{#2}% } % #1 is the element target macro % #2 is the list macro % #3,#4\endargs@ is the list value \def\pop@#1#2#3,#4\endargs@{% \def#1{#3}% \def#2{#4}% } \long\def\longpop@#1#2#3,#4\endargs@{% \long\def#1{#3}% \long\def#2{#4}% } % This defines a Texinfo @macro. There are eight cases: recursive and % nonrecursive macros of zero, one, up to nine, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% \else \ifnum\paramno<10\relax % at most 9 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{\egroup\noexpand\scanmacro{\temp}}% \else % 10 or more \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi \else \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % at most 9 \ifnum\paramno<10\relax \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \expandafter\noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse \fi \fi \fi} \catcode `\@\texiatcatcode\relax \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg). % \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Make them active and then expand them all to nothing. % \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next } \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{% \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in % cross-references. The @node line might or might not have commas, and % might or might not have spaces before the first comma, like: % @node foo , bar , ... % We don't want such trailing spaces in the node name. % \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} % % also remove a trailing comma, in case of something like this: % @node Help-Cross, , , Cross-refs \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\empty % Write a cross-reference definition for the current node. #1 is the % type (Ynumbered, Yappendix, Ynothing). % \def\donoderef#1{% \ifx\lastnode\empty\else \setref{\lastnode}{#1}% \global\let\lastnode=\empty \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister % \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: % 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. % 3) NAME-pg - the page number. % % This is called from \donoderef, \anchor, and \dofloat. In the case of % floats, there is an additional part, which is not written here: % 4) NAME-lof - the text as it should appear in a @listoffloats. % \def\setref#1#2{% \pdfmkdest{#1}% \iflinks {% \atdummies % preserve commands, but don't expand them \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } % @xrefautosectiontitle on|off says whether @section(ing) names are used % automatically in xrefs, if the third arg is not explicitly specified. % This was provided as a "secret" @set xref-automatic-section-title % variable, now it's official. % \parseargdef\xrefautomaticsectiontitle{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', must be on|off}% \fi\fi } % % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} % \newbox\toprefbox \newbox\printedrefnamebox \newbox\infofilenamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % % Get args without leading/trailing spaces. \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% % \def\infofilename{\ignorespaces #4}% \setbox\infofilenamebox = \hbox{\infofilename\unskip}% % \def\printedmanual{\ignorespaces #5}% \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% % % If the printed reference name (arg #3) was not explicitly given in % the @xref, figure out what we want to use. \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Auto section-title: use chapter/section title inside % the square brackets if we have it. \ifdim \wd\printedmanualbox > 0pt % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % % Make link in pdf output. \ifpdf {\indexnofonts \turnoffactive \makevalueexpandable % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \edef\pdfxrefdest{#1}% \ifx\pdfxrefdest\empty \def\pdfxrefdest{Top}% no empty targets \else \txiescapepdf\pdfxrefdest % escape PDF special chars \fi % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfxrefdest}% \else goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". We distinguish them by the % LABEL-title being set to a magic string. {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}{}% \else \printedrefname \fi % % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox to print the node names, TeX does not insert % empty discretionaries after hyphens, which means that it will not % find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, % this is a loss. Therefore, we give the text of the node name % again, so it is as if TeX is seeing it for the first time. % \ifdim \wd\printedmanualbox > 0pt % Cross-manual reference with a printed manual name. % \crossmanualxref{\cite{\printedmanual\unskip}}% % \else\ifdim \wd\infofilenamebox > 0pt % Cross-manual reference with only an info filename (arg 4), no % printed manual name (arg 5). This is essentially the same as % the case above; we output the filename, since we have nothing else. % \crossmanualxref{\code{\infofilename\unskip}}% % \else % Reference within this manual. % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi\fi \fi \endlink \endgroup} % Output a cross-manual xref to #1. Used just above (twice). % % Only include the text "Section ``foo'' in" if the foo is neither % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply % "see The Foo Manual", the idea being to refer to the whole manual. % % But, this being TeX, we can't easily compare our node name against the % string "Top" while ignoring the possible spaces before and after in % the input. By adding the arbitrary 7sp below, we make it much less % likely that a real node name would have the same width as "Top" (e.g., % in a monospaced font). Hopefully it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \def\crossmanualxref#1{% \setbox\toprefbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp % nonempty? \ifdim \wd2 = \wd\toprefbox \else % same as Top? \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi #1% } % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly % one that Bob is working on :). % \def\xrefprintnodename#1{[#1]} % Things referred to by \setref. % \def\Ynothing{} \def\Yomitfromtoc{} \def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 \putwordSection@tie \the\chapno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno \else \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } \def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. % \def\refx#1#2{% {% \indexnofonts \otherbackslash \expandafter\global\expandafter\let\expandafter\thisrefX \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs {\toks0 = {#1}% avoid expansion of possibly-complex value \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \thisrefX \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. Usually it's % just a \def (we prepend XR to the control sequence name to avoid % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% {% The node name might contain 8-bit characters, which in our current % implementation are changed to commands like @'e. Don't let these % mess up the control sequence name. \indexnofonts \turnoffactive \xdef\safexrefname{#1}% }% % \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } \def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % % This is to support \ in node names and titles, since the \ % characters end up in a \csname. It's easier than % leaving it active and making its active definition an actual \ % character. What I don't understand is why it works in the *value* % of the xrdef. Seems like it should be a catcode12 \, and that % should not typeset properly. But it works, so I'm moving on for % now. --karl, 15jan04. \catcode`\\=\other % % Make the characters 128-255 be printing characters. {% \count1=128 \def\loop{% \catcode\count1=\other \advance\count1 by 1 \ifnum \count1<256 \loop \fi }% }% % % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 } \def\readdatafile#1{% \begingroup \setupdatafile \input\jobname.#1 \endgroup} \message{insertions,} % including footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \let\indent=\ptexindent \let\noindent=\ptexnoindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset (and anything else that uses % \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \gdef\dofootnote{% \insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Because we use hanging indentation in footnotes, a @noindent appears % to exdent this text, so make it be a no-op. makeinfo does not use % hanging indentation so @noindent can still be needed within footnote % text after an @example or the like (not that this is good style). \let\noindent = \relax % % Hang the footnote text off the number. Use \everypar in case the % footnote extends for more than one paragraph. \everypar = {\hang}% \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut % % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. % #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names % If the image is by itself, center it. \ifvmode \imagevmodetrue \else \ifx\centersub\centerV % for @center @image, we need a vbox so we can have our vertical space \imagevmodetrue \vbox\bgroup % vbox has better behavior than vtop herev \fi\fi % \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. % However, if we're at the top level, we don't want the % normal paragraph indentation. % On the other hand, if we are in the case of @center @image, we don't % want to start a paragraph, which will create a hsize-width box and % eradicate the centering. \ifx\centersub\centerV\else \noindent \fi % % Output the image. \ifpdf \dopdfimage{#1}{#2}{#3}% \else % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \epsfbox{#1.eps}% \fi % \ifimagevmode \medskip % space after a standalone image \fi \ifx\centersub\centerV \egroup \fi \endgroup} % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, % etc. We don't actually implement floating yet, we always include the % float "here". But it seemed the best name for the future. % \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} % There may be a space before second and/or third parameter; delete it. \def\eatcommaspace#1, {#1,} % #1 is the optional FLOATTYPE, the text label for this float, typically % "Figure", "Table", "Example", etc. Can't contain commas. If omitted, % this float will not be numbered and cannot be referred to. % % #2 is the optional xref label. Also must be present for the float to % be referable. % % #3 is the optional positioning argument; for now, it is ignored. It % will somehow specify the positions allowed to float to (here, top, bottom). % % We keep a separate counter for each FLOATTYPE, which we reset at each % chapter-level command. \let\resetallfloatnos=\empty % \def\dofloat#1,#2,#3,#4\finish{% \let\thiscaption=\empty \let\thisshortcaption=\empty % % don't lose footnotes inside @float. % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \startsavinginserts % % We can't be used inside a paragraph. \par % \vtop\bgroup \def\floattype{#1}% \def\floatlabel{#2}% \def\floatloc{#3}% we do nothing with this yet. % \ifx\floattype\empty \let\safefloattype=\empty \else {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% \fi % % If label is given but no type, we handle that as the empty type. \ifx\floatlabel\empty \else % We want each FLOATTYPE to be numbered separately (Figure 1, % Table 1, Figure 2, ...). (And if no label, no number.) % \expandafter\getfloatno\csname\safefloattype floatno\endcsname \global\advance\floatno by 1 % {% % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi % % start with \parskip glue, I guess. \vskip\parskip % % Don't suppress indentation if a float happens to start a section. \restorefirstparagraphindent } % we have these possibilities: % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap % @float Foo,lbl & no caption: Foo 1.1 % @float Foo & @caption{Cap}: Foo: Cap % @float Foo & no caption: Foo % @float ,lbl & Caption{Cap}: 1.1: Cap % @float ,lbl & no caption: 1.1 % @float & @caption{Cap}: Cap % @float & no caption: % \def\Efloat{% \let\floatident = \empty % % In all cases, if we have a float type, it comes first. \ifx\floattype\empty \else \def\floatident{\floattype}\fi % % If we have an xref label, the number comes next. \ifx\floatlabel\empty \else \ifx\floattype\empty \else % if also had float type, need tie first. \appendtomacro\floatident{\tie}% \fi % the number. \appendtomacro\floatident{\chaplevelprefix\the\floatno}% \fi % % Start the printed caption with what we've constructed in % \floatident, but keep it separate; we need \floatident again. \let\captionline = \floatident % \ifx\thiscaption\empty \else \ifx\floatident\empty \else \appendtomacro\captionline{: }% had ident, so need a colon between \fi % % caption text. \appendtomacro\captionline{\scanexp\thiscaption}% \fi % % If we have anything to print, print it, with space before. % Eventually this needs to become an \insert. \ifx\captionline\empty \else \vskip.5\parskip \captionline % % Space below caption. \vskip\parskip \fi % % If have an xref label, write the list of floats info. Do this % after the caption, to avoid chance of it being a breakpoint. \ifx\floatlabel\empty \else % Write the text that goes in the lof to the aux file as % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% \atdummies % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. \scanexp{% \xdef\noexpand\gtemp{% \ifx\thisshortcaption\empty \thiscaption \else \thisshortcaption \fi }% }% \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % % place the captured inserts % % BEWARE: when the floats start floating, we have to issue warning % whenever an insert appears inside a float which could possibly % float. --kasal, 26may04 % \checkinserts } % Append the tokens #2 to the definition of macro #1, not expanding either. % \def\appendtomacro#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } % @caption, @shortcaption % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} \def\defcaption#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. \def\getfloatno#1{% \ifx#1\relax % Haven't seen this figure type before. \csname newcount\endcsname #1% % % Remember to reset this floatno at the next chap. \expandafter\gdef\expandafter\resetallfloatnos \expandafter{\resetallfloatnos #1=0 }% \fi \let\floatno#1% } % \setref calls this to get the XREFLABEL-snt value. We want an @xref % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we % first read the @float command. % \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% % Magic string used for the XREFLABEL-title value, so \xrefX can % distinguish floats from other xref types. \def\floatmagic{!!float!!} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic % \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{\begingroup \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore{#1_\finish}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX \endgroup} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \parseargdef\documentencoding{% % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \setnonasciicharscatcode\active \utfeightchardefs % \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii } % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdef^^a0{\tie} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} \gdef^^ad{\-} \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} \gdef^^b1{$\pm$} \gdef^^b2{$^2$} \gdef^^b3{$^3$} \gdef^^b4{\'{}} \gdef^^b5{$\mu$} \gdef^^b6{\P} % \gdef^^b7{$^.$} \gdef^^b8{\cedilla\ } \gdef^^b9{$^1$} \gdef^^ba{\ordm} % \gdef^^bb{\guillemetright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} \gdef^^bf{\questiondown} % \gdef^^c0{\`A} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} \gdef^^c9{\'E} \gdef^^ca{\^E} \gdef^^cb{\"E} \gdef^^cc{\`I} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\"I} % \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\~O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\O} \gdef^^d9{\`U} \gdef^^da{\'U} \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\~a} \gdef^^e4{\"a} \gdef^^e5{\ringaccent a} \gdef^^e6{\ae} \gdef^^e7{\cedilla c} \gdef^^e8{\`e} \gdef^^e9{\'e} \gdef^^ea{\^e} \gdef^^eb{\"e} \gdef^^ec{\`{\dotless i}} \gdef^^ed{\'{\dotless i}} \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\~o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\o} \gdef^^f9{\`u} \gdef^^fa{\'u} \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\th} \gdef^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdef^^a4{\euro} \gdef^^a6{\v S} \gdef^^a8{\v s} \gdef^^b4{\v Z} \gdef^^b8{\v z} \gdef^^bc{\OE} \gdef^^bd{\oe} \gdef^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdef^^a0{\tie} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\v L} \gdef^^a6{\'S} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\v S} \gdef^^aa{\cedilla S} \gdef^^ab{\v T} \gdef^^ac{\'Z} \gdef^^ad{\-} \gdef^^ae{\v Z} \gdef^^af{\dotaccent Z} % \gdef^^b0{\textdegree} \gdef^^b1{\ogonek{a}} \gdef^^b2{\ogonek{ }} \gdef^^b3{\l} \gdef^^b4{\'{}} \gdef^^b5{\v l} \gdef^^b6{\'s} \gdef^^b7{\v{}} \gdef^^b8{\cedilla\ } \gdef^^b9{\v s} \gdef^^ba{\cedilla s} \gdef^^bb{\v t} \gdef^^bc{\'z} \gdef^^bd{\H{}} \gdef^^be{\v z} \gdef^^bf{\dotaccent z} % \gdef^^c0{\'R} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\u A} \gdef^^c4{\"A} \gdef^^c5{\'L} \gdef^^c6{\'C} \gdef^^c7{\cedilla C} \gdef^^c8{\v C} \gdef^^c9{\'E} \gdef^^ca{\ogonek{E}} \gdef^^cb{\"E} \gdef^^cc{\v E} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\v D} % \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\H O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\cedilla T} \gdef^^df{\ss} % \gdef^^e0{\'r} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\u a} \gdef^^e4{\"a} \gdef^^e5{\'l} \gdef^^e6{\'c} \gdef^^e7{\cedilla c} \gdef^^e8{\v c} \gdef^^e9{\'e} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} \gdef^^ed{\'{\dotless{i}}} \gdef^^ee{\^{\dotless{i}}} \gdef^^ef{\v d} % \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\H o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\v r} \gdef^^f9{\ringaccent u} \gdef^^fa{\'u} \gdef^^fb{\H u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\cedilla t} \gdef^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } \begingroup \catcode`\~13 \catcode`\"12 \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiTwoOctets\string~}} \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiThreeOctets\string~}} \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiFourOctets\string~}} \UTFviiiLoop \endgroup \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% \csname u8:##1\string ##2\endcsname}% \def\UTFviiiThreeOctets##1##2##3{% \csname u8:##1\string ##2\string ##3\endcsname}% \def\UTFviiiFourOctets##1##2##3##4{% \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% \endgroup} \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctets.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% \fi\fi\fi } \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz \multiply\countUTFz by 64 \advance\countUTFx by -\countUTFz \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup \def\utfeightchardefs{% \DeclareUnicodeCharacter{00A0}{\tie} \DeclareUnicodeCharacter{00A1}{\exclamdown} \DeclareUnicodeCharacter{00A3}{\pounds} \DeclareUnicodeCharacter{00A8}{\"{ }} \DeclareUnicodeCharacter{00A9}{\copyright} \DeclareUnicodeCharacter{00AA}{\ordf} \DeclareUnicodeCharacter{00AB}{\guillemetleft} \DeclareUnicodeCharacter{00AD}{\-} \DeclareUnicodeCharacter{00AE}{\registeredsymbol} \DeclareUnicodeCharacter{00AF}{\={ }} \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} \DeclareUnicodeCharacter{00B4}{\'{ }} \DeclareUnicodeCharacter{00B8}{\cedilla{ }} \DeclareUnicodeCharacter{00BA}{\ordm} \DeclareUnicodeCharacter{00BB}{\guillemetright} \DeclareUnicodeCharacter{00BF}{\questiondown} \DeclareUnicodeCharacter{00C0}{\`A} \DeclareUnicodeCharacter{00C1}{\'A} \DeclareUnicodeCharacter{00C2}{\^A} \DeclareUnicodeCharacter{00C3}{\~A} \DeclareUnicodeCharacter{00C4}{\"A} \DeclareUnicodeCharacter{00C5}{\AA} \DeclareUnicodeCharacter{00C6}{\AE} \DeclareUnicodeCharacter{00C7}{\cedilla{C}} \DeclareUnicodeCharacter{00C8}{\`E} \DeclareUnicodeCharacter{00C9}{\'E} \DeclareUnicodeCharacter{00CA}{\^E} \DeclareUnicodeCharacter{00CB}{\"E} \DeclareUnicodeCharacter{00CC}{\`I} \DeclareUnicodeCharacter{00CD}{\'I} \DeclareUnicodeCharacter{00CE}{\^I} \DeclareUnicodeCharacter{00CF}{\"I} \DeclareUnicodeCharacter{00D0}{\DH} \DeclareUnicodeCharacter{00D1}{\~N} \DeclareUnicodeCharacter{00D2}{\`O} \DeclareUnicodeCharacter{00D3}{\'O} \DeclareUnicodeCharacter{00D4}{\^O} \DeclareUnicodeCharacter{00D5}{\~O} \DeclareUnicodeCharacter{00D6}{\"O} \DeclareUnicodeCharacter{00D8}{\O} \DeclareUnicodeCharacter{00D9}{\`U} \DeclareUnicodeCharacter{00DA}{\'U} \DeclareUnicodeCharacter{00DB}{\^U} \DeclareUnicodeCharacter{00DC}{\"U} \DeclareUnicodeCharacter{00DD}{\'Y} \DeclareUnicodeCharacter{00DE}{\TH} \DeclareUnicodeCharacter{00DF}{\ss} \DeclareUnicodeCharacter{00E0}{\`a} \DeclareUnicodeCharacter{00E1}{\'a} \DeclareUnicodeCharacter{00E2}{\^a} \DeclareUnicodeCharacter{00E3}{\~a} \DeclareUnicodeCharacter{00E4}{\"a} \DeclareUnicodeCharacter{00E5}{\aa} \DeclareUnicodeCharacter{00E6}{\ae} \DeclareUnicodeCharacter{00E7}{\cedilla{c}} \DeclareUnicodeCharacter{00E8}{\`e} \DeclareUnicodeCharacter{00E9}{\'e} \DeclareUnicodeCharacter{00EA}{\^e} \DeclareUnicodeCharacter{00EB}{\"e} \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} \DeclareUnicodeCharacter{00F0}{\dh} \DeclareUnicodeCharacter{00F1}{\~n} \DeclareUnicodeCharacter{00F2}{\`o} \DeclareUnicodeCharacter{00F3}{\'o} \DeclareUnicodeCharacter{00F4}{\^o} \DeclareUnicodeCharacter{00F5}{\~o} \DeclareUnicodeCharacter{00F6}{\"o} \DeclareUnicodeCharacter{00F8}{\o} \DeclareUnicodeCharacter{00F9}{\`u} \DeclareUnicodeCharacter{00FA}{\'u} \DeclareUnicodeCharacter{00FB}{\^u} \DeclareUnicodeCharacter{00FC}{\"u} \DeclareUnicodeCharacter{00FD}{\'y} \DeclareUnicodeCharacter{00FE}{\th} \DeclareUnicodeCharacter{00FF}{\"y} \DeclareUnicodeCharacter{0100}{\=A} \DeclareUnicodeCharacter{0101}{\=a} \DeclareUnicodeCharacter{0102}{\u{A}} \DeclareUnicodeCharacter{0103}{\u{a}} \DeclareUnicodeCharacter{0104}{\ogonek{A}} \DeclareUnicodeCharacter{0105}{\ogonek{a}} \DeclareUnicodeCharacter{0106}{\'C} \DeclareUnicodeCharacter{0107}{\'c} \DeclareUnicodeCharacter{0108}{\^C} \DeclareUnicodeCharacter{0109}{\^c} \DeclareUnicodeCharacter{0118}{\ogonek{E}} \DeclareUnicodeCharacter{0119}{\ogonek{e}} \DeclareUnicodeCharacter{010A}{\dotaccent{C}} \DeclareUnicodeCharacter{010B}{\dotaccent{c}} \DeclareUnicodeCharacter{010C}{\v{C}} \DeclareUnicodeCharacter{010D}{\v{c}} \DeclareUnicodeCharacter{010E}{\v{D}} \DeclareUnicodeCharacter{0112}{\=E} \DeclareUnicodeCharacter{0113}{\=e} \DeclareUnicodeCharacter{0114}{\u{E}} \DeclareUnicodeCharacter{0115}{\u{e}} \DeclareUnicodeCharacter{0116}{\dotaccent{E}} \DeclareUnicodeCharacter{0117}{\dotaccent{e}} \DeclareUnicodeCharacter{011A}{\v{E}} \DeclareUnicodeCharacter{011B}{\v{e}} \DeclareUnicodeCharacter{011C}{\^G} \DeclareUnicodeCharacter{011D}{\^g} \DeclareUnicodeCharacter{011E}{\u{G}} \DeclareUnicodeCharacter{011F}{\u{g}} \DeclareUnicodeCharacter{0120}{\dotaccent{G}} \DeclareUnicodeCharacter{0121}{\dotaccent{g}} \DeclareUnicodeCharacter{0124}{\^H} \DeclareUnicodeCharacter{0125}{\^h} \DeclareUnicodeCharacter{0128}{\~I} \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} \DeclareUnicodeCharacter{012A}{\=I} \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} \DeclareUnicodeCharacter{012C}{\u{I}} \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} \DeclareUnicodeCharacter{0130}{\dotaccent{I}} \DeclareUnicodeCharacter{0131}{\dotless{i}} \DeclareUnicodeCharacter{0132}{IJ} \DeclareUnicodeCharacter{0133}{ij} \DeclareUnicodeCharacter{0134}{\^J} \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} \DeclareUnicodeCharacter{0139}{\'L} \DeclareUnicodeCharacter{013A}{\'l} \DeclareUnicodeCharacter{0141}{\L} \DeclareUnicodeCharacter{0142}{\l} \DeclareUnicodeCharacter{0143}{\'N} \DeclareUnicodeCharacter{0144}{\'n} \DeclareUnicodeCharacter{0147}{\v{N}} \DeclareUnicodeCharacter{0148}{\v{n}} \DeclareUnicodeCharacter{014C}{\=O} \DeclareUnicodeCharacter{014D}{\=o} \DeclareUnicodeCharacter{014E}{\u{O}} \DeclareUnicodeCharacter{014F}{\u{o}} \DeclareUnicodeCharacter{0150}{\H{O}} \DeclareUnicodeCharacter{0151}{\H{o}} \DeclareUnicodeCharacter{0152}{\OE} \DeclareUnicodeCharacter{0153}{\oe} \DeclareUnicodeCharacter{0154}{\'R} \DeclareUnicodeCharacter{0155}{\'r} \DeclareUnicodeCharacter{0158}{\v{R}} \DeclareUnicodeCharacter{0159}{\v{r}} \DeclareUnicodeCharacter{015A}{\'S} \DeclareUnicodeCharacter{015B}{\'s} \DeclareUnicodeCharacter{015C}{\^S} \DeclareUnicodeCharacter{015D}{\^s} \DeclareUnicodeCharacter{015E}{\cedilla{S}} \DeclareUnicodeCharacter{015F}{\cedilla{s}} \DeclareUnicodeCharacter{0160}{\v{S}} \DeclareUnicodeCharacter{0161}{\v{s}} \DeclareUnicodeCharacter{0162}{\cedilla{t}} \DeclareUnicodeCharacter{0163}{\cedilla{T}} \DeclareUnicodeCharacter{0164}{\v{T}} \DeclareUnicodeCharacter{0168}{\~U} \DeclareUnicodeCharacter{0169}{\~u} \DeclareUnicodeCharacter{016A}{\=U} \DeclareUnicodeCharacter{016B}{\=u} \DeclareUnicodeCharacter{016C}{\u{U}} \DeclareUnicodeCharacter{016D}{\u{u}} \DeclareUnicodeCharacter{016E}{\ringaccent{U}} \DeclareUnicodeCharacter{016F}{\ringaccent{u}} \DeclareUnicodeCharacter{0170}{\H{U}} \DeclareUnicodeCharacter{0171}{\H{u}} \DeclareUnicodeCharacter{0174}{\^W} \DeclareUnicodeCharacter{0175}{\^w} \DeclareUnicodeCharacter{0176}{\^Y} \DeclareUnicodeCharacter{0177}{\^y} \DeclareUnicodeCharacter{0178}{\"Y} \DeclareUnicodeCharacter{0179}{\'Z} \DeclareUnicodeCharacter{017A}{\'z} \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} \DeclareUnicodeCharacter{017C}{\dotaccent{z}} \DeclareUnicodeCharacter{017D}{\v{Z}} \DeclareUnicodeCharacter{017E}{\v{z}} \DeclareUnicodeCharacter{01C4}{D\v{Z}} \DeclareUnicodeCharacter{01C5}{D\v{z}} \DeclareUnicodeCharacter{01C6}{d\v{z}} \DeclareUnicodeCharacter{01C7}{LJ} \DeclareUnicodeCharacter{01C8}{Lj} \DeclareUnicodeCharacter{01C9}{lj} \DeclareUnicodeCharacter{01CA}{NJ} \DeclareUnicodeCharacter{01CB}{Nj} \DeclareUnicodeCharacter{01CC}{nj} \DeclareUnicodeCharacter{01CD}{\v{A}} \DeclareUnicodeCharacter{01CE}{\v{a}} \DeclareUnicodeCharacter{01CF}{\v{I}} \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} \DeclareUnicodeCharacter{01D1}{\v{O}} \DeclareUnicodeCharacter{01D2}{\v{o}} \DeclareUnicodeCharacter{01D3}{\v{U}} \DeclareUnicodeCharacter{01D4}{\v{u}} \DeclareUnicodeCharacter{01E2}{\={\AE}} \DeclareUnicodeCharacter{01E3}{\={\ae}} \DeclareUnicodeCharacter{01E6}{\v{G}} \DeclareUnicodeCharacter{01E7}{\v{g}} \DeclareUnicodeCharacter{01E8}{\v{K}} \DeclareUnicodeCharacter{01E9}{\v{k}} \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} \DeclareUnicodeCharacter{01F1}{DZ} \DeclareUnicodeCharacter{01F2}{Dz} \DeclareUnicodeCharacter{01F3}{dz} \DeclareUnicodeCharacter{01F4}{\'G} \DeclareUnicodeCharacter{01F5}{\'g} \DeclareUnicodeCharacter{01F8}{\`N} \DeclareUnicodeCharacter{01F9}{\`n} \DeclareUnicodeCharacter{01FC}{\'{\AE}} \DeclareUnicodeCharacter{01FD}{\'{\ae}} \DeclareUnicodeCharacter{01FE}{\'{\O}} \DeclareUnicodeCharacter{01FF}{\'{\o}} \DeclareUnicodeCharacter{021E}{\v{H}} \DeclareUnicodeCharacter{021F}{\v{h}} \DeclareUnicodeCharacter{0226}{\dotaccent{A}} \DeclareUnicodeCharacter{0227}{\dotaccent{a}} \DeclareUnicodeCharacter{0228}{\cedilla{E}} \DeclareUnicodeCharacter{0229}{\cedilla{e}} \DeclareUnicodeCharacter{022E}{\dotaccent{O}} \DeclareUnicodeCharacter{022F}{\dotaccent{o}} \DeclareUnicodeCharacter{0232}{\=Y} \DeclareUnicodeCharacter{0233}{\=y} \DeclareUnicodeCharacter{0237}{\dotless{j}} \DeclareUnicodeCharacter{02DB}{\ogonek{ }} \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} \DeclareUnicodeCharacter{1E20}{\=G} \DeclareUnicodeCharacter{1E21}{\=g} \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} \DeclareUnicodeCharacter{1E26}{\"H} \DeclareUnicodeCharacter{1E27}{\"h} \DeclareUnicodeCharacter{1E30}{\'K} \DeclareUnicodeCharacter{1E31}{\'k} \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} \DeclareUnicodeCharacter{1E3E}{\'M} \DeclareUnicodeCharacter{1E3F}{\'m} \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} \DeclareUnicodeCharacter{1E54}{\'P} \DeclareUnicodeCharacter{1E55}{\'p} \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} \DeclareUnicodeCharacter{1E7C}{\~V} \DeclareUnicodeCharacter{1E7D}{\~v} \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} \DeclareUnicodeCharacter{1E80}{\`W} \DeclareUnicodeCharacter{1E81}{\`w} \DeclareUnicodeCharacter{1E82}{\'W} \DeclareUnicodeCharacter{1E83}{\'w} \DeclareUnicodeCharacter{1E84}{\"W} \DeclareUnicodeCharacter{1E85}{\"w} \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} \DeclareUnicodeCharacter{1E8C}{\"X} \DeclareUnicodeCharacter{1E8D}{\"x} \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} \DeclareUnicodeCharacter{1E90}{\^Z} \DeclareUnicodeCharacter{1E91}{\^z} \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} \DeclareUnicodeCharacter{1E97}{\"t} \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} \DeclareUnicodeCharacter{1EBC}{\~E} \DeclareUnicodeCharacter{1EBD}{\~e} \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} \DeclareUnicodeCharacter{1EF2}{\`Y} \DeclareUnicodeCharacter{1EF3}{\`y} \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} \DeclareUnicodeCharacter{1EF8}{\~Y} \DeclareUnicodeCharacter{1EF9}{\~y} \DeclareUnicodeCharacter{2013}{--} \DeclareUnicodeCharacter{2014}{---} \DeclareUnicodeCharacter{2018}{\quoteleft} \DeclareUnicodeCharacter{2019}{\quoteright} \DeclareUnicodeCharacter{201A}{\quotesinglbase} \DeclareUnicodeCharacter{201C}{\quotedblleft} \DeclareUnicodeCharacter{201D}{\quotedblright} \DeclareUnicodeCharacter{201E}{\quotedblbase} \DeclareUnicodeCharacter{2022}{\bullet} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} \DeclareUnicodeCharacter{203A}{\guilsinglright} \DeclareUnicodeCharacter{20AC}{\euro} \DeclareUnicodeCharacter{2192}{\expansion} \DeclareUnicodeCharacter{21D2}{\result} \DeclareUnicodeCharacter{2212}{\minus} \DeclareUnicodeCharacter{2217}{\point} \DeclareUnicodeCharacter{2261}{\equiv} }% end of \utfeightchardefs % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % Make non-ASCII characters printable again for compatibility with % existing Texinfo documents that may use them, even without declaring a % document encoding. % \setnonasciicharscatcode \other \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be very finicky about underfull hboxes, either. \hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @smallerbook to reset parameters for 6x9 trim size. % (Just testing, parameters still in flux.) \def\smallerbook{{\globaldefs = 1 \parskip = 1.5pt plus 1pt \textleading = 12pt % \internalpagesizes{7.4in}{4.8in}% {-.2in}{-.4in}% {0pt}{14pt}% {9in}{6in}% % \lispnarrowing = 0.25in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .4cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then % do the same for \bindingoffset. You can set these for testing in % your texinfo source file like this: % @tex % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. % From romildo@urano.iceb.ufop.br, 2 July 2000. % He also recommends making @example and @lisp be small. \def\afivepaper{{\globaldefs = 1 \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % \internalpagesizes{160mm}{120mm}% {\voffset}{\hoffset}% {\bindingoffset}{8pt}% {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% {\voffset}{4.6mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% % % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} % Use @afourwide to print on A4 paper in landscape format. \def\afourwide{{\globaldefs = 1 \afourpaper \internalpagesizes{241mm}{165mm}% {\voffset}{-2.95mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% \globaldefs = 0 }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize \advance\dimen2 by \normaloffset % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper \message{and turning on texinfo input format.} \def^^L{\par} % remove \outer, so ^L can appear in an @comment % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \def\normaldoublequote{"} \catcode`\$=\other \def\normaldollar{$}%$ font-lock fix \catcode`\+=\other \def\normalplus{+} \catcode`\<=\other \def\normalless{<} \catcode`\>=\other \def\normalgreater{>} \catcode`\^=\other \def\normalcaret{^} \catcode`\_=\other \def\normalunderscore{_} \catcode`\|=\other \def\normalverticalbar{|} \catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Turn off all special characters except @ % (and those which the user can use as if they were ordinary). % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def~{{\tt\char126}} \chardef\hat=`\^ \catcode`\^=\active \def^{{\tt \hat}} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def<{{\tt \less}} \chardef \gtr=`\> \catcode`\>=\active \def>{{\tt \gtr}} \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. % The story here is that in math mode, the \char of \backslashcurfont % ends up printing the roman \ from the math symbol font (because \char % in math mode uses the \mathcode, and plain.tex sets % \mathcode`\\="026E). It seems better for @backslashchar{} to always % print a typewriter backslash, hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. @def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. % On startup, @fixbackslash assigns: % @let \ = @normalbackslash % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. % @def@normalturnoffactive{% @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let\=@normalbackslash @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % @gdef@eatinput input texinfo{@fixbackslash} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then % the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @ifx\@eatinput @let\ = @normalbackslash @fi @catcode`+=@active @catcode`@_=@active } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These (along with & and #) are made active for url-breaking, so need % active definitions as the normal characters. @def@normaldot{.} @def@normalquest{?} @def@normalslash{/} % These look ok in all fonts, so just make them not special. % @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} @let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @ignore arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 @end ignore wdiff-1.2.1/build-aux/msgitm.pm0000644000000000000000000001317211744500575013245 00000000000000#!/usr/bin/perl # msgitm - gettext po file parsing library # Copyright (C) 2010 Free Software Foundation, Inc. # 2010 Martin von Gagern # # 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 3 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, see . =pod =head1 NAME msgitm - gettext po file parsing library =head1 SYNOPSIS use msgitm; =head1 DESCRIPTION Provides functionality to parse and handle translation message files in GNU gettext po format. =head1 API =cut use strict; use warnings; package msgitm; sub new() { my $this = { head => [], msgid => [], msgstr => [] }; return bless $this; } sub accessor($$$@) { my ($this, $wantarray, $field, @newval) = @_; @{$this->{$field}} = @newval if (@newval); return $wantarray ? @{$this->{$field}} : join('', @{$this->{$field}}); } =head2 $msgitm->head([@newhead]) Set or retrieve the whitespace and comments leading up to a message. If a list is passed, it should consist of lines of text, including terminating newlines. All lines should be whitespace only or starting in a C<#>. The return value is such a list, if called in list context, or the concatenation of these lines, if called in scalar context. =cut sub head($@) { my ($this, @newval) = @_; return accessor($this, wantarray, 'head', @newval); } =head2 $msgitm->msgid([@newid]), $msgitm->msgstr([@newstr]) Set or retrieve the untranslated or translated message. Both these messages are represented as lists of strings, where each string corresponds to the part inside the quotes of a single line in the po file. In other words, the logical value of a message is the concatenation of these strings, and the strings should not contain unescaped quotation marks or newlines, but instead should use C escape sequences for these. Giving an array allows setting these values. When called in list context, the list of lines is returned. In scalar context they are concatenated to represent the logical value of the message. =cut sub msgid($@) { my ($this, @newval) = @_; return accessor($this, wantarray, 'msgid', @newval); } sub msgstr($@) { my ($this, @newval) = @_; return accessor($this, wantarray, 'msgstr', @newval); } =head2 $msgitm->block Returns the block corresponding to a given message, including comments, msgid and msgstr, in a format suitable for generation of a modified po file. =cut sub block($) { my ($this) = @_; my $res = $this->head; if (@{$this->{msgid}}) { $res .= qq{msgid "} . join(qq{"\n"}, $this->msgid) . qq{"\n}; $res .= qq{msgstr "} . join(qq{"\n"}, $this->msgstr) . qq{"\n}; } return $res; } =head2 $msgitm->srcrefs Retrieve a list of source references. This is the content of all lines starting with C<#:>, split at whitespace. =cut sub srcrefs($) { my ($this) = @_; my @res = (); for my $h ($this->head) { if ($h =~ s/^#: //) { chomp($h); push @res, split(/\s+/, $h); } } return @res; } =head2 $msgitm->srcfiles This is like the source references returned from I but without the line number part usually contained in these comments. =cut sub srcfiles($) { my ($this) = @_; my @res = (); for my $r ($this->srcrefs) { $r =~ s/:\d+$//; push @res, $r; } return @res; } =head2 $msgitm->set_flag($flag) Sets a given flag. Ensures the flag is present in a comment starting with C<#,>. If it already is, nothing will be changed. If a flags comment already exists, the value will be added to its head. Otherwise a new comment line will be inserted. =cut sub set_flag($$) { my ($this, $flag) = @_; for (my $i = $#{$this->{head}}; $i >= 0; --$i) { my $h = $this->{head}[$i]; chomp($h); if ($h =~ s/^#,\s*//) { my @flags = split(/,\s*/, $h); return if grep { $_ eq $flag } @flags; $this->{head}[$i] = qq{#, } . join(', ', $flag, @flags) . qq{\n}; return; } } push @{$this->{head}}, "#, $flag\n"; } =head2 $msgitm->add_comments(@comments) Adds translator comments starting with C<# > to the list of comments leading to this message. =cut sub add_comments($@) { my ($this, @comments) = @_; my $i; for ($i = $#{$this->{head}}; $i >= 0; --$i) { last unless $this->{head}[$i] =~ /^#\S/; } splice(@{$this->{head}}, $i + 1, 0, map { "# $_\n" } @comments); } =head2 msgitm->parse($file) Parses the named po file. Returns a list of msgitm objects. =cut sub parse($) { my ($cls, $file) = @_; my $itm = new; my @res = ( $itm ); my $mode = "head"; open IN, "<", $file or die "Error opening $file"; while () { $mode = $1 if (s/^(msgid|msgstr)\s+"/"/); if (/^"(.*)"\n$/) { $_ = $1; } elsif ($mode ne "head") { $itm = new; push @res, $itm; $mode = "head"; } push @{$itm->{$mode}}, $_; } close IN or die "Error closing $file"; return @res; } =head1 HISTORY This script was originally written for GNU wdiff. There it's been used for F as well as for one-time migration of usage help messages when these were split into individual lines. =head1 AUTHOR Written 2010 by Martin von Gagern =head1 COPYRIGHT Copyright (C) 2010 Free Software Foundation, Inc. Licensed under the GNU General Public License version 3 or later. =cut 1; wdiff-1.2.1/build-aux/gendocs.sh0000755000000000000000000003737212116507633013374 00000000000000#!/bin/sh -e # gendocs.sh -- generate a GNU manual in many formats. This script is # mentioned in maintain.texi. See the help message below for usage details. scriptversion=2013-02-03.15 # Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 # 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 3 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, see . # # Original author: Mohit Agarwal. # Send bug reports and any other correspondence to bug-texinfo@gnu.org. # # The latest version of this script, and the companion template, is # available from Texinfo CVS: # http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh # http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template # # An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib). # TODO: # - image importation was only implemented for HTML generated by # makeinfo. But it should be simple enough to adjust. # - images are not imported in the source tarball. All the needed # formats (PDF, PNG, etc.) should be included. prog=`basename "$0"` srcdir=`pwd` scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh" templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template" : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="} : ${MAKEINFO="makeinfo"} : ${TEXI2DVI="texi2dvi -t @finalout"} : ${DOCBOOK2HTML="docbook2html"} : ${DOCBOOK2PDF="docbook2pdf"} : ${DOCBOOK2TXT="docbook2txt"} : ${GENDOCS_TEMPLATE_DIR="."} : ${PERL='perl'} : ${TEXI2HTML="texi2html"} unset CDPATH unset use_texi2html version="gendocs.sh $scriptversion Copyright 2013 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING." usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE Generate output in various formats from PACKAGE.texinfo (or .texi or .txi) source. See the GNU Maintainers document for a more extensive discussion: http://www.gnu.org/prep/maintain_toc.html Options: --email ADR use ADR as contact in generated web pages; always give this. -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} -o OUTDIR write files into OUTDIR, instead of manual/. -I DIR append DIR to the Texinfo search path. --common ARG pass ARG in all invocations. --html ARG pass ARG to makeinfo or texi2html for HTML targets. --info ARG pass ARG to makeinfo for Info, instead of --no-split. --no-ascii skip generating the plain text output. --source ARG include ARG in tar archive of sources. --split HOW make split HTML by node, section, chapter; default node. --texi2html use texi2html to make HTML target, with all split versions. --docbook convert through DocBook too (xml, txt, html, pdf). --help display this help and exit successfully. --version display version information and exit successfully. Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" Typical sequence: cd PACKAGESOURCE/doc wget \"$scripturl\" wget \"$templateurl\" $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" Output will be in a new subdirectory \"manual\" (by default; use -o OUTDIR to override). Move all the new files into your web CVS tree, as explained in the Web Pages node of maintain.texi. Please use the --email ADDRESS option so your own bug-reporting address will be used in the generated HTML pages. MANUAL-TITLE is included as part of the HTML of the overall manual/index.html file. It should include the name of the package being documented. manual/index.html is created by substitution from the file $GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the generic template for your own purposes.) If you have several manuals, you'll need to run this script several times with different MANUAL values, specifying a different output directory with -o each time. Then write (by hand) an overall index.html with links to them all. If a manual's Texinfo sources are spread across several directories, first copy or symlink all Texinfo sources into a single directory. (Part of the script's work is to make a tar.gz of the sources.) As implied above, by default monolithic Info files are generated. If you want split Info, or other Info options, use --info to override. You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, and PERL to control the programs that get executed, and GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is looked for. With --docbook, the environment variables DOCBOOK2HTML, DOCBOOK2PDF, and DOCBOOK2TXT are also consulted. By default, makeinfo and texi2dvi are run in the default (English) locale, since that's the language of most Texinfo manuals. If you happen to have a non-English manual and non-English web site, see the SETLANG setting in the source. Email bug reports or enhancement requests to bug-texinfo@gnu.org. " MANUAL_TITLE= PACKAGE= EMAIL=webmasters@gnu.org # please override with --email commonarg= # passed to all makeinfo/texi2html invcations. dirargs= # passed to all tools (-I dir). dirs= # -I's directories. htmlarg= infoarg=--no-split generate_ascii=true outdir=manual source_extra= split=node srcfile= while test $# -gt 0; do case $1 in -s) shift; srcfile=$1;; -o) shift; outdir=$1;; -I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";; --common) shift; commonarg=$1;; --docbook) docbook=yes;; --email) shift; EMAIL=$1;; --html) shift; htmlarg=$1;; --info) shift; infoarg=$1;; --no-ascii) generate_ascii=false;; --source) shift; source_extra=$1;; --split) shift; split=$1;; --texi2html) use_texi2html=1;; --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; -*) echo "$0: Unknown option \`$1'." >&2 echo "$0: Try \`--help' for more information." >&2 exit 1;; *) if test -z "$PACKAGE"; then PACKAGE=$1 elif test -z "$MANUAL_TITLE"; then MANUAL_TITLE=$1 else echo "$0: extra non-option argument \`$1'." >&2 exit 1 fi;; esac shift done # makeinfo uses the dirargs, but texi2dvi doesn't. commonarg=" $dirargs $commonarg" # For most of the following, the base name is just $PACKAGE base=$PACKAGE if test -n "$srcfile"; then # but here, we use the basename of $srcfile base=`basename "$srcfile"` case $base in *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;; esac PACKAGE=$base elif test -s "$srcdir/$PACKAGE.texinfo"; then srcfile=$srcdir/$PACKAGE.texinfo elif test -s "$srcdir/$PACKAGE.texi"; then srcfile=$srcdir/$PACKAGE.texi elif test -s "$srcdir/$PACKAGE.txi"; then srcfile=$srcdir/$PACKAGE.txi else echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 exit 1 fi if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 echo "$0: it is available from $templateurl." >&2 exit 1 fi # Function to return size of $1 in something resembling kilobytes. calcsize() { size=`ls -ksl $1 | awk '{print $1}'` echo $size } # copy_images OUTDIR HTML-FILE... # ------------------------------- # Copy all the images needed by the HTML-FILEs into OUTDIR. Look # for them in the -I directories. copy_images() { local odir odir=$1 shift $PERL -n -e " BEGIN { \$me = '$prog'; \$odir = '$odir'; @dirs = qw($dirs); } " -e ' /<img src="(.*?)"/g && ++$need{$1}; END { #print "$me: @{[keys %need]}\n"; # for debugging, show images found. FILE: for my $f (keys %need) { for my $d (@dirs) { if (-f "$d/$f") { use File::Basename; my $dest = dirname ("$odir/$f"); # use File::Path; -d $dest || mkpath ($dest) || die "$me: cannot mkdir $dest: $!\n"; # use File::Copy; copy ("$d/$f", $dest) || die "$me: cannot copy $d/$f to $dest: $!\n"; next FILE; } } die "$me: $ARGV: cannot find image $f\n"; } } ' -- "$@" || exit 1 } case $outdir in /*) abs_outdir=$outdir;; *) abs_outdir=$srcdir/$outdir;; esac echo "Making output for $srcfile" echo " in `pwd`" mkdir -p "$outdir/" cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\"" echo "Generating info... ($cmd)" eval "$cmd" tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info* ls -l "$outdir/$PACKAGE.info.tar.gz" info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"` # do not mv the info files, there's no point in having them available # separately on the web. cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\"" printf "\nGenerating dvi... ($cmd)\n" eval "$cmd" # compress/finish dvi: gzip -f -9 $PACKAGE.dvi dvi_gz_size=`calcsize $PACKAGE.dvi.gz` mv $PACKAGE.dvi.gz "$outdir/" ls -l "$outdir/$PACKAGE.dvi.gz" cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\"" printf "\nGenerating pdf... ($cmd)\n" eval "$cmd" pdf_size=`calcsize $PACKAGE.pdf` mv $PACKAGE.pdf "$outdir/" ls -l "$outdir/$PACKAGE.pdf" if $generate_ascii; then opt="-o $PACKAGE.txt --no-split --no-headers $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating ascii... ($cmd)\n" eval "$cmd" ascii_size=`calcsize $PACKAGE.txt` gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz" ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"` mv $PACKAGE.txt "$outdir/" ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz" fi html_split() { opt="--split=$1 --node-files $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" printf "\nGenerating html by $1... ($cmd)\n" eval "$cmd" split_html_dir=$PACKAGE.html ( cd ${split_html_dir} || exit 1 ln -sf ${PACKAGE}.html index.html tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html ) eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"` rm -f "$outdir"/html_$1/*.html mkdir -p "$outdir/html_$1/" mv ${split_html_dir}/*.html "$outdir/html_$1/" rmdir ${split_html_dir} } if test -z "$use_texi2html"; then opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating monolithic html... ($cmd)\n" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` copy_images "$outdir/" $PACKAGE.html mv $PACKAGE.html "$outdir/" ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz" # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option, # it just always split by node. So if we're splitting by node anyway, # leave it out. if test "x$split" = xnode; then split_arg= else split_arg=--split=$split fi # opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating html by $split... ($cmd)\n" eval "$cmd" split_html_dir=$PACKAGE.html copy_images $split_html_dir/ $split_html_dir/*.html ( cd $split_html_dir || exit 1 tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- * ) eval \ html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"` rm -rf "$outdir/html_$split/" mv $split_html_dir "$outdir/html_$split/" du -s "$outdir/html_$split/" ls -l "$outdir/$PACKAGE.html_$split.tar.gz" else # use texi2html: opt="--output $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\"" printf "\nGenerating monolithic html with texi2html... ($cmd)\n" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` mv $PACKAGE.html "$outdir/" html_split node html_split chapter html_split section fi printf "\nMaking .tar.gz for sources...\n" d=`dirname $srcfile` ( cd "$d" srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" ) texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"` if test -n "$docbook"; then opt="-o - --docbook $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml" printf "\nGenerating docbook XML... ($cmd)\n" eval "$cmd" docbook_xml_size=`calcsize $PACKAGE-db.xml` gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz" docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"` mv $PACKAGE-db.xml "$outdir/" split_html_db_dir=html_node_db opt="$commonarg -o $split_html_db_dir" cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook HTML... ($cmd)\n" eval "$cmd" ( cd ${split_html_db_dir} || exit 1 tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html ) html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"` rm -f "$outdir"/html_node_db/*.html mkdir -p "$outdir/html_node_db" mv ${split_html_db_dir}/*.html "$outdir/html_node_db/" rmdir ${split_html_db_dir} cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook ASCII... ($cmd)\n" eval "$cmd" docbook_ascii_size=`calcsize $PACKAGE-db.txt` mv $PACKAGE-db.txt "$outdir/" cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook PDF... ($cmd)\n" eval "$cmd" docbook_pdf_size=`calcsize $PACKAGE-db.pdf` mv $PACKAGE-db.pdf "$outdir/" fi printf "\nMaking index file...\n" if test -z "$use_texi2html"; then CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" else # should take account of --split here. CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" fi curdate=`$SETLANG date '+%B %d, %Y'` sed \ -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ -e "s!%%EMAIL%%!$EMAIL!g" \ -e "s!%%PACKAGE%%!$PACKAGE!g" \ -e "s!%%DATE%%!$curdate!g" \ -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ -e "s!%%PDF_SIZE%%!$pdf_size!g" \ -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ -e "s,%%SCRIPTURL%%,$scripturl,g" \ -e "s!%%SCRIPTNAME%%!$prog!g" \ -e "$CONDS" \ $GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html" echo "Done, see $outdir/ subdirectory for new files." # 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: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/configure�������������������������������������������������������������������������������0000755�0000000�0000000�00002244032�12116513163�011416� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for GNU wdiff 1.2.1. # # Report bugs to <wdiff-bugs@gnu.org>. # # # Copyright (C) 1992-1996, 1998-2012 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 more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do 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 as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } 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.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do 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 " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and wdiff-bugs@gnu.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_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 || $as_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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # 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" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac 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 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" test -n "$DJDIR" || exec 7<&0 </dev/null exec 6>&1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/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= # Identity of this package. PACKAGE_NAME='GNU wdiff' PACKAGE_TARNAME='wdiff' PACKAGE_VERSION='1.2.1' PACKAGE_STRING='GNU wdiff 1.2.1' PACKAGE_BUGREPORT='wdiff-bugs@gnu.org' PACKAGE_URL='http://www.gnu.org/software/wdiff/' # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> #ifdef HAVE_SYS_TYPES_H # include <sys/types.h> #endif #ifdef HAVE_SYS_STAT_H # include <sys/stat.h> #endif #ifdef STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # ifdef HAVE_STDLIB_H # include <stdlib.h> # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif #ifdef HAVE_STRINGS_H # include <strings.h> #endif #ifdef HAVE_INTTYPES_H # include <inttypes.h> #endif #ifdef HAVE_STDINT_H # include <stdint.h> #endif #ifdef HAVE_UNISTD_H # include <unistd.h> #endif" gl_func_list= gl_header_list= gl_getopt_required=POSIX gl_getopt_required=POSIX gt_needs= ac_subst_vars='gltests_LTLIBOBJS gltests_LIBOBJS gl_LTLIBOBJS gl_LIBOBJS CONFIG_INCLUDE am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS EXPERIMENTAL_TEXI EXPERIMENTAL_MANS EXPERIMENTAL_PROGRAMS EXPERIMENTAL POSUB INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS HELP2MAN LIBGNU_LTLIBDEPS LIBGNU_LIBDEPS gltests_WITNESS NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H HAVE_FEATURES_H LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE LIBUNISTRING_UNIWIDTH_H LIBUNISTRING_UNITYPES_H HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H REPLACE_TIMEGM REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R GNULIB_TIME_R GNULIB_TIMEGM GNULIB_STRPTIME GNULIB_NANOSLEEP GNULIB_MKTIME NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H NEXT_SYS_WAIT_H GNULIB_WAITPID WINDOWS_64_BIT_OFF_T NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H NEXT_SYS_TYPES_H WINDOWS_64_BIT_ST_SIZE NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H HAVE_WINSOCK2_H NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX SIZE_T_SUFFIX PTRDIFF_T_SUFFIX HAVE_SIGNED_WINT_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_SIG_ATOMIC_T BITSIZEOF_WINT_T BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T HAVE_SYS_BITYPES_H HAVE_SYS_INTTYPES_H HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H HAVE_UNSIGNED_LONG_LONG_INT HAVE_LONG_LONG_INT HAVE__BOOL GL_GENERATE_STDBOOL_H_FALSE GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H APPLE_UNIVERSAL_BUILD HAVE_MSVC_INVALID_PARAMETER_HANDLER UNDEFINE_STRTOK_R REPLACE_STRTOK_R REPLACE_STRSIGNAL REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT REPLACE_STRERROR_R REPLACE_STRERROR REPLACE_STRCHRNUL REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRDUP REPLACE_STPNCPY REPLACE_MEMMEM REPLACE_MEMCHR HAVE_STRVERSCMP HAVE_DECL_STRSIGNAL HAVE_DECL_STRERROR_R HAVE_DECL_STRTOK_R HAVE_STRCASESTR HAVE_STRSEP HAVE_STRPBRK HAVE_DECL_STRNLEN HAVE_DECL_STRNDUP HAVE_DECL_STRDUP HAVE_STRCHRNUL HAVE_STPNCPY HAVE_STPCPY HAVE_RAWMEMCHR HAVE_DECL_MEMRCHR HAVE_MEMPCPY HAVE_DECL_MEMMEM HAVE_MEMCHR HAVE_FFSLL HAVE_FFSL HAVE_MBSLEN GNULIB_STRVERSCMP GNULIB_STRSIGNAL GNULIB_STRERROR_R GNULIB_STRERROR GNULIB_MBSTOK_R GNULIB_MBSSEP GNULIB_MBSSPN GNULIB_MBSPBRK GNULIB_MBSCSPN GNULIB_MBSCASESTR GNULIB_MBSPCASECMP GNULIB_MBSNCASECMP GNULIB_MBSCASECMP GNULIB_MBSSTR GNULIB_MBSRCHR GNULIB_MBSCHR GNULIB_MBSNLEN GNULIB_MBSLEN GNULIB_STRTOK_R GNULIB_STRCASESTR GNULIB_STRSTR GNULIB_STRSEP GNULIB_STRPBRK GNULIB_STRNLEN GNULIB_STRNDUP GNULIB_STRNCAT GNULIB_STRDUP GNULIB_STRCHRNUL GNULIB_STPNCPY GNULIB_STPCPY GNULIB_RAWMEMCHR GNULIB_MEMRCHR GNULIB_MEMPCPY GNULIB_MEMMEM GNULIB_MEMCHR GNULIB_FFSLL GNULIB_FFSL LOCALE_FR_UTF8 LOCALE_ZH_CN LOCALE_JA REPLACE_UTIMENSAT REPLACE_STAT REPLACE_MKNOD REPLACE_MKFIFO REPLACE_MKDIR REPLACE_LSTAT REPLACE_FUTIMENS REPLACE_FSTATAT REPLACE_FSTAT HAVE_UTIMENSAT HAVE_MKNODAT HAVE_MKNOD HAVE_MKFIFOAT HAVE_MKFIFO HAVE_MKDIRAT HAVE_LSTAT HAVE_LCHMOD HAVE_FUTIMENS HAVE_FSTATAT HAVE_FCHMODAT GNULIB_UTIMENSAT GNULIB_STAT GNULIB_MKNODAT GNULIB_MKNOD GNULIB_MKFIFOAT GNULIB_MKFIFO GNULIB_MKDIRAT GNULIB_LSTAT GNULIB_LCHMOD GNULIB_FUTIMENS GNULIB_FSTATAT GNULIB_FSTAT GNULIB_FCHMODAT NEXT_AS_FIRST_DIRECTIVE_LOCALE_H NEXT_LOCALE_H HAVE_XLOCALE_H NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H GL_GENERATE_STDDEF_H_FALSE GL_GENERATE_STDDEF_H_TRUE STDDEF_H HAVE_WCHAR_T REPLACE_NULL REPLACE_STRUCT_LCONV REPLACE_DUPLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV HAVE_DUPLOCALE GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV LOCALCHARSET_TESTS_ENVIRONMENT GLIBC21 HAVE_LANGINFO_YESEXPR HAVE_LANGINFO_ERA HAVE_LANGINFO_T_FMT_AMPM HAVE_LANGINFO_CODESET HAVE_LANGINFO_H NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H NEXT_LANGINFO_H REPLACE_NL_LANGINFO HAVE_NL_LANGINFO GNULIB_NL_LANGINFO REPLACE_TOWLOWER REPLACE_ISWCNTRL HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H HAVE_WINT_T HAVE_ISWCNTRL REPLACE_ISWBLANK HAVE_WCTRANS_T HAVE_WCTYPE_T HAVE_ISWBLANK GNULIB_TOWCTRANS GNULIB_WCTRANS GNULIB_ISWCTYPE GNULIB_WCTYPE GNULIB_ISWBLANK LTLIBINTL LIBINTL GNULIB_GL_UNISTD_H_GETOPT GETOPT_H HAVE_GETOPT_H NEXT_AS_FIRST_DIRECTIVE_GETOPT_H NEXT_GETOPT_H REPLACE_VSPRINTF REPLACE_VSNPRINTF REPLACE_VPRINTF REPLACE_VFPRINTF REPLACE_VDPRINTF REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT REPLACE_RENAME REPLACE_REMOVE REPLACE_PRINTF REPLACE_POPEN REPLACE_PERROR REPLACE_OBSTACK_PRINTF REPLACE_GETLINE REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL REPLACE_FSEEKO REPLACE_FSEEK REPLACE_FREOPEN REPLACE_FPURGE REPLACE_FPRINTF REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FDOPEN REPLACE_FCLOSE REPLACE_DPRINTF HAVE_VDPRINTF HAVE_VASPRINTF HAVE_RENAMEAT HAVE_POPEN HAVE_PCLOSE HAVE_FTELLO HAVE_FSEEKO HAVE_DPRINTF HAVE_DECL_VSNPRINTF HAVE_DECL_SNPRINTF HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETLINE HAVE_DECL_GETDELIM HAVE_DECL_FTELLO HAVE_DECL_FSEEKO HAVE_DECL_FPURGE GNULIB_VSPRINTF_POSIX GNULIB_VSNPRINTF GNULIB_VPRINTF_POSIX GNULIB_VPRINTF GNULIB_VFPRINTF_POSIX GNULIB_VFPRINTF GNULIB_VDPRINTF GNULIB_VSCANF GNULIB_VFSCANF GNULIB_VASPRINTF GNULIB_TMPFILE GNULIB_STDIO_H_SIGPIPE GNULIB_STDIO_H_NONBLOCKING GNULIB_SPRINTF_POSIX GNULIB_SNPRINTF GNULIB_SCANF GNULIB_RENAMEAT GNULIB_RENAME GNULIB_REMOVE GNULIB_PUTS GNULIB_PUTCHAR GNULIB_PUTC GNULIB_PRINTF_POSIX GNULIB_PRINTF GNULIB_POPEN GNULIB_PERROR GNULIB_PCLOSE GNULIB_OBSTACK_PRINTF_POSIX GNULIB_OBSTACK_PRINTF GNULIB_GETLINE GNULIB_GETDELIM GNULIB_GETCHAR GNULIB_GETC GNULIB_FWRITE GNULIB_FTELLO GNULIB_FTELL GNULIB_FSEEKO GNULIB_FSEEK GNULIB_FSCANF GNULIB_FREOPEN GNULIB_FREAD GNULIB_FPUTS GNULIB_FPUTC GNULIB_FPURGE GNULIB_FPRINTF_POSIX GNULIB_FPRINTF GNULIB_FOPEN GNULIB_FGETS GNULIB_FGETC GNULIB_FFLUSH GNULIB_FDOPEN GNULIB_FCLOSE GNULIB_DPRINTF REPLACE_ITOLD GL_GENERATE_FLOAT_H_FALSE GL_GENERATE_FLOAT_H_TRUE FLOAT_H NEXT_AS_FIRST_DIRECTIVE_FLOAT_H NEXT_FLOAT_H EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN GL_GENERATE_ERRNO_H_FALSE GL_GENERATE_ERRNO_H_TRUE ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H PRAGMA_COLUMNS PRAGMA_SYSTEM_HEADER INCLUDE_NEXT_AS_FIRST_DIRECTIVE INCLUDE_NEXT UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R REPLACE_SYMLINK REPLACE_SLEEP REPLACE_RMDIR REPLACE_READLINK REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_LSEEK REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT REPLACE_DUP2 REPLACE_DUP REPLACE_CLOSE REPLACE_CHOWN HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP HAVE_SETHOSTNAME HAVE_READLINKAT HAVE_READLINK HAVE_PWRITE HAVE_PREAD HAVE_PIPE2 HAVE_PIPE HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT HAVE_EUIDACCESS HAVE_DUP3 HAVE_DUP2 HAVE_CHOWN GNULIB_WRITE GNULIB_USLEEP GNULIB_UNLINKAT GNULIB_UNLINK GNULIB_UNISTD_H_SIGPIPE GNULIB_UNISTD_H_NONBLOCKING GNULIB_TTYNAME_R GNULIB_SYMLINKAT GNULIB_SYMLINK GNULIB_SLEEP GNULIB_SETHOSTNAME GNULIB_RMDIR GNULIB_READLINKAT GNULIB_READLINK GNULIB_READ GNULIB_PWRITE GNULIB_PREAD GNULIB_PIPE2 GNULIB_PIPE GNULIB_LSEEK GNULIB_LINKAT GNULIB_LINK GNULIB_LCHOWN GNULIB_ISATTY GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R GNULIB_GETLOGIN GNULIB_GETHOSTNAME GNULIB_GETGROUPS GNULIB_GETDTABLESIZE GNULIB_GETDOMAINNAME GNULIB_GETCWD GNULIB_FTRUNCATE GNULIB_FSYNC GNULIB_FDATASYNC GNULIB_FCHOWNAT GNULIB_FCHDIR GNULIB_FACCESSAT GNULIB_EUIDACCESS GNULIB_ENVIRON GNULIB_DUP3 GNULIB_DUP2 GNULIB_DUP GNULIB_CLOSE GNULIB_CHOWN GNULIB_CHDIR pkglibexecdir lispdir REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOD REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOC REPLACE_RANDOM_R REPLACE_PUTENV REPLACE_PTSNAME_R REPLACE_PTSNAME REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC HAVE_DECL_UNSETENV HAVE_UNLOCKPT HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOLL HAVE_STRTOD HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_RANDOM_R HAVE_RANDOM_H HAVE_RANDOM HAVE_PTSNAME_R HAVE_PTSNAME HAVE_POSIX_OPENPT HAVE_MKSTEMPS HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP HAVE_GRANTPT HAVE_GETSUBOPT HAVE_DECL_GETLOADAVG HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE__EXIT GNULIB_WCTOMB GNULIB_UNSETENV GNULIB_UNLOCKPT GNULIB_SYSTEM_POSIX GNULIB_STRTOULL GNULIB_STRTOLL GNULIB_STRTOD GNULIB_SETENV GNULIB_SECURE_GETENV GNULIB_RPMATCH GNULIB_REALPATH GNULIB_REALLOC_POSIX GNULIB_RANDOM_R GNULIB_RANDOM GNULIB_PUTENV GNULIB_PTSNAME_R GNULIB_PTSNAME GNULIB_POSIX_OPENPT GNULIB_MKSTEMPS GNULIB_MKSTEMP GNULIB_MKOSTEMPS GNULIB_MKOSTEMP GNULIB_MKDTEMP GNULIB_MBTOWC GNULIB_MALLOC_POSIX GNULIB_GRANTPT GNULIB_GETSUBOPT GNULIB_GETLOADAVG GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT LOCALE_FR host_os host_vendor host_cpu host build_os build_vendor build_cpu build REPLACE_WCSWIDTH REPLACE_WCWIDTH REPLACE_WCSNRTOMBS REPLACE_WCSRTOMBS REPLACE_WCRTOMB REPLACE_MBSNRTOWCS REPLACE_MBSRTOWCS REPLACE_MBRLEN REPLACE_MBRTOWC REPLACE_MBSINIT REPLACE_WCTOB REPLACE_BTOWC REPLACE_MBSTATE_T HAVE_DECL_WCWIDTH HAVE_DECL_WCTOB HAVE_WCSWIDTH HAVE_WCSTOK HAVE_WCSSTR HAVE_WCSPBRK HAVE_WCSSPN HAVE_WCSCSPN HAVE_WCSRCHR HAVE_WCSCHR HAVE_WCSDUP HAVE_WCSXFRM HAVE_WCSCOLL HAVE_WCSNCASECMP HAVE_WCSCASECMP HAVE_WCSNCMP HAVE_WCSCMP HAVE_WCSNCAT HAVE_WCSCAT HAVE_WCPNCPY HAVE_WCSNCPY HAVE_WCPCPY HAVE_WCSCPY HAVE_WCSNLEN HAVE_WCSLEN HAVE_WMEMSET HAVE_WMEMMOVE HAVE_WMEMCPY HAVE_WMEMCMP HAVE_WMEMCHR HAVE_WCSNRTOMBS HAVE_WCSRTOMBS HAVE_WCRTOMB HAVE_MBSNRTOWCS HAVE_MBSRTOWCS HAVE_MBRLEN HAVE_MBRTOWC HAVE_MBSINIT HAVE_BTOWC GNULIB_WCSWIDTH GNULIB_WCSTOK GNULIB_WCSSTR GNULIB_WCSPBRK GNULIB_WCSSPN GNULIB_WCSCSPN GNULIB_WCSRCHR GNULIB_WCSCHR GNULIB_WCSDUP GNULIB_WCSXFRM GNULIB_WCSCOLL GNULIB_WCSNCASECMP GNULIB_WCSCASECMP GNULIB_WCSNCMP GNULIB_WCSCMP GNULIB_WCSNCAT GNULIB_WCSCAT GNULIB_WCPNCPY GNULIB_WCSNCPY GNULIB_WCPCPY GNULIB_WCSCPY GNULIB_WCSNLEN GNULIB_WCSLEN GNULIB_WMEMSET GNULIB_WMEMMOVE GNULIB_WMEMCPY GNULIB_WMEMCMP GNULIB_WMEMCHR GNULIB_WCWIDTH GNULIB_WCSNRTOMBS GNULIB_WCSRTOMBS GNULIB_WCRTOMB GNULIB_MBSNRTOWCS GNULIB_MBSRTOWCS GNULIB_MBRLEN GNULIB_MBRTOWC GNULIB_MBSINIT GNULIB_WCTOB GNULIB_BTOWC GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H ALLOCA GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE RANLIB ARFLAGS AR EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AUTOTEST AUTOM4TE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_largefile with_included_regex enable_nls with_gnu_ld enable_rpath with_libiconv_prefix with_libintl_prefix with_default_pager enable_experimental with_termcap ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # 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= ;; *) 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_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=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_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=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 ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_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'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. 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 # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 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 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 .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # 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 -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | 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 .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 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 GNU wdiff 1.2.1 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/wdiff] --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 System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of GNU wdiff 1.2.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-experimental enable experimental applications (mdiff, unify, wdiff2) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-included-regex don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library (use with caution on other systems). --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-default-pager=PATH Use PATH as the pager if the PAGER environment variable isn't set --with-termcap[=LIB] use termcap library LIB, e.g. ncursesw Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor 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 <wdiff-bugs@gnu.org>. GNU wdiff home page: <http://www.gnu.org/software/wdiff/>. General help using GNU software: <http://www.gnu.org/gethelp/>. _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" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && 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=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_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 $as_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 GNU wdiff configure 1.2.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 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 ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------- ## ## Report this to wdiff-bugs@gnu.org ## ## --------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" 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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case <limits.h> declares $2. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $2 /* 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 $2 (); /* 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_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include <stdio.h> #include <stdlib.h> int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 <conftest.val; ac_retval=0 else ac_retval=1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext rm -f conftest.val fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" 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 eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member 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 GNU wdiff $as_me 1.2.1, which was generated by GNU Autoconf 2.69. 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=. $as_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append 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 as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset 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 $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" 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_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; 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 $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_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'; as_fn_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 $as_echo "/* confdefs.h */" > 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 cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gl_func_list="$gl_func_list btowc" gl_func_list="$gl_func_list canonicalize_file_name" gl_func_list="$gl_func_list getcwd" gl_func_list="$gl_func_list readlink" gl_func_list="$gl_func_list realpath" gl_header_list="$gl_header_list sys/param.h" gl_header_list="$gl_header_list unistd.h" gl_func_list="$gl_func_list getdelim" gl_getopt_required=GNU gl_header_list="$gl_header_list getopt.h" gl_func_list="$gl_func_list iswcntrl" gl_header_list="$gl_header_list wctype.h" gl_func_list="$gl_func_list iswblank" gl_header_list="$gl_header_list langinfo.h" gl_func_list="$gl_func_list symlink" gl_header_list="$gl_header_list xlocale.h" gl_func_list="$gl_func_list lstat" gl_func_list="$gl_func_list mbsinit" gl_func_list="$gl_func_list mbrtowc" gl_header_list="$gl_header_list sys/mman.h" gl_func_list="$gl_func_list mprotect" gl_func_list="$gl_func_list _set_invalid_parameter_handler" gl_func_list="$gl_func_list nl_langinfo" gl_func_list="$gl_func_list alarm" gl_func_list="$gl_func_list isblank" gl_func_list="$gl_func_list iswctype" gl_func_list="$gl_func_list wcscoll" gl_func_list="$gl_func_list setenv" gl_header_list="$gl_header_list wchar.h" gl_header_list="$gl_header_list stdint.h" gl_header_list="$gl_header_list sys/socket.h" gl_header_list="$gl_header_list sys/stat.h" gl_header_list="$gl_header_list sys/wait.h" gl_header_list="$gl_header_list sys/time.h" gl_func_list="$gl_func_list vasnprintf" gl_header_list="$gl_header_list features.h" gl_func_list="$gl_func_list snprintf" gl_func_list="$gl_func_list wcrtomb" gl_func_list="$gl_func_list wcwidth" gt_needs="$gt_needs need-ngettext" # 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,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_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 # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_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. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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 ac_aux_dir= for ac_dir in build-aux "$srcdir"/build-aux; 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 as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 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. am__api_version='1.13' # 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. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&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 as_fn_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 rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$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' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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 $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P 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. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi 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='wdiff' VERSION='1.2.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ac_config_headers="$ac_config_headers config.h" ## ------------------------ ## ## Autotest initialisation. ## ## ------------------------ ## ac_config_commands="$ac_config_commands tests/atconfig" AUTOM4TE=${AUTOM4TE=autom4te} AUTOTEST='$(AUTOM4TE) --language=autotest' 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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 as_fn_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" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 | *.dSYM | *.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 ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> struct stat; /* 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" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg 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) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : 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 DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_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='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&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". rm -rf conftest.dir 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 am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac 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 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # 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. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$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=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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&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 <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$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 <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then 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" as_fn_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 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_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 as_fn_arith $ac_count + 1 && ac_count=$as_val 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 if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then 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" as_fn_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 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_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 as_fn_arith $ac_count + 1 && ac_count=$as_val 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 if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 $as_echo_n "checking for Minix Amsterdam compiler... " >&6; } if ${gl_cv_c_amsterdam_compiler+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ACK__ Amsterdam #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Amsterdam" >/dev/null 2>&1; then : gl_cv_c_amsterdam_compiler=yes else gl_cv_c_amsterdam_compiler=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 $as_echo "$gl_cv_c_amsterdam_compiler" >&6; } if test -z "$AR"; then if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi else if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi fi fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <float.h> int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> _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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> _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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ctype.h> #include <stdlib.h> #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 if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h 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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 $as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } if ${ac_cv_should_define__xopen_source+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_should_define__xopen_source=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include <wchar.h> mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_should_define__xopen_source=yes 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 $as_echo "$ac_cv_should_define__xopen_source" >&6; } test $ac_cv_should_define__xopen_source = yes && $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi $as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h fi # Code from module alloca-opt: # Code from module btowc: # Code from module canonicalize-lgpl: # Code from module configmake: # Code from module dosname: # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: # Code from module extern-inline: # Code from module float: # Code from module gendocs: # Code from module getdelim: # Code from module getline: # Code from module getopt: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module gettext: # Code from module gettext-h: # Code from module gnumakefile: # Code from module havelib: # Code from module include_next: # Code from module intprops: # Code from module iswblank: # Code from module langinfo: # Code from module largefile: # Code from module localcharset: # Code from module locale: # Code from module localeconv: # Code from module lstat: # Code from module maintainer-makefile: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: # Code from module mbchar: # Code from module mbrtowc: # Code from module mbsinit: # Code from module mbsrchr: # Code from module mbtowc: # Code from module mbuiter: # Code from module memchr: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nl_langinfo: # Code from module nocrash: # Code from module pathmax: # Code from module readlink: # Code from module realloc-posix: # Code from module regex: # Code from module setenv: # Code from module size_max: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stat: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module string: # Code from module strnlen1: # Code from module strstr-simple: # Code from module sys_stat: # Code from module sys_types: # Code from module sys_wait: # Code from module time: # Code from module unistd: # Code from module unitypes: # Code from module uniwidth/base: # Code from module uniwidth/width: # Code from module useless-if-before-free: # Code from module vasnprintf: # Code from module vasprintf: # Code from module vc-list-files: # Code from module verify: # Code from module wchar: # Code from module wcrtomb: # Code from module wctype-h: # Code from module wcwidth: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: # Code from module xsize: LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <alloca.h> int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include <malloc.h> # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include <alloca.h> # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi GNULIB_BTOWC=0; GNULIB_WCTOB=0; GNULIB_MBSINIT=0; GNULIB_MBRTOWC=0; GNULIB_MBRLEN=0; GNULIB_MBSRTOWCS=0; GNULIB_MBSNRTOWCS=0; GNULIB_WCRTOMB=0; GNULIB_WCSRTOMBS=0; GNULIB_WCSNRTOMBS=0; GNULIB_WCWIDTH=0; GNULIB_WMEMCHR=0; GNULIB_WMEMCMP=0; GNULIB_WMEMCPY=0; GNULIB_WMEMMOVE=0; GNULIB_WMEMSET=0; GNULIB_WCSLEN=0; GNULIB_WCSNLEN=0; GNULIB_WCSCPY=0; GNULIB_WCPCPY=0; GNULIB_WCSNCPY=0; GNULIB_WCPNCPY=0; GNULIB_WCSCAT=0; GNULIB_WCSNCAT=0; GNULIB_WCSCMP=0; GNULIB_WCSNCMP=0; GNULIB_WCSCASECMP=0; GNULIB_WCSNCASECMP=0; GNULIB_WCSCOLL=0; GNULIB_WCSXFRM=0; GNULIB_WCSDUP=0; GNULIB_WCSCHR=0; GNULIB_WCSRCHR=0; GNULIB_WCSCSPN=0; GNULIB_WCSSPN=0; GNULIB_WCSPBRK=0; GNULIB_WCSSTR=0; GNULIB_WCSTOK=0; GNULIB_WCSWIDTH=0; HAVE_BTOWC=1; HAVE_MBSINIT=1; HAVE_MBRTOWC=1; HAVE_MBRLEN=1; HAVE_MBSRTOWCS=1; HAVE_MBSNRTOWCS=1; HAVE_WCRTOMB=1; HAVE_WCSRTOMBS=1; HAVE_WCSNRTOMBS=1; HAVE_WMEMCHR=1; HAVE_WMEMCMP=1; HAVE_WMEMCPY=1; HAVE_WMEMMOVE=1; HAVE_WMEMSET=1; HAVE_WCSLEN=1; HAVE_WCSNLEN=1; HAVE_WCSCPY=1; HAVE_WCPCPY=1; HAVE_WCSNCPY=1; HAVE_WCPNCPY=1; HAVE_WCSCAT=1; HAVE_WCSNCAT=1; HAVE_WCSCMP=1; HAVE_WCSNCMP=1; HAVE_WCSCASECMP=1; HAVE_WCSNCASECMP=1; HAVE_WCSCOLL=1; HAVE_WCSXFRM=1; HAVE_WCSDUP=1; HAVE_WCSCHR=1; HAVE_WCSRCHR=1; HAVE_WCSCSPN=1; HAVE_WCSSPN=1; HAVE_WCSPBRK=1; HAVE_WCSSTR=1; HAVE_WCSTOK=1; HAVE_WCSWIDTH=1; HAVE_DECL_WCTOB=1; HAVE_DECL_WCWIDTH=1; REPLACE_MBSTATE_T=0; REPLACE_BTOWC=0; REPLACE_WCTOB=0; REPLACE_MBSINIT=0; REPLACE_MBRTOWC=0; REPLACE_MBRLEN=0; REPLACE_MBSRTOWCS=0; REPLACE_MBSNRTOWCS=0; REPLACE_WCRTOMB=0; REPLACE_WCSRTOMBS=0; REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; REPLACE_WCSWIDTH=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5 $as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; } if ${gl_cv_header_wchar_h_correct_inline+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_wchar_h_correct_inline=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> extern int zero (void); int main () { return zero(); } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then mv conftest.$ac_objext conftest1.$ac_objext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int zero (void) { return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then mv conftest.$ac_objext conftest2.$ac_objext if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 $as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; } if test $gl_cv_header_wchar_h_correct_inline = no; then as_fn_error $? "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 fi for ac_func in $gl_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr GNULIB__EXIT=0; GNULIB_ATOLL=0; GNULIB_CALLOC_POSIX=0; GNULIB_CANONICALIZE_FILE_NAME=0; GNULIB_GETLOADAVG=0; GNULIB_GETSUBOPT=0; GNULIB_GRANTPT=0; GNULIB_MALLOC_POSIX=0; GNULIB_MBTOWC=0; GNULIB_MKDTEMP=0; GNULIB_MKOSTEMP=0; GNULIB_MKOSTEMPS=0; GNULIB_MKSTEMP=0; GNULIB_MKSTEMPS=0; GNULIB_POSIX_OPENPT=0; GNULIB_PTSNAME=0; GNULIB_PTSNAME_R=0; GNULIB_PUTENV=0; GNULIB_RANDOM=0; GNULIB_RANDOM_R=0; GNULIB_REALLOC_POSIX=0; GNULIB_REALPATH=0; GNULIB_RPMATCH=0; GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; GNULIB_STRTOLL=0; GNULIB_STRTOULL=0; GNULIB_SYSTEM_POSIX=0; GNULIB_UNLOCKPT=0; GNULIB_UNSETENV=0; GNULIB_WCTOMB=0; HAVE__EXIT=1; HAVE_ATOLL=1; HAVE_CANONICALIZE_FILE_NAME=1; HAVE_DECL_GETLOADAVG=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; HAVE_MKSTEMP=1; HAVE_MKSTEMPS=1; HAVE_POSIX_OPENPT=1; HAVE_PTSNAME=1; HAVE_PTSNAME_R=1; HAVE_RANDOM=1; HAVE_RANDOM_H=1; HAVE_RANDOM_R=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_STRTOD=1; HAVE_STRTOLL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; HAVE_SYS_LOADAVG_H=0; HAVE_UNLOCKPT=1; HAVE_DECL_UNSETENV=1; REPLACE_CALLOC=0; REPLACE_CANONICALIZE_FILE_NAME=0; REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; REPLACE_STRTOD=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } if ${gl_cv_double_slash_root+:} false; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # <bug-gnulib@gnu.org>. case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 $as_echo "$gl_cv_double_slash_root" >&6; } if test "$gl_cv_double_slash_root" = yes; then $as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5 $as_echo_n "checking whether realpath works... " >&6; } if ${gl_cv_func_realpath_works+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.a mkdir conftest.d if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_realpath_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include <mach/mach.h> #include <mach/mach_error.h> #include <mach/thread_status.h> #include <mach/exception.h> #include <mach/task.h> #include <pthread.h> /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winerror.h> static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include <signal.h> /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif #include <stdlib.h> #include <string.h> int main () { int result = 0; { char *name = realpath ("conftest.a", NULL); if (!(name && *name == '/')) result |= 1; } { char *name = realpath ("conftest.b/../conftest.a", NULL); if (name != NULL) result |= 2; } { char *name = realpath ("conftest.a/", NULL); if (name != NULL) result |= 4; } { char *name1 = realpath (".", NULL); char *name2 = realpath ("conftest.d//./..", NULL); if (strcmp (name1, name2) != 0) result |= 8; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_realpath_works=yes else gl_cv_func_realpath_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest.a conftest.d fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_realpath_works" >&5 $as_echo "$gl_cv_func_realpath_works" >&6; } case "$gl_cv_func_realpath_works" in *yes) $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h ;; esac for ac_header in $gl_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done : : GNULIB_CHDIR=0; GNULIB_CHOWN=0; GNULIB_CLOSE=0; GNULIB_DUP=0; GNULIB_DUP2=0; GNULIB_DUP3=0; GNULIB_ENVIRON=0; GNULIB_EUIDACCESS=0; GNULIB_FACCESSAT=0; GNULIB_FCHDIR=0; GNULIB_FCHOWNAT=0; GNULIB_FDATASYNC=0; GNULIB_FSYNC=0; GNULIB_FTRUNCATE=0; GNULIB_GETCWD=0; GNULIB_GETDOMAINNAME=0; GNULIB_GETDTABLESIZE=0; GNULIB_GETGROUPS=0; GNULIB_GETHOSTNAME=0; GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; GNULIB_GETUSERSHELL=0; GNULIB_GROUP_MEMBER=0; GNULIB_ISATTY=0; GNULIB_LCHOWN=0; GNULIB_LINK=0; GNULIB_LINKAT=0; GNULIB_LSEEK=0; GNULIB_PIPE=0; GNULIB_PIPE2=0; GNULIB_PREAD=0; GNULIB_PWRITE=0; GNULIB_READ=0; GNULIB_READLINK=0; GNULIB_READLINKAT=0; GNULIB_RMDIR=0; GNULIB_SETHOSTNAME=0; GNULIB_SLEEP=0; GNULIB_SYMLINK=0; GNULIB_SYMLINKAT=0; GNULIB_TTYNAME_R=0; GNULIB_UNISTD_H_NONBLOCKING=0; GNULIB_UNISTD_H_SIGPIPE=0; GNULIB_UNLINK=0; GNULIB_UNLINKAT=0; GNULIB_USLEEP=0; GNULIB_WRITE=0; HAVE_CHOWN=1; HAVE_DUP2=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; HAVE_FACCESSAT=1; HAVE_FCHDIR=1; HAVE_FCHOWNAT=1; HAVE_FDATASYNC=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDTABLESIZE=1; HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; HAVE_PIPE=1; HAVE_PIPE2=1; HAVE_PREAD=1; HAVE_PWRITE=1; HAVE_READLINK=1; HAVE_READLINKAT=1; HAVE_SETHOSTNAME=1; HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_FCHDIR=1; HAVE_DECL_FDATASYNC=1; HAVE_DECL_GETDOMAINNAME=1; HAVE_DECL_GETLOGIN_R=1; HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_DUP=0; REPLACE_DUP2=0; REPLACE_FCHOWNAT=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; REPLACE_GETDOMAINNAME=0; REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; REPLACE_LINKAT=0; REPLACE_LSEEK=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_RMDIR=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=0; REPLACE_TTYNAME_R=0; REPLACE_UNLINK=0; REPLACE_UNLINKAT=0; REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_WINSOCK2_H=0; UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 $as_echo_n "checking if environ is properly declared... " >&6; } if ${gt_cv_var_environ_declaration+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H #include <unistd.h> #endif /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ #include <stdlib.h> extern struct { int foo; } environ; int main () { environ.foo = 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_var_environ_declaration=no else gt_cv_var_environ_declaration=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 $as_echo "$gt_cv_var_environ_declaration" >&6; } if test $gt_cv_var_environ_declaration = yes; then $as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h fi if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } if ${gl_cv_have_include_next+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include <stdio.h> #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <conftest.h> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=yes else CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <conftest.h> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=buggy else gl_cv_have_include_next=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 $as_echo "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 $as_echo_n "checking whether system header files limit the line length... " >&6; } if ${gl_cv_pragma_columns+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM choke me #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1; then : gl_cv_pragma_columns=yes else gl_cv_pragma_columns=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5 $as_echo "$gl_cv_pragma_columns" >&6; } if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } if ${gl_cv_header_errno_h_complete+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "booboo" >/dev/null 2>&1; then : gl_cv_header_errno_h_complete=no else gl_cv_header_errno_h_complete=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 $as_echo "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5 $as_echo_n "checking absolute name of <errno.h>... " >&6; } if ${gl_cv_next_errno_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'errno.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 $as_echo "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'errno.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_errno_h fi NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive ERRNO_H='errno.h' fi if test -n "$ERRNO_H"; then GL_GENERATE_ERRNO_H_TRUE= GL_GENERATE_ERRNO_H_FALSE='#' else GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE= fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=yes else gl_cv_header_errno_h_EMULTIHOP=no fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 $as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= ;; *) EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } if ${gl_cv_header_errno_h_ENOLINK+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=yes else gl_cv_header_errno_h_ENOLINK=no fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = hidden; then if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 $as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= ;; *) ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=yes else gl_cv_header_errno_h_EOVERFLOW=no fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= ;; *) EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" ;; esac fi ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi XGETTEXT_EXTRA_OPTIONS= GNULIB_DPRINTF=0; GNULIB_FCLOSE=0; GNULIB_FDOPEN=0; GNULIB_FFLUSH=0; GNULIB_FGETC=0; GNULIB_FGETS=0; GNULIB_FOPEN=0; GNULIB_FPRINTF=0; GNULIB_FPRINTF_POSIX=0; GNULIB_FPURGE=0; GNULIB_FPUTC=0; GNULIB_FPUTS=0; GNULIB_FREAD=0; GNULIB_FREOPEN=0; GNULIB_FSCANF=0; GNULIB_FSEEK=0; GNULIB_FSEEKO=0; GNULIB_FTELL=0; GNULIB_FTELLO=0; GNULIB_FWRITE=0; GNULIB_GETC=0; GNULIB_GETCHAR=0; GNULIB_GETDELIM=0; GNULIB_GETLINE=0; GNULIB_OBSTACK_PRINTF=0; GNULIB_OBSTACK_PRINTF_POSIX=0; GNULIB_PCLOSE=0; GNULIB_PERROR=0; GNULIB_POPEN=0; GNULIB_PRINTF=0; GNULIB_PRINTF_POSIX=0; GNULIB_PUTC=0; GNULIB_PUTCHAR=0; GNULIB_PUTS=0; GNULIB_REMOVE=0; GNULIB_RENAME=0; GNULIB_RENAMEAT=0; GNULIB_SCANF=0; GNULIB_SNPRINTF=0; GNULIB_SPRINTF_POSIX=0; GNULIB_STDIO_H_NONBLOCKING=0; GNULIB_STDIO_H_SIGPIPE=0; GNULIB_TMPFILE=0; GNULIB_VASPRINTF=0; GNULIB_VFSCANF=0; GNULIB_VSCANF=0; GNULIB_VDPRINTF=0; GNULIB_VFPRINTF=0; GNULIB_VFPRINTF_POSIX=0; GNULIB_VPRINTF=0; GNULIB_VPRINTF_POSIX=0; GNULIB_VSNPRINTF=0; GNULIB_VSPRINTF_POSIX=0; HAVE_DECL_FPURGE=1; HAVE_DECL_FSEEKO=1; HAVE_DECL_FTELLO=1; HAVE_DECL_GETDELIM=1; HAVE_DECL_GETLINE=1; HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_SNPRINTF=1; HAVE_DECL_VSNPRINTF=1; HAVE_DPRINTF=1; HAVE_FSEEKO=1; HAVE_FTELLO=1; HAVE_PCLOSE=1; HAVE_POPEN=1; HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; HAVE_VDPRINTF=1; REPLACE_DPRINTF=0; REPLACE_FCLOSE=0; REPLACE_FDOPEN=0; REPLACE_FFLUSH=0; REPLACE_FOPEN=0; REPLACE_FPRINTF=0; REPLACE_FPURGE=0; REPLACE_FREOPEN=0; REPLACE_FSEEK=0; REPLACE_FSEEKO=0; REPLACE_FTELL=0; REPLACE_FTELLO=0; REPLACE_GETDELIM=0; REPLACE_GETLINE=0; REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; REPLACE_POPEN=0; REPLACE_PRINTF=0; REPLACE_REMOVE=0; REPLACE_RENAME=0; REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; REPLACE_VDPRINTF=0; REPLACE_VFPRINTF=0; REPLACE_VPRINTF=0; REPLACE_VSNPRINTF=0; REPLACE_VSPRINTF=0; ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default" if test "x$ac_cv_have_decl_getdelim" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDELIM $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default" if test "x$ac_cv_have_decl_getline" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETLINE $ac_have_decl _ACEOF : if test $gl_cv_have_include_next = yes; then gl_cv_next_getopt_h='<'getopt.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5 $as_echo_n "checking absolute name of <getopt.h>... " >&6; } if ${gl_cv_next_getopt_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_getopt_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <getopt.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'getopt.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_getopt_h='<'getopt.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5 $as_echo "$gl_cv_next_getopt_h" >&6; } fi NEXT_GETOPT_H=$gl_cv_next_getopt_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'getopt.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_getopt_h fi NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive if test $ac_cv_header_getopt_h = yes; then HAVE_GETOPT_H=1 else HAVE_GETOPT_H=0 fi gl_replace_getopt= if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" if test "x$ac_cv_header_getopt_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF else gl_replace_getopt=yes fi done fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_func in getopt_long_only do : ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" if test "x$ac_cv_func_getopt_long_only" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_LONG_ONLY 1 _ACEOF else gl_replace_getopt=yes fi done fi if test -z "$gl_replace_getopt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 $as_echo_n "checking whether getopt is POSIX compatible... " >&6; } if ${gl_cv_func_getopt_posix+:} false; then : $as_echo_n "(cached) " >&6 else if test $cross_compiling = no; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char a[] = "-a"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, a, foo, bar, NULL }; int c; c = getopt (4, argv, "ab"); if (!(c == 'a')) return 1; c = getopt (4, argv, "ab"); if (!(c == -1)) return 2; if (!(optind == 2)) return 3; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=maybe else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $gl_cv_func_getopt_posix = maybe; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char donald[] = "donald"; static char p[] = "-p"; static char billy[] = "billy"; static char duck[] = "duck"; static char a[] = "-a"; static char bar[] = "bar"; char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; int c; c = getopt (7, argv, "+abp:q:"); if (!(c == -1)) return 4; if (!(strcmp (argv[0], "program") == 0)) return 5; if (!(strcmp (argv[1], "donald") == 0)) return 6; if (!(strcmp (argv[2], "-p") == 0)) return 7; if (!(strcmp (argv[3], "billy") == 0)) return 8; if (!(strcmp (argv[4], "duck") == 0)) return 9; if (!(strcmp (argv[5], "-a") == 0)) return 10; if (!(strcmp (argv[6], "bar") == 0)) return 11; if (!(optind == 1)) return 12; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=maybe else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi if test $gl_cv_func_getopt_posix = maybe; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char ab[] = "-ab"; char *argv[3] = { program, ab, NULL }; if (getopt (2, argv, "ab:") != 'a') return 13; if (getopt (2, argv, "ab:") != '?') return 14; if (optopt != 'b') return 15; if (optind != 2) return 16; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=yes else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi else case "$host_os" in darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; *) gl_cv_func_getopt_posix="guessing yes";; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5 $as_echo "$gl_cv_func_getopt_posix" >&6; } case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;; esac fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 $as_echo_n "checking for working GNU getopt function... " >&6; } if ${gl_cv_func_getopt_gnu+:} false; then : $as_echo_n "(cached) " >&6 else # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the # optstring is necessary for programs like m4 that have POSIX-mandated # semantics for supporting options interspersed with files. # Also, since getopt_long is a GNU extension, we require optind=0. # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; # so take care to revert to the correct (non-)export state. gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in xx) gl_had_POSIXLY_CORRECT=exported ;; x) gl_had_POSIXLY_CORRECT=yes ;; *) gl_had_POSIXLY_CORRECT= ;; esac POSIXLY_CORRECT=1 export POSIXLY_CORRECT if test "$cross_compiling" = yes; then : gl_cv_func_getopt_gnu="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <getopt.h> #include <stddef.h> #include <string.h> #include <stdlib.h> #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include <mach/mach.h> #include <mach/mach_error.h> #include <mach/thread_status.h> #include <mach/exception.h> #include <mach/task.h> #include <pthread.h> /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winerror.h> static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include <signal.h> /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif int main () { int result = 0; nocrash_init(); /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ { static char conftest[] = "conftest"; static char plus[] = "-+"; char *argv[3] = { conftest, plus, NULL }; opterr = 0; if (getopt (2, argv, "+a") != '?') result |= 1; } /* This code succeeds on glibc 2.8, mingw, and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ { static char program[] = "program"; static char p[] = "-p"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, p, foo, bar, NULL }; optind = 1; if (getopt (4, argv, "p::") != 'p') result |= 2; else if (optarg != NULL) result |= 4; else if (getopt (4, argv, "p::") != -1) result |= 6; else if (optind != 2) result |= 8; } /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ { static char program[] = "program"; static char foo[] = "foo"; static char p[] = "-p"; char *argv[] = { program, foo, p, NULL }; optind = 0; if (getopt (3, argv, "-p") != 1) result |= 16; else if (getopt (3, argv, "-p") != 'p') result |= 16; } /* This code fails on glibc 2.11. */ { static char program[] = "program"; static char b[] = "-b"; static char a[] = "-a"; char *argv[] = { program, b, a, NULL }; optind = opterr = 0; if (getopt (3, argv, "+:a:b") != 'b') result |= 32; else if (getopt (3, argv, "+:a:b") != ':') result |= 32; } /* This code dumps core on glibc 2.14. */ { static char program[] = "program"; static char w[] = "-W"; static char dummy[] = "dummy"; char *argv[] = { program, w, dummy, NULL }; optind = opterr = 1; if (getopt (3, argv, "W;") != 'W') result |= 64; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_gnu=yes else gl_cv_func_getopt_gnu=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi case $gl_had_POSIXLY_CORRECT in exported) ;; yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;; *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5 $as_echo "$gl_cv_func_getopt_gnu" >&6; } if test "$gl_cv_func_getopt_gnu" != yes; then gl_replace_getopt=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5 $as_echo_n "checking for working GNU getopt_long function... " >&6; } if ${gl_cv_func_getopt_long_gnu+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; *) gl_cv_func_getopt_long_gnu="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <getopt.h> #include <stddef.h> #include <string.h> int main () { static const struct option long_options[] = { { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; /* This code fails on OpenBSD 5.0. */ { static char program[] = "program"; static char xtremel[] = "--xtremel"; char *argv[] = { program, xtremel, NULL }; int option_index; optind = 1; opterr = 0; if (getopt_long (2, argv, "", long_options, &option_index) != 1003) return 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_long_gnu=yes else gl_cv_func_getopt_long_gnu=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5 $as_echo "$gl_cv_func_getopt_long_gnu" >&6; } case "$gl_cv_func_getopt_long_gnu" in *yes) ;; *) gl_replace_getopt=yes ;; esac fi fi REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi if test $REPLACE_GETOPT = 1; then GETOPT_H=getopt.h $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h fi ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" if test "x$ac_cv_have_decl_getenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETENV $ac_have_decl _ACEOF GNULIB_ISWBLANK=0; GNULIB_WCTYPE=0; GNULIB_ISWCTYPE=0; GNULIB_WCTRANS=0; GNULIB_TOWCTRANS=0; HAVE_ISWBLANK=1; HAVE_WCTYPE_T=1; HAVE_WCTRANS_T=1; REPLACE_ISWBLANK=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h fi : if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_wctype_h='<'wctype.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5 $as_echo_n "checking absolute name of <wctype.h>... " >&6; } if ${gl_cv_next_wctype_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wctype_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wctype.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wctype.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_wctype_h='<'wctype.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 $as_echo "$gl_cv_next_wctype_h" >&6; } fi NEXT_WCTYPE_H=$gl_cv_next_wctype_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wctype.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wctype_h fi NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 $as_echo_n "checking whether iswcntrl works... " >&6; } if ${gl_cv_func_iswcntrl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_iswcntrl_works="guessing yes" else gl_cv_func_iswcntrl_works="guessing no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> int main () { return iswprint ('x') == 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_iswcntrl_works=yes else gl_cv_func_iswcntrl_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 $as_echo "$gl_cv_func_iswcntrl_works" >&6; } fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else for ac_func in towlower do : ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" if test "x$ac_cv_func_towlower" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TOWLOWER 1 _ACEOF fi done if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif " if test "x$ac_cv_have_decl_towlower" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TOWLOWER $ac_have_decl _ACEOF if test $ac_cv_have_decl_towlower = yes; then REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 $as_echo_n "checking for wctype_t... " >&6; } if ${gl_cv_type_wctype_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif wctype_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctype_t=yes else gl_cv_type_wctype_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 $as_echo "$gl_cv_type_wctype_t" >&6; } if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 $as_echo_n "checking for wctrans_t... " >&6; } if ${gl_cv_type_wctrans_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> wctrans_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctrans_t=yes else gl_cv_type_wctrans_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 $as_echo "$gl_cv_type_wctrans_t" >&6; } if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi for gl_func in wctype iswctype wctrans towctrans ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> # include <stdio.h> # include <time.h> # include <wchar.h> #endif #include <wctype.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done GNULIB_NL_LANGINFO=0; HAVE_NL_LANGINFO=1; REPLACE_NL_LANGINFO=0; case "$host_os" in mingw*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 $as_echo_n "checking for 64-bit off_t... " >&6; } if ${gl_cv_type_off_t_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_off_t_64=yes else gl_cv_type_off_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 $as_echo "$gl_cv_type_off_t_64" >&6; } if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi WINDOWS_64_BIT_ST_SIZE=1 ;; *) WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac : : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_header_working_fcntl_h=cross-compiling else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <io.h> # include <stdlib.h> # defined sleep(n) _sleep ((n) * 1000) #endif #include <fcntl.h> #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main () { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_fcntl_h=yes else case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 $as_echo "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOATIME $ac_val _ACEOF case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOFOLLOW $ac_val _ACEOF ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 $as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } if ${ac_cv_gnu_library_2_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky" >/dev/null 2>&1; then : ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 $as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" GNULIB_LOCALECONV=0; GNULIB_SETLOCALE=0; GNULIB_DUPLOCALE=0; HAVE_DUPLOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; REPLACE_DUPLOCALE=0; REPLACE_STRUCT_LCONV=0; REPLACE_NULL=0; HAVE_WCHAR_T=1; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5 $as_echo_n "checking absolute name of <stddef.h>... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi GNULIB_FCHMODAT=0; GNULIB_FSTAT=0; GNULIB_FSTATAT=0; GNULIB_FUTIMENS=0; GNULIB_LCHMOD=0; GNULIB_LSTAT=0; GNULIB_MKDIRAT=0; GNULIB_MKFIFO=0; GNULIB_MKFIFOAT=0; GNULIB_MKNOD=0; GNULIB_MKNODAT=0; GNULIB_STAT=0; GNULIB_UTIMENSAT=0; HAVE_FCHMODAT=1; HAVE_FSTATAT=1; HAVE_FUTIMENS=1; HAVE_LCHMOD=1; HAVE_LSTAT=1; HAVE_MKDIRAT=1; HAVE_MKFIFO=1; HAVE_MKFIFOAT=1; HAVE_MKNOD=1; HAVE_MKNODAT=1; HAVE_UTIMENSAT=1; REPLACE_FSTAT=0; REPLACE_FSTATAT=0; REPLACE_FUTIMENS=0; REPLACE_LSTAT=0; REPLACE_MKDIR=0; REPLACE_MKFIFO=0; REPLACE_MKNOD=0; REPLACE_STAT=0; REPLACE_UTIMENSAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_lstat_dereferences_slashed_symlink=yes else gl_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the 'ln -s' command failed, then we probably don't even # have an lstat function. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } if ${gl_cv_func_malloc_posix+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_malloc_posix=yes else gl_cv_func_malloc_posix=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 $as_echo "$gl_cv_func_malloc_posix" >&6; } for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include <stdlib.h> #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : gl_cv_func_malloc_0_nonnull=1 else gl_cv_func_malloc_0_nonnull=0 fi cat >>confdefs.h <<_ACEOF #define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 $as_echo_n "checking for unsigned long long int... " >&6; } if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else ac_cv_type_unsigned_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 $as_echo_n "checking for long long int... " >&6; } if ${ac_cv_type_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> #ifndef LLONG_MAX # define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif int main () { long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_type_long_long_int=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 $as_echo_n "checking for mbstate_t... " >&6; } if ${ac_cv_type_mbstate_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { mbstate_t x; return sizeof x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_mbstate_t=yes else ac_cv_type_mbstate_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 $as_echo "$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then $as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h else $as_echo "#define mbstate_t int" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 GNULIB_FFSL=0; GNULIB_FFSLL=0; GNULIB_MEMCHR=0; GNULIB_MEMMEM=0; GNULIB_MEMPCPY=0; GNULIB_MEMRCHR=0; GNULIB_RAWMEMCHR=0; GNULIB_STPCPY=0; GNULIB_STPNCPY=0; GNULIB_STRCHRNUL=0; GNULIB_STRDUP=0; GNULIB_STRNCAT=0; GNULIB_STRNDUP=0; GNULIB_STRNLEN=0; GNULIB_STRPBRK=0; GNULIB_STRSEP=0; GNULIB_STRSTR=0; GNULIB_STRCASESTR=0; GNULIB_STRTOK_R=0; GNULIB_MBSLEN=0; GNULIB_MBSNLEN=0; GNULIB_MBSCHR=0; GNULIB_MBSRCHR=0; GNULIB_MBSSTR=0; GNULIB_MBSCASECMP=0; GNULIB_MBSNCASECMP=0; GNULIB_MBSPCASECMP=0; GNULIB_MBSCASESTR=0; GNULIB_MBSCSPN=0; GNULIB_MBSPBRK=0; GNULIB_MBSSPN=0; GNULIB_MBSSEP=0; GNULIB_MBSTOK_R=0; GNULIB_STRERROR=0; GNULIB_STRERROR_R=0; GNULIB_STRSIGNAL=0; GNULIB_STRVERSCMP=0; HAVE_MBSLEN=0; HAVE_FFSL=1; HAVE_FFSLL=1; HAVE_MEMCHR=1; HAVE_DECL_MEMMEM=1; HAVE_MEMPCPY=1; HAVE_DECL_MEMRCHR=1; HAVE_RAWMEMCHR=1; HAVE_STPCPY=1; HAVE_STPNCPY=1; HAVE_STRCHRNUL=1; HAVE_DECL_STRDUP=1; HAVE_DECL_STRNDUP=1; HAVE_DECL_STRNLEN=1; HAVE_STRPBRK=1; HAVE_STRSEP=1; HAVE_STRCASESTR=1; HAVE_DECL_STRTOK_R=1; HAVE_DECL_STRERROR_R=1; HAVE_DECL_STRSIGNAL=1; HAVE_STRVERSCMP=1; REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_STPNCPY=0; REPLACE_STRDUP=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; REPLACE_STRCHRNUL=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; REPLACE_STRSIGNAL=0; REPLACE_STRTOK_R=0; UNDEFINE_STRTOK_R=0; # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 $as_echo_n "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/mman.h> #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : gl_have_mmap_anonymous=yes fi rm -f conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/mman.h> #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 $as_echo "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi : : if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 # memchr should not dereference overestimated length after a match # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 # Assume that memchr works on platforms that lack mprotect. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 $as_echo_n "checking whether memchr works... " >&6; } if ${gl_cv_func_memchr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_memchr_works="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> #if HAVE_SYS_MMAN_H # include <fcntl.h> # include <unistd.h> # include <sys/types.h> # include <sys/mman.h> # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif int main () { int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_memchr_works=yes else gl_cv_func_memchr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 $as_echo "$gl_cv_func_memchr_works" >&6; } if test "$gl_cv_func_memchr_works" != yes; then REPLACE_MEMCHR=1 fi fi gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int * int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int main () { int s[1]; int * $ac_kw t = s; t[0] = 0; return foo(t) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_restrict=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 $as_echo "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) $as_echo "#define restrict /**/" >>confdefs.h ;; *) cat >>confdefs.h <<_ACEOF #define restrict $ac_cv_c_restrict _ACEOF ;; esac ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default" if test "x$ac_cv_have_decl_setenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SETENV $ac_have_decl _ACEOF : if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi : : for ac_header in search.h do : ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default" if test "x$ac_cv_header_search_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SEARCH_H 1 _ACEOF fi done for ac_func in tsearch do : ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch" if test "x$ac_cv_func_tsearch" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TSEARCH 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdbool.h> #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi : if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5 $as_echo_n "checking absolute name of <stdint.h>... " >&6; } if ${gl_cv_next_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_stdint_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdint.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdint.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_stdint_h='<'stdint.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 $as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdint_h fi NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi if test $ac_cv_header_stdint_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if ${gl_cv_header_working_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" #endif /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; #include <limits.h> /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if test "$cross_compiling" = yes; then : gl_cv_header_working_stdint_h=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif #include <stdio.h> #include <string.h> #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; int main () { const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 $as_echo "$gl_cv_header_working_stdint_h" >&6; } fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= else for ac_header in sys/inttypes.h sys/bitypes.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 else HAVE_SYS_INTTYPES_H=0 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 else HAVE_SYS_BITYPES_H=0 fi if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif #include <limits.h>"; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif #include <limits.h>"; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 $as_echo_n "checking whether $gltype is signed... " >&6; } if eval \${gl_cv_type_${gltype}_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : result=yes else result=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi eval ac_res=\$gl_cv_type_${gltype}_signed { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_SIGNED_${GLTYPE} 1 _ACEOF eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done if test $BITSIZEOF_WINT_T -lt 32; then BITSIZEOF_WINT_T=32 fi STDINT_H=stdint.h fi if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' else GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE= fi REPLACE_STRERROR_0=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 $as_echo_n "checking whether strerror(0) succeeds... " >&6; } if ${gl_cv_func_strerror_0_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> #include <errno.h> int main () { int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_0_works=yes else gl_cv_func_strerror_0_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 $as_echo "$gl_cv_func_strerror_0_works" >&6; } case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 $as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5 $as_echo_n "checking absolute name of <string.h>... " >&6; } if ${gl_cv_next_string_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'string.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 $as_echo "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_string_h fi NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stat_broken=no else ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 $as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then $as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_types_h='<'sys/types.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5 $as_echo_n "checking absolute name of <sys/types.h>... " >&6; } if ${gl_cv_next_sys_types_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/types.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 $as_echo "$gl_cv_next_sys_types_h" >&6; } fi NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_types_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive GNULIB_WAITPID=0; GNULIB_MKTIME=0; GNULIB_NANOSLEEP=0; GNULIB_STRPTIME=0; GNULIB_TIMEGM=0; GNULIB_TIME_R=0; HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5 $as_echo_n "checking for struct timespec in <time.h>... " >&6; } if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_time_h=yes else gl_cv_sys_struct_timespec_in_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5 $as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; } if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/time.h> int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_sys_time_h=yes else gl_cv_sys_struct_timespec_in_sys_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5 $as_echo_n "checking for struct timespec in <pthread.h>... " >&6; } if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <pthread.h> int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_pthread_h=yes else gl_cv_sys_struct_timespec_in_pthread_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5 $as_echo_n "checking absolute name of <time.h>... " >&6; } if ${gl_cv_next_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 $as_echo "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_time_h fi NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi : if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } if ${gl_cv_header_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <inttypes.h> int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_inttypes_h=yes else gl_cv_header_inttypes_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 $as_echo "$gl_cv_header_inttypes_h" >&6; } if test $gl_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } if ${gl_cv_header_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <stdint.h> int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_h=yes else gl_cv_header_stdint_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 $as_echo "$gl_cv_header_stdint_h" >&6; } if test $gl_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } if ${gt_cv_c_intmax_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> #include <stdlib.h> #if HAVE_STDINT_H_WITH_UINTMAX #include <stdint.h> #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include <inttypes.h> #endif int main () { intmax_t x = -1; return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_intmax_t=yes else gt_cv_c_intmax_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 $as_echo "$gt_cv_c_intmax_t" >&6; } if test $gt_cv_c_intmax_t = yes; then $as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h else test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' cat >>confdefs.h <<_ACEOF #define intmax_t $ac_type _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5 $as_echo_n "checking where to find the exponent in a 'double'... " >&6; } if ${gl_cv_cc_double_expbit0+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined arm || defined __arm || defined __arm__ mixed_endianness #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "mixed_endianness" >/dev/null 2>&1; then : gl_cv_cc_double_expbit0="unknown" else : if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/param.h> int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/param.h> int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no 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 if test $ac_cv_c_bigendian = unknown; then # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no 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 if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi : case $ac_cv_c_bigendian in #( yes) gl_cv_cc_double_expbit0="word 0 bit 20";; #( no) gl_cv_cc_double_expbit0="word 1 bit 20" ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) gl_cv_cc_double_expbit0="unknown" ;; esac fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <float.h> #include <stddef.h> #include <stdio.h> #include <string.h> #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (double x) { memory_double m; size_t i; /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ memset (&m, 0, sizeof (memory_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25); add_to_ored_words (0.5); add_to_ored_words (1.0); add_to_ored_words (2.0); add_to_ored_words (4.0); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_double_expbit0=`cat conftest.out` else gl_cv_cc_double_expbit0="unknown" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5 $as_echo "$gl_cv_cc_double_expbit0" >&6; } case "$gl_cv_cc_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define DBL_EXPBIT0_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define DBL_EXPBIT0_BIT $bit _ACEOF ;; esac : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 $as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; } if ${gl_cv_func_snprintf_retval_c99+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> #include <string.h> #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include <stdarg.h> static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) return 1; if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) return 2; if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) return 3; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_snprintf_retval_c99=yes else gl_cv_func_snprintf_retval_c99=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5 $as_echo "$gl_cv_func_snprintf_retval_c99" >&6; } for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h> " if test "x$ac_cv_have_decl__snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNPRINTF $ac_have_decl _ACEOF case "$gl_cv_func_snprintf_retval_c99" in *yes) $as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h ;; esac if false; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=false gl_libdeps= gl_ltlibdeps= gl_m4_base='m4' gl_source_base='lib' if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1; then : gl_cv_rpl_alloca=yes else gl_cv_rpl_alloca=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 $as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ALLOCA_H=alloca.h else ALLOCA_H= fi else ALLOCA_H=alloca.h fi if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi : if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5 $as_echo_n "checking whether btowc(0) is correct... " >&6; } if ${gl_cv_func_btowc_nul+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (btowc ('\0') != 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_btowc_nul=yes else gl_cv_func_btowc_nul=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5 $as_echo "$gl_cv_func_btowc_nul" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5 $as_echo_n "checking whether btowc(EOF) is correct... " >&6; } if ${gl_cv_func_btowc_eof+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on IRIX. irix*) gl_cv_func_btowc_eof="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_eof="guessing yes" ;; esac if test $LOCALE_FR != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (btowc (EOF) != WEOF) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_btowc_eof=yes else gl_cv_func_btowc_eof=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5 $as_echo "$gl_cv_func_btowc_eof" >&6; } case "$gl_cv_func_btowc_nul" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac fi if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext" : fi GNULIB_BTOWC=1 $as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 if test $ac_cv_func_realpath = no; then HAVE_REALPATH=0 else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_REALPATH=1 ;; esac fi else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_CANONICALIZE_FILE_NAME=1 REPLACE_REALPATH=1 ;; esac fi if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_CANONICALIZE_LGPL 1 _ACEOF GNULIB_CANONICALIZE_FILE_NAME=1 $as_echo "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h GNULIB_REALPATH=1 $as_echo "#define GNULIB_TEST_REALPATH 1" >>confdefs.h if test "x$datarootdir" = x; then datarootdir='${datadir}' fi if test "x$docdir" = x; then docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' fi if test "x$htmldir" = x; then htmldir='${docdir}' fi if test "x$dvidir" = x; then dvidir='${docdir}' fi if test "x$pdfdir" = x; then pdfdir='${docdir}' fi if test "x$psdir" = x; then psdir='${docdir}' fi if test "x$lispdir" = x; then lispdir='${datarootdir}/emacs/site-lisp' fi if test "x$localedir" = x; then localedir='${datarootdir}/locale' fi pkglibexecdir='${libexecdir}/${PACKAGE}' $as_echo "#define HAVE_DUP2 1" >>confdefs.h if test $HAVE_DUP2 = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } if ${gl_cv_func_dup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> #include <fcntl.h> #include <errno.h> int main () { int result = 0; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) == 0) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, 1000000) == -1 && errno != EBADF) result |= 16; /* Flush out a cygwin core dump. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_dup2_works=yes else gl_cv_func_dup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 $as_echo "$gl_cv_func_dup2_works" >&6; } case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 ;; esac fi if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" fi GNULIB_DUP2=1 $as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h GNULIB_ENVIRON=1 $as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if ${ac_cv_lib_error_at_line+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <error.h> int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" : fi XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) FLOAT_H=float.h ;; freebsd*) case "$host_cpu" in i[34567]86 ) FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __x86_64__ || defined __amd64__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : else FLOAT_H=float.h fi rm -f conftest* ;; esac ;; linux*) case "$host_cpu" in powerpc*) FLOAT_H=float.h ;; esac ;; esac case "$host_os" in aix* | freebsd* | linux*) if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; esac REPLACE_ITOLD=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5 $as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; } if ${gl_cv_func_itold_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host" in sparc*-*-linux*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __arch64__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_func_itold_works="guessing no" else gl_cv_func_itold_works="guessing yes" fi rm -f conftest* ;; *) gl_cv_func_itold_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int i = -1; volatile long double ld; int main () { ld += i * 1.0L; if (ld > 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_itold_works=yes else gl_cv_func_itold_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5 $as_echo "$gl_cv_func_itold_works" >&6; } case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 FLOAT_H=float.h ;; esac if test -n "$FLOAT_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_float_h='<'float.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5 $as_echo_n "checking absolute name of <float.h>... " >&6; } if ${gl_cv_next_float_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <float.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'float.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5 $as_echo "$gl_cv_next_float_h" >&6; } fi NEXT_FLOAT_H=$gl_cv_next_float_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'float.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_float_h fi NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive fi if test -n "$FLOAT_H"; then GL_GENERATE_FLOAT_H_TRUE= GL_GENERATE_FLOAT_H_FALSE='#' else GL_GENERATE_FLOAT_H_TRUE='#' GL_GENERATE_FLOAT_H_FALSE= fi if test $REPLACE_FLOAT_LDBL = 1; then gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext" fi if test $REPLACE_ITOLD = 1; then gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext" fi : : if test $ac_cv_func_getdelim = yes; then HAVE_GETDELIM=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5 $as_echo_n "checking for working getdelim function... " >&6; } if ${gl_cv_func_working_getdelim+:} false; then : $as_echo_n "(cached) " >&6 else echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : gl_cv_func_working_getdelim="guessing yes" else gl_cv_func_working_getdelim="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) return 2; } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getdelim (&line, &siz, '\n', in) == -1) return 3; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_getdelim=yes else gl_cv_func_working_getdelim=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 $as_echo "$gl_cv_func_working_getdelim" >&6; } case "$gl_cv_func_working_getdelim" in *no) REPLACE_GETDELIM=1 ;; esac else HAVE_GETDELIM=0 fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext" for ac_func in flockfile funlockfile do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF fi GNULIB_GETDELIM=1 $as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h : gl_getline_needs_run_time_check=no ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" if test "x$ac_cv_func_getline" = xyes; then : gl_getline_needs_run_time_check=yes else am_cv_func_working_getline=no fi if test $gl_getline_needs_run_time_check = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5 $as_echo_n "checking for working getline function... " >&6; } if ${am_cv_func_working_getline+:} false; then : $as_echo_n "(cached) " >&6 else echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : am_cv_func_working_getline="guessing yes" else am_cv_func_working_getline="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getline (&line, &siz, in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) return 2; } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getline (&line, &siz, in) == -1) return 3; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_working_getline=yes else am_cv_func_working_getline=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 $as_echo "$am_cv_func_working_getline" >&6; } fi if test $ac_cv_have_decl_getline = no; then HAVE_DECL_GETLINE=0 fi case "$am_cv_func_working_getline" in *no) REPLACE_GETLINE=1 ;; esac if test $REPLACE_GETLINE = 1; then gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext" : fi GNULIB_GETLINE=1 $as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h if test $REPLACE_GETOPT = 1; then gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" : GNULIB_GL_UNISTD_H_GETOPT=1 fi $as_echo "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi if test $REPLACE_GETOPT = 1; then GETOPT_H=getopt.h $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h fi if test $REPLACE_GETOPT = 1; then gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" : GNULIB_GL_UNISTD_H_GETOPT=1 fi # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" : ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" " /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> " if test "x$ac_cv_have_decl_iswblank" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISWBLANK $ac_have_decl _ACEOF if test $ac_cv_func_iswblank = no; then HAVE_ISWBLANK=0 if test $ac_cv_have_decl_iswblank = yes; then REPLACE_ISWBLANK=1 fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : else if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then : fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : else if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext" fi fi GNULIB_ISWBLANK=1 $as_echo "#define GNULIB_TEST_ISWBLANK 1" >>confdefs.h : if test $gl_cv_have_include_next = yes; then gl_cv_next_langinfo_h='<'langinfo.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5 $as_echo_n "checking absolute name of <langinfo.h>... " >&6; } if ${gl_cv_next_langinfo_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_langinfo_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'langinfo.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_langinfo_h='<'langinfo.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 $as_echo "$gl_cv_next_langinfo_h" >&6; } fi NEXT_LANGINFO_H=$gl_cv_next_langinfo_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'langinfo.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_langinfo_h fi NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 : if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 $as_echo_n "checking whether langinfo.h defines CODESET... " >&6; } if ${gl_cv_header_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int a = CODESET; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_codeset=yes else gl_cv_header_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 $as_echo "$gl_cv_header_langinfo_codeset" >&6; } if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 $as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int a = T_FMT_AMPM; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_t_fmt_ampm=yes else gl_cv_header_langinfo_t_fmt_ampm=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 $as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 $as_echo_n "checking whether langinfo.h defines ERA... " >&6; } if ${gl_cv_header_langinfo_era+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int a = ERA; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_era=yes else gl_cv_header_langinfo_era=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 $as_echo "$gl_cv_header_langinfo_era" >&6; } if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 $as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; } if ${gl_cv_header_langinfo_yesexpr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int a = YESEXPR; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_yesexpr=yes else gl_cv_header_langinfo_yesexpr=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 $as_echo "$gl_cv_header_langinfo_yesexpr" >&6; } if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi for gl_func in nl_langinfo; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done : LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" case "$host_os" in solaris*) $as_echo "#define _LCONV_C99 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 $as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; } if ${gl_cv_header_locale_h_posix2001+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_h_posix2001=yes else gl_cv_header_locale_h_posix2001=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 $as_echo "$gl_cv_header_locale_h_posix2001" >&6; } : if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 $as_echo_n "checking whether locale.h defines locale_t... " >&6; } if ${gl_cv_header_locale_has_locale_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> locale_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_has_locale_t=yes else gl_cv_header_locale_has_locale_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 $as_echo "$gl_cv_header_locale_has_locale_t" >&6; } if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 $as_echo_n "checking whether struct lconv is properly defined... " >&6; } if ${gl_cv_sys_struct_lconv_ok+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_lconv_ok=yes else gl_cv_sys_struct_lconv_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 $as_echo "$gl_cv_sys_struct_lconv_ok" >&6; } if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_locale_h='<'locale.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5 $as_echo_n "checking absolute name of <locale.h>... " >&6; } if ${gl_cv_next_locale_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'locale.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_locale_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 $as_echo "$gl_cv_next_locale_h" >&6; } fi NEXT_LOCALE_H=$gl_cv_next_locale_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'locale.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_locale_h fi NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive for gl_func in setlocale duplocale; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include <xlocale.h> #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $REPLACE_STRUCT_LCONV = 1; then REPLACE_LOCALECONV=1 fi if test $REPLACE_LOCALECONV = 1; then gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext" ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h> " if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_LCONV_DECIMAL_POINT 1 _ACEOF fi fi GNULIB_LOCALECONV=1 $as_echo "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h : if test $ac_cv_func_lstat = yes; then case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi if test $REPLACE_LSTAT = 1; then gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext" : fi GNULIB_LSTAT=1 $as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include <stdlib.h> #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "#define HAVE_MALLOC_GNU 1" >>confdefs.h else $as_echo "#define HAVE_MALLOC_GNU 0" >>confdefs.h REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_MALLOC_GNU 1 _ACEOF if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h else REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi GNULIB_MALLOC_POSIX=1 $as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h : : if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi : if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> " if test "x$ac_cv_have_decl_mbrtowc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MBRTOWC $ac_have_decl _ACEOF if test $ac_cv_have_decl_mbrtowc = yes; then REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; } if ${gl_cv_func_mbrtowc_null_arg1+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_null_arg1=yes else gl_cv_func_mbrtowc_null_arg1=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5 $as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } if ${gl_cv_func_mbrtowc_null_arg2+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_null_arg2=yes else gl_cv_func_mbrtowc_null_arg2=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5 $as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 $as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } if ${gl_cv_func_mbrtowc_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_retval=yes else if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5 $as_echo "$gl_cv_func_mbrtowc_retval" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 $as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } if ${gl_cv_func_mbrtowc_nul_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_nul_retval=yes else gl_cv_func_mbrtowc_nul_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 $as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; } case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) $as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) $as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) $as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) $as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac fi fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" : fi GNULIB_MBRTOWC=1 $as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h : : if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi : if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> " if test "x$ac_cv_have_decl_mbsinit" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MBSINIT $ac_have_decl _ACEOF if test $ac_cv_have_decl_mbsinit = yes; then REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext" : fi GNULIB_MBSINIT=1 $as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h GNULIB_MBSRCHR=1 $as_echo "#define GNULIB_TEST_MBSRCHR 1" >>confdefs.h if false; then REPLACE_MBTOWC=1 fi if test $REPLACE_MBTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext" : fi GNULIB_MBTOWC=1 $as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h : if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext" for ac_header in bp-sym.h do : ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" if test "x$ac_cv_header_bp_sym_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BP_SYM_H 1 _ACEOF fi done fi GNULIB_MEMCHR=1 $as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h : if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 $as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext" fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext" fi : if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5 $as_echo_n "checking whether YESEXPR works... " >&6; } if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on irix systems. irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; # Guess yes elsewhere. *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int main () { return !*nl_langinfo(YESEXPR); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_nl_langinfo_yesexpr_works=yes else gl_cv_func_nl_langinfo_yesexpr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5 $as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; } case $gl_cv_func_nl_langinfo_yesexpr_works in *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS _ACEOF if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 $as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h fi else HAVE_NL_LANGINFO=0 fi if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext" fi GNULIB_NL_LANGINFO=1 $as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h : : if test $ac_cv_func_readlink = no; then HAVE_READLINK=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5 $as_echo_n "checking whether readlink signature is correct... " >&6; } if ${gl_cv_decl_readlink_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> /* Cause compilation failure if original declaration has wrong type. */ ssize_t readlink (const char *, char *, size_t); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_readlink_works=yes else gl_cv_decl_readlink_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5 $as_echo "$gl_cv_decl_readlink_works" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5 $as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; } if ${gl_cv_func_readlink_works+:} false; then : $as_echo_n "(cached) " >&6 else # We have readlink, so assume ln -s works. ln -s conftest.no-such conftest.link ln -s conftest.link conftest.lnk2 if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_readlink_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_readlink_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int main () { char buf[20]; return readlink ("conftest.lnk2/", buf, sizeof buf) != -1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_readlink_works=yes else gl_cv_func_readlink_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.link conftest.lnk2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_works" >&5 $as_echo "$gl_cv_func_readlink_works" >&6; } case "$gl_cv_func_readlink_works" in *yes) if test "$gl_cv_decl_readlink_works" != yes; then REPLACE_READLINK=1 fi ;; *) $as_echo "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_READLINK=1 ;; esac fi if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext" : fi GNULIB_READLINK=1 $as_echo "#define GNULIB_TEST_READLINK 1" >>confdefs.h if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_REALLOC_POSIX 1" >>confdefs.h else REPLACE_REALLOC=1 fi if test $REPLACE_REALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" fi GNULIB_REALLOC_POSIX=1 $as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h # Check whether --with-included-regex was given. if test "${with_included_regex+set}" = set; then : withval=$with_included_regex; fi case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5 $as_echo_n "checking for working re_compile_pattern... " >&6; } if ${gl_cv_func_re_compile_pattern_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_re_compile_pattern_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <regex.h> #include <locale.h> #include <limits.h> #include <string.h> #if HAVE_ALARM # include <unistd.h> # include <signal.h> #endif int main () { int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; #if HAVE_ALARM /* Some builds of glibc go into an infinite loop on this test. */ signal (SIGALRM, SIG_DFL); alarm (2); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>. */ static char const pat[] = "[^x]x"; static char const data[] = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80" "\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0) != 21) result |= 1; } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; /* The following example is derived from a problem report against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; /* Catch a bug reported by Vin Shelton in http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_re_compile_pattern_working=yes else gl_cv_func_re_compile_pattern_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5 $as_echo "$gl_cv_func_re_compile_pattern_working" >&6; } case $gl_cv_func_re_compile_pattern_working in #( yes) ac_use_included_regex=no;; #( no) ac_use_included_regex=yes;; esac ;; *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5 ;; esac if test $ac_use_included_regex = yes; then $as_echo "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h $as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h $as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h $as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h $as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h $as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h $as_echo "#define re_search rpl_re_search" >>confdefs.h $as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h $as_echo "#define re_match rpl_re_match" >>confdefs.h $as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h $as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h $as_echo "#define re_comp rpl_re_comp" >>confdefs.h $as_echo "#define re_exec rpl_re_exec" >>confdefs.h $as_echo "#define regcomp rpl_regcomp" >>confdefs.h $as_echo "#define regexec rpl_regexec" >>confdefs.h $as_echo "#define regerror rpl_regerror" >>confdefs.h $as_echo "#define regfree rpl_regfree" >>confdefs.h fi if test $ac_use_included_regex = yes; then gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext" for ac_header in libintl.h do : ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBINTL_H 1 _ACEOF fi done : ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h> " if test "x$ac_cv_have_decl_isblank" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISBLANK $ac_have_decl _ACEOF fi if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5 $as_echo_n "checking whether setenv validates arguments... " >&6; } if ${gl_cv_func_setenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <errno.h> #include <string.h> int main () { int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_setenv_works=yes else gl_cv_func_setenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5 $as_echo "$gl_cv_func_setenv_works" >&6; } case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext" fi GNULIB_SETENV=1 $as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } if ${gl_cv_size_max+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_size_max= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> #if HAVE_STDINT_H #include <stdint.h> #endif #ifdef SIZE_MAX Found it #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Found it" >/dev/null 2>&1; then : gl_cv_size_max=yes fi rm -f conftest* if test -z "$gl_cv_size_max"; then if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include <stddef.h> #include <limits.h>"; then : else size_t_bits_minus_1= fi if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include <stddef.h>"; then : else fits_in_uint= fi if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> extern size_t foo; extern unsigned long foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : fits_in_uint=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else gl_cv_size_max='((size_t)~(size_t)0)' fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 $as_echo "$gl_cv_size_max" >&6; } if test "$gl_cv_size_max" != yes; then cat >>confdefs.h <<_ACEOF #define SIZE_MAX $gl_cv_size_max _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5 $as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; } if ${gl_cv_func_stat_dir_slash+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/stat.h> int main () { struct stat st; return stat (".", &st) != stat ("./", &st); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_dir_slash=yes else gl_cv_func_stat_dir_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5 $as_echo "$gl_cv_func_stat_dir_slash" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } if ${gl_cv_func_stat_file_slash+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/stat.h> int main () { int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_file_slash=yes else gl_cv_func_stat_file_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 $as_echo "$gl_cv_func_stat_file_slash" >&6; } case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h ;; esac case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac if test $REPLACE_STAT = 1; then gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext" : fi GNULIB_STAT=1 $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5 $as_echo_n "checking absolute name of <stddef.h>... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5 $as_echo_n "checking absolute name of <stdio.h>... " >&6; } if ${gl_cv_next_stdio_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 $as_echo "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdio_h fi NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive GNULIB_FSCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_FSCANF 1 _ACEOF GNULIB_SCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_SCANF 1 _ACEOF GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5 $as_echo_n "checking absolute name of <stdlib.h>... " >&6; } if ${gl_cv_next_stdlib_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 $as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #if HAVE_SYS_LOADAVG_H # include <sys/loadavg.h> #endif #if HAVE_RANDOM_H # include <random.h> #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 $as_echo_n "checking for working strerror function... " >&6; } if ${gl_cv_func_working_strerror+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> int main () { if (!*strerror (-2)) return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_strerror=yes else gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 $as_echo "$gl_cv_func_working_strerror" >&6; } case "$gl_cv_func_working_strerror" in *yes) ;; *) REPLACE_STRERROR=1 ;; esac else REPLACE_STRERROR=1 fi if test $REPLACE_STRERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_STRERROR 1 _ACEOF GNULIB_STRERROR=1 $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi fi if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 $as_echo_n "checking whether strstr works... " >&6; } if ${gl_cv_func_strstr_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include <features.h> #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strstr_works_always="guessing yes" else gl_cv_func_strstr_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { return !!strstr (HAYSTACK, NEEDLE); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strstr_works_always=yes else gl_cv_func_strstr_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5 $as_echo "$gl_cv_func_strstr_works_always" >&6; } case "$gl_cv_func_strstr_works_always" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi if test $REPLACE_STRSTR = 1; then gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext" fi GNULIB_STRSTR=1 $as_echo "#define GNULIB_TEST_STRSTR 1" >>confdefs.h : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5 $as_echo_n "checking absolute name of <sys/stat.h>... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/stat.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive if test $WINDOWS_64_BIT_ST_SIZE = 1; then $as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/stat.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_wait_h='<'sys/wait.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/wait.h>" >&5 $as_echo_n "checking absolute name of <sys/wait.h>... " >&6; } if ${gl_cv_next_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_wait_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/wait.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/wait.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_sys_wait_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_sys_wait_h='<'sys/wait.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_wait_h" >&5 $as_echo "$gl_cv_next_sys_wait_h" >&6; } fi NEXT_SYS_WAIT_H=$gl_cv_next_sys_wait_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/wait.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_wait_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H=$gl_next_as_first_directive for gl_func in waitpid; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/wait.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done : if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5 $as_echo_n "checking absolute name of <unistd.h>... " >&6; } if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 $as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H # include <unistd.h> #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <fcntl.h> # include <stdio.h> # include <stdlib.h> # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include <io.h> # endif #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_UNITYPES_H='unitypes.h' else LIBUNISTRING_UNITYPES_H= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_UNIWIDTH_H='uniwidth.h' else LIBUNISTRING_UNIWIDTH_H= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4 } } } } }; then LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE= LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#' else LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#' LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE= fi : if test $ac_cv_func_vasnprintf = no; then : gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" if test $ac_cv_func_vasnprintf = yes; then $as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : else $as_echo "#define ptrdiff_t long" >>confdefs.h fi fi for ac_func in vasprintf do : ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf" if test "x$ac_cv_func_vasprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VASPRINTF 1 _ACEOF fi done if test $ac_cv_func_vasprintf = no; then gl_LIBOBJS="$gl_LIBOBJS vasprintf.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext" if test $ac_cv_func_vasprintf = yes; then REPLACE_VASPRINTF=1 else HAVE_VASPRINTF=0 fi fi GNULIB_VASPRINTF=1 $as_echo "#define GNULIB_TEST_VASPRINTF 1" >>confdefs.h XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=asprintf:2:c-format" XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format" : if test $gl_cv_have_include_next = yes; then gl_cv_next_wchar_h='<'wchar.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5 $as_echo_n "checking absolute name of <wchar.h>... " >&6; } if ${gl_cv_next_wchar_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wchar_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wchar.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_wchar_h='<'wchar.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 $as_echo "$gl_cv_next_wchar_h" >&6; } fi NEXT_WCHAR_H=$gl_cv_next_wchar_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wchar.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wchar_h fi NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> # include <stdio.h> # include <time.h> #endif #include <wchar.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done : : if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi : if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" " /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> " if test "x$ac_cv_have_decl_wcrtomb" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCRTOMB $ac_have_decl _ACEOF if test $ac_cv_have_decl_wcrtomb = yes; then REPLACE_WCRTOMB=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 $as_echo_n "checking whether wcrtomb return value is correct... " >&6; } if ${gl_cv_func_wcrtomb_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX 4, OSF/1 and Solaris. aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 1; } if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 4; } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_wcrtomb_retval=yes else gl_cv_func_wcrtomb_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5 $as_echo "$gl_cv_func_wcrtomb_retval" >&6; } case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; esac fi fi if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext" : fi GNULIB_WCRTOMB=1 $as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h : if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_wctype_h='<'wctype.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5 $as_echo_n "checking absolute name of <wctype.h>... " >&6; } if ${gl_cv_next_wctype_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wctype_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wctype.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wctype.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_wctype_h='<'wctype.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 $as_echo "$gl_cv_next_wctype_h" >&6; } fi NEXT_WCTYPE_H=$gl_cv_next_wctype_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wctype.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wctype_h fi NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 $as_echo_n "checking whether iswcntrl works... " >&6; } if ${gl_cv_func_iswcntrl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_iswcntrl_works="guessing yes" else gl_cv_func_iswcntrl_works="guessing no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> int main () { return iswprint ('x') == 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_iswcntrl_works=yes else gl_cv_func_iswcntrl_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 $as_echo "$gl_cv_func_iswcntrl_works" >&6; } fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else for ac_func in towlower do : ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" if test "x$ac_cv_func_towlower" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TOWLOWER 1 _ACEOF fi done if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif " if test "x$ac_cv_have_decl_towlower" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TOWLOWER $ac_have_decl _ACEOF if test $ac_cv_have_decl_towlower = yes; then REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 $as_echo_n "checking for wctype_t... " >&6; } if ${gl_cv_type_wctype_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif wctype_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctype_t=yes else gl_cv_type_wctype_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 $as_echo "$gl_cv_type_wctype_t" >&6; } if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 $as_echo_n "checking for wctrans_t... " >&6; } if ${gl_cv_type_wctrans_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> wctrans_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctrans_t=yes else gl_cv_type_wctrans_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 $as_echo "$gl_cv_type_wctrans_t" >&6; } if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi for gl_func in wctype iswctype wctrans towctrans ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> # include <stdio.h> # include <time.h> # include <wchar.h> #endif #include <wctype.h> int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done : : ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" " /* AIX 3.2.5 declares wcwidth in <string.h>. */ #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> " if test "x$ac_cv_have_decl_wcwidth" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCWIDTH $ac_have_decl _ACEOF if test $ac_cv_have_decl_wcwidth != yes; then HAVE_DECL_WCWIDTH=0 fi if test $ac_cv_func_wcwidth = yes; then HAVE_WCWIDTH=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5 $as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; } if ${gl_cv_func_wcwidth_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc and AIX 7 systems. *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; *) gl_cv_func_wcwidth_works="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> /* AIX 3.2.5 declares wcwidth in <string.h>. */ #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if !HAVE_DECL_WCWIDTH extern # ifdef __cplusplus "C" # endif int wcwidth (int); #endif int main () { int result = 0; if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL) { if (wcwidth (0x0301) > 0) result |= 1; if (wcwidth (0x05B0) > 0) result |= 2; if (wcwidth (0x200B) > 0) result |= 4; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_wcwidth_works=yes else gl_cv_func_wcwidth_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_works" >&5 $as_echo "$gl_cv_func_wcwidth_works" >&6; } case "$gl_cv_func_wcwidth_works" in *yes) ;; *no) REPLACE_WCWIDTH=1 ;; esac else HAVE_WCWIDTH=0 fi if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext" fi GNULIB_WCWIDTH=1 $as_echo "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h : for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='tests' gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS LIBGNU_LIBDEPS="$gl_libdeps" LIBGNU_LTLIBDEPS="$gl_ltlibdeps" # GNU help2man creates man pages from --help output; in many cases, this # is sufficient, and obviates the need to maintain man pages separately. # However, this means invoking executables, which we generally cannot do # when cross-compiling, so we test to avoid that (the variable # "cross_compiling" is set by AC_PROG_CC). if test $cross_compiling = no; then HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"} else HELP2MAN=: fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. 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 ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. 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 ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. 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 ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$acl_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) acl_cv_prog_gnu_ld=yes ;; *) acl_cv_prog_gnu_ld=no ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <CoreFoundation/CFPreferences.h> int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <CoreFoundation/CFLocale.h> int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <iconv.h> int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <iconv.h> int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <iconv.h> #include <string.h> int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" # Check whether --with-default-pager was given. if test "${with_default_pager+set}" = set; then : withval=$with_default_pager; case $withval in #( yes) : as_fn_error $? "--with-default-pager=PATH requires a PATH" "$LINENO" 5 ;; #( no) : ;; #( *) : cat >>confdefs.h <<_ACEOF #define PAGER_PROGRAM "$withval" _ACEOF ;; esac fi # Handling of experimental applications # Check whether --enable-experimental was given. if test "${enable_experimental+set}" = set; then : enableval=$enable_experimental; case $enableval in #( yes) : EXPERIMENTAL="mdiff unify wdiff2" ;; #( no) : EXPERIMENTAL="" ;; #( *) : EXPERIMENTAL=$enableval ;; esac else EXPERIMENTAL="" fi set dummy $EXPERIMENTAL; shift EXPERIMENTAL_PROGRAMS="" EXPERIMENTAL_MANS="" EXPERIMENTAL_TEXI="@clear EXPERIMENTAL" for experimental_i do case $experimental_i in #( mdiff|unify|wdiff2) : EXPERIMENTAL_PROGRAMS="$EXPERIMENTAL_PROGRAMS $experimental_i\$(EXEEXT)" EXPERIMENTAL_MANS="$EXPERIMENTAL_MANS $experimental_i.1" EXPERIMENTAL_TEXI="@set EXPERIMENTAL" ;; #( *) : as_fn_error $? "unknown experimental $experimental_i" "$LINENO" 5 ;; esac done { $as_echo "$as_me:${as_lineno-$LINENO}: Enabled experimental applications: $EXPERIMENTAL" >&5 $as_echo "$as_me: Enabled experimental applications: $EXPERIMENTAL" >&6;} # Done handling experimental applications # termcap/curses handling # Check whether --with-termcap was given. if test "${with_termcap+set}" = set; then : withval=$with_termcap; else with_termcap=auto fi if test "x$with_termcap" != xno; then : for ac_header in termcap.h termlib.h curses.h ncurses.h term.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "x$with_termcap" = xauto; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tputs" >&5 $as_echo_n "checking for library containing tputs... " >&6; } if ${ac_cv_search_tputs+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 tputs (); int main () { return tputs (); ; return 0; } _ACEOF for ac_lib in '' termcap termlib ncursesw ncurses; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_tputs=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_tputs+:} false; then : break fi done if ${ac_cv_search_tputs+:} false; then : else ac_cv_search_tputs=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tputs" >&5 $as_echo "$ac_cv_search_tputs" >&6; } ac_res=$ac_cv_search_tputs if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else with_termcap=no fi else LIBS="-l$with_termcap $LIBS" fi fi if test "x$with_termcap" != xno; then : $as_echo "#define HAVE_TPUTS 1" >>confdefs.h fi # Done with termcap/curses ac_config_files="$ac_config_files Makefile doc/Makefile doc/flags.texi lib/Makefile lib/po/Makefile.in man/Makefile po/Makefile.in src/Makefile" 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_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; 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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_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= U= 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=`$as_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. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi CONFIG_INCLUDE=config.h if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $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} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do 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 as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } 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.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac 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 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_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 || $as_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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=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 GNU wdiff $as_me 1.2.1, which was generated by GNU Autoconf 2.69. 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 case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent 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 links: $config_links Configuration commands: $config_commands Report bugs to <wdiff-bugs@gnu.org>. GNU wdiff home page: <http://www.gnu.org/software/wdiff/>. General help using GNU software: <http://www.gnu.org/gethelp/>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ GNU wdiff config.status 1.2.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 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' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= 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 ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_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. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append 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 || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" GNUmakefile=$GNUmakefile # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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" ;; "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/flags.texi") CONFIG_FILES="$CONFIG_FILES doc/flags.texi" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "lib/po/Makefile.in") CONFIG_FILES="$CONFIG_FILES lib/po/Makefile.in" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 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_LINKS+set}" = set || CONFIG_LINKS=$config_links 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' <conf$$subs.awk | sed ' /^[^""]/{ N s/\n// } ' >>$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' <confdefs.h | sed ' s/'"$ac_delim"'/"\\\ "/g' >>$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # 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. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[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="$ac_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 || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append 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 '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 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 || $as_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"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_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 ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 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 || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;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 s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :L) # # CONFIG_LINK # if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then : else # Prefer the file from the source tree if names are identical. if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then ac_source=$srcdir/$ac_source fi { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "tests/atconfig":C) cat >tests/atconfig <<ATEOF # Configurable variable values for building test suites. # Generated by $0. # Copyright (C) 2012 Free Software Foundation, Inc. # The test suite will define top_srcdir=$at_top_srcdir/../.. etc. at_testdir='tests' abs_builddir='$ac_abs_builddir' at_srcdir='$ac_srcdir' abs_srcdir='$ac_abs_srcdir' at_top_srcdir='$ac_top_srcdir' abs_top_srcdir='$ac_abs_top_srcdir' at_top_build_prefix='$ac_top_build_prefix' abs_top_builddir='$ac_abs_top_builddir' # Backward compatibility with Autotest <= 2.59b: at_top_builddir=\$at_top_build_prefix AUTOTEST_PATH='tests' SHELL=\${CONFIG_SHELL-'$SHELL'} ATEOF ;; "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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 || $as_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"` # 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'`; 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 || $as_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; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # 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 || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12116513224�010324� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/locale.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000016002�12116370307�012263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A POSIX <locale.h>. Copyright (C) 2007-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifdef _GL_ALREADY_INCLUDING_LOCALE_H /* Special invocation conventions to handle Solaris header files (through Solaris 10) when combined with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LOCALE_H #define _GL_ALREADY_INCLUDING_LOCALE_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #undef _GL_ALREADY_INCLUDING_LOCALE_H #ifndef _@GUARD_PREFIX@_LOCALE_H #define _@GUARD_PREFIX@_LOCALE_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* Mac OS X 10.5 defines the locale_t type in <xlocale.h>. */ #if @HAVE_XLOCALE_H@ # include <xlocale.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C. On systems that don't define it, use the same value as GNU libintl. */ #if !defined LC_MESSAGES # define LC_MESSAGES 1729 #endif /* Bionic libc's 'struct lconv' is just a dummy. */ #if @REPLACE_STRUCT_LCONV@ # define lconv rpl_lconv struct lconv { /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_04> */ /* Symbol used as decimal point. */ char *decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_03> */ /* Symbol used as decimal point. */ char *mon_decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *mon_thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *mon_grouping; /* Sign used to indicate a value >= 0. */ char *positive_sign; /* Sign used to indicate a value < 0. */ char *negative_sign; /* For formatting local currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *currency_symbol; /* Number of digits after the decimal point. */ char frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char p_cs_precedes; /* For values >= 0: Position of the sign. */ char p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char n_cs_precedes; /* For values < 0: Position of the sign. */ char n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char n_sep_by_space; /* For formatting international currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *int_curr_symbol; /* Number of digits after the decimal point. */ char int_frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_p_cs_precedes; /* For values >= 0: Position of the sign. */ char int_p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char int_p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_n_cs_precedes; /* For values < 0: Position of the sign. */ char int_n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char int_n_sep_by_space; }; #endif #if @GNULIB_LOCALECONV@ # if @REPLACE_LOCALECONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localeconv # define localeconv rpl_localeconv # endif _GL_FUNCDECL_RPL (localeconv, struct lconv *, (void)); _GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); # else _GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); # endif _GL_CXXALIASWARN (localeconv); #elif @REPLACE_STRUCT_LCONV@ # undef localeconv # define localeconv localeconv_used_without_requesting_gnulib_module_localeconv #elif defined GNULIB_POSIXCHECK # undef localeconv # if HAVE_RAW_DECL_LOCALECONV _GL_WARN_ON_USE (localeconv, "localeconv returns too few information on some platforms - " "use gnulib module localeconv for portability"); # endif #endif #if @GNULIB_SETLOCALE@ # if @REPLACE_SETLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setlocale # define setlocale rpl_setlocale # define GNULIB_defined_setlocale 1 # endif _GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale)); _GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); # else _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); # endif _GL_CXXALIASWARN (setlocale); #elif defined GNULIB_POSIXCHECK # undef setlocale # if HAVE_RAW_DECL_SETLOCALE _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " "use gnulib module setlocale for portability"); # endif #endif #if @GNULIB_DUPLOCALE@ # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); # else # if @HAVE_DUPLOCALE@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # endif # endif # if @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " "use gnulib module duplocale for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/itold.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000002010�12116370307�011517� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Replacement for 'int' to 'long double' conversion routine. Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <float.h> void _Qp_itoq (long double *result, int a) { /* Convert from 'int' to 'double', then from 'double' to 'long double'. */ *result = (double) a; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/msvc-nothrow.h����������������������������������������������������������������������0000644�0000000�0000000�00000003010�12116370307�013060� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines wrappers that turn such an invalid parameter notification into an error code. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include <io.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Override _get_osfhandle. */ extern intptr_t _gl_nothrow_get_osfhandle (int fd); # define _get_osfhandle _gl_nothrow_get_osfhandle # endif #endif #endif /* _MSVC_NOTHROW_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/canonicalize-lgpl.c�����������������������������������������������������������������0000644�0000000�0000000�00000026721�12116370307�014016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Return the canonical absolute name of a given file. Copyright (C) 1996-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ # define _GL_ARG_NONNULL(params) # define _GL_USE_STDLIB_ALLOC 1 # include <config.h> #endif #if !HAVE_CANONICALIZE_FILE_NAME || !FUNC_REALPATH_WORKS || defined _LIBC /* Specification. */ #include <stdlib.h> #include <alloca.h> #include <string.h> #include <unistd.h> #include <limits.h> #if HAVE_SYS_PARAM_H || defined _LIBC # include <sys/param.h> #endif #include <sys/stat.h> #include <errno.h> #include <stddef.h> #ifdef _LIBC # include <shlib-compat.h> #else # define SHLIB_COMPAT(lib, introduced, obsoleted) 0 # define versioned_symbol(lib, local, symbol, version) extern int dummy # define compat_symbol(lib, local, symbol, version) # define weak_alias(local, symbol) # define __canonicalize_file_name canonicalize_file_name # define __realpath realpath # include "pathmax.h" # include "malloca.h" # include "dosname.h" # if HAVE_GETCWD # if IN_RELOCWRAPPER /* When building the relocatable program wrapper, use the system's getcwd function, not the gnulib override, otherwise we would get a link error. */ # undef getcwd # endif # ifdef VMS /* We want the directory in Unix syntax, not in VMS syntax. */ # define __getcwd(buf, max) getcwd (buf, max, 0) # else # define __getcwd getcwd # endif # else # define __getcwd(buf, max) getwd (buf) # endif # define __readlink readlink # define __set_errno(e) errno = (e) # ifndef MAXSYMLINKS # ifdef SYMLOOP_MAX # define MAXSYMLINKS SYMLOOP_MAX # else # define MAXSYMLINKS 20 # endif # endif #endif #ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 #endif #if !FUNC_REALPATH_WORKS || defined _LIBC /* Return the canonical absolute name of file NAME. A canonical name does not contain any ".", ".." components nor any repeated path separators ('/') or symlinks. All path components must exist. If RESOLVED is null, the result is malloc'd; otherwise, if the canonical name is PATH_MAX chars or more, returns null with 'errno' set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, returns the name in RESOLVED. If the name cannot be resolved and RESOLVED is non-NULL, it contains the path of the first component that cannot be resolved. If the path can be resolved, RESOLVED holds the same value as the value returned. */ char * __realpath (const char *name, char *resolved) { char *rpath, *dest, *extra_buf = NULL; const char *start, *end, *rpath_limit; long int path_max; int num_links = 0; size_t prefix_len; if (name == NULL) { /* As per Single Unix Specification V2 we must return an error if either parameter is a null pointer. We extend this to allow the RESOLVED parameter to be NULL in case the we are expected to allocate the room for the return value. */ __set_errno (EINVAL); return NULL; } if (name[0] == '\0') { /* As per Single Unix Specification V2 we must return an error if the name argument points to an empty string. */ __set_errno (ENOENT); return NULL; } #ifdef PATH_MAX path_max = PATH_MAX; #else path_max = pathconf (name, _PC_PATH_MAX); if (path_max <= 0) path_max = 8192; #endif if (resolved == NULL) { rpath = malloc (path_max); if (rpath == NULL) { /* It's easier to set errno to ENOMEM than to rely on the 'malloc-posix' gnulib module. */ errno = ENOMEM; return NULL; } } else rpath = resolved; rpath_limit = rpath + path_max; /* This is always zero for Posix hosts, but can be 2 for MS-Windows and MS-DOS X:/foo/bar file names. */ prefix_len = FILE_SYSTEM_PREFIX_LEN (name); if (!IS_ABSOLUTE_FILE_NAME (name)) { if (!__getcwd (rpath, path_max)) { rpath[0] = '\0'; goto error; } dest = strchr (rpath, '\0'); start = name; prefix_len = FILE_SYSTEM_PREFIX_LEN (rpath); } else { dest = rpath; if (prefix_len) { memcpy (rpath, name, prefix_len); dest += prefix_len; } *dest++ = '/'; if (DOUBLE_SLASH_IS_DISTINCT_ROOT) { if (ISSLASH (name[1]) && !ISSLASH (name[2]) && !prefix_len) *dest++ = '/'; *dest = '\0'; } start = name + prefix_len; } for (end = start; *start; start = end) { #ifdef _LIBC struct stat64 st; #else struct stat st; #endif int n; /* Skip sequence of multiple path-separators. */ while (ISSLASH (*start)) ++start; /* Find end of path component. */ for (end = start; *end && !ISSLASH (*end); ++end) /* Nothing. */; if (end - start == 0) break; else if (end - start == 1 && start[0] == '.') /* nothing */; else if (end - start == 2 && start[0] == '.' && start[1] == '.') { /* Back up to previous component, ignore if at root already. */ if (dest > rpath + prefix_len + 1) for (--dest; dest > rpath && !ISSLASH (dest[-1]); --dest) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && !prefix_len && ISSLASH (*dest) && !ISSLASH (dest[1])) dest++; } else { size_t new_size; if (!ISSLASH (dest[-1])) *dest++ = '/'; if (dest + (end - start) >= rpath_limit) { ptrdiff_t dest_offset = dest - rpath; char *new_rpath; if (resolved) { __set_errno (ENAMETOOLONG); if (dest > rpath + prefix_len + 1) dest--; *dest = '\0'; goto error; } new_size = rpath_limit - rpath; if (end - start + 1 > path_max) new_size += end - start + 1; else new_size += path_max; new_rpath = (char *) realloc (rpath, new_size); if (new_rpath == NULL) { /* It's easier to set errno to ENOMEM than to rely on the 'realloc-posix' gnulib module. */ errno = ENOMEM; goto error; } rpath = new_rpath; rpath_limit = rpath + new_size; dest = rpath + dest_offset; } #ifdef _LIBC dest = __mempcpy (dest, start, end - start); #else memcpy (dest, start, end - start); dest += end - start; #endif *dest = '\0'; #ifdef _LIBC if (__lxstat64 (_STAT_VER, rpath, &st) < 0) #else if (lstat (rpath, &st) < 0) #endif goto error; if (S_ISLNK (st.st_mode)) { char *buf; size_t len; if (++num_links > MAXSYMLINKS) { __set_errno (ELOOP); goto error; } buf = malloca (path_max); if (!buf) { errno = ENOMEM; goto error; } n = __readlink (rpath, buf, path_max - 1); if (n < 0) { int saved_errno = errno; freea (buf); errno = saved_errno; goto error; } buf[n] = '\0'; if (!extra_buf) { extra_buf = malloca (path_max); if (!extra_buf) { freea (buf); errno = ENOMEM; goto error; } } len = strlen (end); if ((long int) (n + len) >= path_max) { freea (buf); __set_errno (ENAMETOOLONG); goto error; } /* Careful here, end may be a pointer into extra_buf... */ memmove (&extra_buf[n], end, len + 1); name = end = memcpy (extra_buf, buf, n); if (IS_ABSOLUTE_FILE_NAME (buf)) { size_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf); if (pfxlen) memcpy (rpath, buf, pfxlen); dest = rpath + pfxlen; *dest++ = '/'; /* It's an absolute symlink */ if (DOUBLE_SLASH_IS_DISTINCT_ROOT) { if (ISSLASH (buf[1]) && !ISSLASH (buf[2]) && !pfxlen) *dest++ = '/'; *dest = '\0'; } /* Install the new prefix to be in effect hereafter. */ prefix_len = pfxlen; } else { /* Back up to previous component, ignore if at root already: */ if (dest > rpath + prefix_len + 1) for (--dest; dest > rpath && !ISSLASH (dest[-1]); --dest) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && ISSLASH (*dest) && !ISSLASH (dest[1]) && !prefix_len) dest++; } } else if (!S_ISDIR (st.st_mode) && *end != '\0') { __set_errno (ENOTDIR); goto error; } } } if (dest > rpath + prefix_len + 1 && ISSLASH (dest[-1])) --dest; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && !prefix_len && ISSLASH (*dest) && !ISSLASH (dest[1])) dest++; *dest = '\0'; if (extra_buf) freea (extra_buf); return rpath; error: { int saved_errno = errno; if (extra_buf) freea (extra_buf); if (resolved == NULL) free (rpath); errno = saved_errno; } return NULL; } versioned_symbol (libc, __realpath, realpath, GLIBC_2_3); #endif /* !FUNC_REALPATH_WORKS || defined _LIBC */ #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3) char * attribute_compat_text_section __old_realpath (const char *name, char *resolved) { if (resolved == NULL) { __set_errno (EINVAL); return NULL; } return __realpath (name, resolved); } compat_symbol (libc, __old_realpath, realpath, GLIBC_2_0); #endif char * __canonicalize_file_name (const char *name) { return __realpath (name, NULL); } weak_alias (__canonicalize_file_name, canonicalize_file_name) #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif �����������������������������������������������wdiff-1.2.1/lib/mbuiter.h���������������������������������������������������������������������������0000644�0000000�0000000�00000017403�12116370307�012074� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Iterating through multibyte strings: macros for multi-byte encodings. Copyright (C) 2001, 2005, 2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ /* The macros in this file implement forward iteration through a multi-byte string, without knowing its length a-priori. With these macros, an iteration loop that looks like char *iter; for (iter = buf; *iter != '\0'; iter++) { do_something (*iter); } becomes mbui_iterator_t iter; for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter)) { do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter))); } The benefit of these macros over plain use of mbrtowc is: - Handling of invalid multibyte sequences is possible without making the code more complicated, while still preserving the invalid multibyte sequences. Compared to mbiter.h, the macros here don't need to know the string's length a-priori. The downside is that at each step, the look-ahead that guards against overrunning the terminating '\0' is more expensive. The mbui_* macros are therefore suitable when there is a high probability that only the first few multibyte characters need to be inspected. Whereas the mbi_* macros are better if usually the iteration runs through the entire string. mbui_iterator_t is a type usable for variable declarations. mbui_init (iter, startptr) initializes the iterator, starting at startptr. mbui_avail (iter) returns true if there are more multibyte characters available before the end of string is reached. In this case, mbui_cur (iter) is initialized to the next multibyte character. mbui_advance (iter) advances the iterator by one multibyte character. mbui_cur (iter) returns the current multibyte character, of type mbchar_t. All the macros defined in mbchar.h can be used on it. mbui_cur_ptr (iter) return a pointer to the beginning of the current multibyte character. mbui_reloc (iter, ptrdiff) relocates iterator when the string is moved by ptrdiff bytes. mbui_copy (&destiter, &srciter) copies srciter to destiter. Here are the function prototypes of the macros. extern void mbui_init (mbui_iterator_t iter, const char *startptr); extern bool mbui_avail (mbui_iterator_t iter); extern void mbui_advance (mbui_iterator_t iter); extern mbchar_t mbui_cur (mbui_iterator_t iter); extern const char * mbui_cur_ptr (mbui_iterator_t iter); extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff); extern void mbui_copy (mbui_iterator_t *new, const mbui_iterator_t *old); */ #ifndef _MBUITER_H #define _MBUITER_H 1 #include <assert.h> #include <stdbool.h> #include <stddef.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stdio.h> #include <time.h> #include <wchar.h> #include "mbchar.h" #include "strnlen1.h" _GL_INLINE_HEADER_BEGIN #ifndef MBUITER_INLINE # define MBUITER_INLINE _GL_INLINE #endif struct mbuiter_multi { bool in_shift; /* true if next byte may not be interpreted as ASCII */ mbstate_t state; /* if in_shift: current shift state */ bool next_done; /* true if mbui_avail has already filled the following */ struct mbchar cur; /* the current character: const char *cur.ptr pointer to current character The following are only valid after mbui_avail. size_t cur.bytes number of bytes of current character bool cur.wc_valid true if wc is a valid wide character wchar_t cur.wc if wc_valid: the current character */ }; MBUITER_INLINE void mbuiter_multi_next (struct mbuiter_multi *iter) { if (iter->next_done) return; if (iter->in_shift) goto with_shift; /* Handle most ASCII characters quickly, without calling mbrtowc(). */ if (is_basic (*iter->cur.ptr)) { /* These characters are part of the basic character set. ISO C 99 guarantees that their wide character code is identical to their char code. */ iter->cur.bytes = 1; iter->cur.wc = *iter->cur.ptr; iter->cur.wc_valid = true; } else { assert (mbsinit (&iter->state)); iter->in_shift = true; with_shift: iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr, strnlen1 (iter->cur.ptr, MB_CUR_MAX), &iter->state); if (iter->cur.bytes == (size_t) -1) { /* An invalid multibyte sequence was encountered. */ iter->cur.bytes = 1; iter->cur.wc_valid = false; /* Whether to set iter->in_shift = false and reset iter->state or not is not very important; the string is bogus anyway. */ } else if (iter->cur.bytes == (size_t) -2) { /* An incomplete multibyte character at the end. */ iter->cur.bytes = strlen (iter->cur.ptr); iter->cur.wc_valid = false; /* Whether to set iter->in_shift = false and reset iter->state or not is not important; the string end is reached anyway. */ } else { if (iter->cur.bytes == 0) { /* A null wide character was encountered. */ iter->cur.bytes = 1; assert (*iter->cur.ptr == '\0'); assert (iter->cur.wc == 0); } iter->cur.wc_valid = true; /* When in the initial state, we can go back treating ASCII characters more quickly. */ if (mbsinit (&iter->state)) iter->in_shift = false; } } iter->next_done = true; } MBUITER_INLINE void mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff) { iter->cur.ptr += ptrdiff; } MBUITER_INLINE void mbuiter_multi_copy (struct mbuiter_multi *new_iter, const struct mbuiter_multi *old_iter) { if ((new_iter->in_shift = old_iter->in_shift)) memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t)); else memset (&new_iter->state, 0, sizeof (mbstate_t)); new_iter->next_done = old_iter->next_done; mb_copy (&new_iter->cur, &old_iter->cur); } /* Iteration macros. */ typedef struct mbuiter_multi mbui_iterator_t; #define mbui_init(iter, startptr) \ ((iter).cur.ptr = (startptr), \ (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \ (iter).next_done = false) #define mbui_avail(iter) \ (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur)) #define mbui_advance(iter) \ ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false) /* Access to the current character. */ #define mbui_cur(iter) (iter).cur #define mbui_cur_ptr(iter) (iter).cur.ptr /* Relocation. */ #define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff) /* Copying an iterator. */ #define mbui_copy mbuiter_multi_copy _GL_INLINE_HEADER_END #endif /* _MBUITER_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/getopt.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000021621�12116370307�012331� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declarations for getopt. Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_GETOPT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. We must also inform the replacement unistd.h to not recursively use <getopt.h>; our definitions will be present soon enough. */ #if @HAVE_GETOPT_H@ # define _GL_SYSTEM_GETOPT # @INCLUDE_NEXT@ @NEXT_GETOPT_H@ # undef _GL_SYSTEM_GETOPT #endif #ifndef _@GUARD_PREFIX@_GETOPT_H #ifndef __need_getopt # define _@GUARD_PREFIX@_GETOPT_H 1 #endif /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables defined in this header. When this happens, include the headers that might declare getopt so that they will not cause confusion if included after this file (if the system had <getopt.h>, we have already included it). Then systematically rename identifiers so that they do not collide with the system functions and variables. Renaming avoids problems with some compilers and linkers. */ #if defined __GETOPT_PREFIX && !defined __need_getopt # if !@HAVE_GETOPT_H@ # define __need_system_stdlib_h # include <stdlib.h> # undef __need_system_stdlib_h # include <stdio.h> # include <unistd.h> # endif # undef __need_getopt # undef getopt # undef getopt_long # undef getopt_long_only # undef optarg # undef opterr # undef optind # undef optopt # undef option # define __GETOPT_CONCAT(x, y) x ## y # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) # define getopt __GETOPT_ID (getopt) # define getopt_long __GETOPT_ID (getopt_long) # define getopt_long_only __GETOPT_ID (getopt_long_only) # define optarg __GETOPT_ID (optarg) # define opterr __GETOPT_ID (opterr) # define optind __GETOPT_ID (optind) # define optopt __GETOPT_ID (optopt) # define option __GETOPT_ID (option) # define _getopt_internal __GETOPT_ID (getopt_internal) #endif /* Standalone applications get correct prototypes for getopt_long and getopt_long_only; they declare "char **argv". libc uses prototypes with "char *const *argv" that are incorrect because getopt_long and getopt_long_only can permute argv; this is required for backward compatibility (e.g., for LSB 2.0.1). This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt', but it caused redefinition warnings if both unistd.h and getopt.h were included, since unistd.h includes getopt.h having previously defined __need_getopt. The only place where __getopt_argv_const is used is in definitions of getopt_long and getopt_long_only below, but these are visible only if __need_getopt is not defined, so it is quite safe to rewrite the conditional as follows: */ #if !defined __need_getopt # if defined __GETOPT_PREFIX # define __getopt_argv_const /* empty */ # else # define __getopt_argv_const const # endif #endif /* If __GNU_LIBRARY__ is not already defined, either we are being used standalone, or this is the first header included in the source file. If we are being used with glibc, we need to include <features.h>, but that does not exist if we are standalone. So: if __GNU_LIBRARY__ is not defined, include <ctype.h>, which will pull in <features.h> for us if it's from glibc. (Why ctype.h? It's guaranteed to exist and it doesn't flood the namespace with stuff the way some other headers do.) */ #if !defined __GNU_LIBRARY__ # include <ctype.h> #endif #ifndef __THROW # ifndef __GNUC_PREREQ # define __GNUC_PREREQ(maj, min) (0) # endif # if defined __cplusplus && __GNUC_PREREQ (2,8) # define __THROW throw () # else # define __THROW # endif #endif /* The definition of _GL_ARG_NONNULL is copied here. */ #ifdef __cplusplus extern "C" { #endif /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message 'getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; #ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of 'struct option' terminated by an element containing a name which is zero. The field 'has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field 'flag' is not NULL, it points to a variable that is set to the value given in the field 'val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an 'int' to a compiled-in constant, such as set a value from 'optarg', set the option's 'flag' field to zero and its 'val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero 'flag' field, 'getopt' returns the contents of the 'val' field. */ # if !GNULIB_defined_struct_option struct option { const char *name; /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; # define GNULIB_defined_struct_option 1 # endif /* Names for the values of the 'has_arg' field of 'struct option'. */ # define no_argument 0 # define required_argument 1 # define optional_argument 2 #endif /* need getopt */ /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options missing arguments, 'optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter takes an argument, to be placed in 'optarg'. If a letter in OPTS is followed by two colons, its argument is optional. This behavior is specific to the GNU 'getopt'. The argument '--' causes premature termination of argument scanning, explicitly telling 'getopt' that there are no more options. If OPTS begins with '-', then non-option arguments are treated as arguments to the option '\1'. This behavior is specific to the GNU 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in the environment, then do not permute arguments. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW _GL_ARG_NONNULL ((2, 3)); #ifndef __need_getopt extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind) __THROW _GL_ARG_NONNULL ((2, 3)); extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind) __THROW _GL_ARG_NONNULL ((2, 3)); #endif #ifdef __cplusplus } #endif /* Make sure we later can get all the definitions and declarations. */ #undef __need_getopt #endif /* _@GUARD_PREFIX@_GETOPT_H */ #endif /* _@GUARD_PREFIX@_GETOPT_H */ ���������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/regcomp.c���������������������������������������������������������������������������0000644�0000000�0000000�00000334306�12116370307�012060� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extended regular expression matching and search library. Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax); static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap); static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset); #endif /* RE_ENABLE_I18N */ static void free_workarea_compile (regex_t *preg); static reg_errcode_t create_initial_state (re_dfa_t *dfa); #ifdef RE_ENABLE_I18N static void optimize_utf8 (re_dfa_t *dfa); #endif static reg_errcode_t analyze (regex_t *preg); static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node); static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node); static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node); static reg_errcode_t calc_first (void *extra, bin_tree_t *node); static reg_errcode_t calc_next (void *extra, bin_tree_t *node); static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node); static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint); static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, unsigned int constraint); static reg_errcode_t calc_eclosure (re_dfa_t *dfa); static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root); static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) internal_function; static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen); static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token); #ifdef RE_ENABLE_I18N static reg_errcode_t build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax); #else /* not RE_ENABLE_I18N */ static reg_errcode_t build_equiv_class (bitset_t sbcset, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const char *class_name, reg_syntax_t syntax); #endif /* not RE_ENABLE_I18N */ static bin_tree_t *build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, bool non_match, reg_errcode_t *err); static bin_tree_t *create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type); static bin_tree_t *create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token); static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa); static void free_token (re_token_t *node); static reg_errcode_t free_tree (void *extra, bin_tree_t *node); static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node); /* This table gives an error message for each of the error codes listed in regex.h. Obviously the order here has to be same as there. POSIX doesn't require that we do anything for REG_NOERROR, but why not be nice? */ static const char __re_error_msgid[] = { #define REG_NOERROR_IDX 0 gettext_noop ("Success") /* REG_NOERROR */ "\0" #define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") gettext_noop ("No match") /* REG_NOMATCH */ "\0" #define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") gettext_noop ("Invalid regular expression") /* REG_BADPAT */ "\0" #define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ "\0" #define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") gettext_noop ("Invalid character class name") /* REG_ECTYPE */ "\0" #define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") gettext_noop ("Trailing backslash") /* REG_EESCAPE */ "\0" #define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") gettext_noop ("Invalid back reference") /* REG_ESUBREG */ "\0" #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */ "\0" #define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^") gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ "\0" #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") gettext_noop ("Unmatched \\{") /* REG_EBRACE */ "\0" #define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ "\0" #define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") gettext_noop ("Invalid range end") /* REG_ERANGE */ "\0" #define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") gettext_noop ("Memory exhausted") /* REG_ESPACE */ "\0" #define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ "\0" #define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") gettext_noop ("Premature end of regular expression") /* REG_EEND */ "\0" #define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") gettext_noop ("Regular expression too big") /* REG_ESIZE */ "\0" #define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ }; static const size_t __re_error_msgid_idx[] = { REG_NOERROR_IDX, REG_NOMATCH_IDX, REG_BADPAT_IDX, REG_ECOLLATE_IDX, REG_ECTYPE_IDX, REG_EESCAPE_IDX, REG_ESUBREG_IDX, REG_EBRACK_IDX, REG_EPAREN_IDX, REG_EBRACE_IDX, REG_BADBR_IDX, REG_ERANGE_IDX, REG_ESPACE_IDX, REG_BADRPT_IDX, REG_EEND_IDX, REG_ESIZE_IDX, REG_ERPAREN_IDX }; /* Entry points for GNU code. */ /* re_compile_pattern is the GNU regular expression compiler: it compiles PATTERN (of length LENGTH) and puts the result in BUFP. Returns 0 if the pattern was valid, otherwise an error string. Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields are set in BUFP on entry. */ #ifdef _LIBC const char * re_compile_pattern (pattern, length, bufp) const char *pattern; size_t length; struct re_pattern_buffer *bufp; #else /* size_t might promote */ const char * re_compile_pattern (const char *pattern, size_t length, struct re_pattern_buffer *bufp) #endif { reg_errcode_t ret; /* And GNU code determines whether or not to get register information by passing null for the REGS argument to re_match, etc., not by setting no_sub, unless RE_NO_SUB is set. */ bufp->no_sub = !!(re_syntax_options & RE_NO_SUB); /* Match anchors at newline. */ bufp->newline_anchor = 1; ret = re_compile_internal (bufp, pattern, length, re_syntax_options); if (!ret) return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) #endif /* Set by 're_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own syntax, so it can be changed between regex compilations. */ /* This has no initializer because initialized variables in Emacs become read-only after dumping. */ reg_syntax_t re_syntax_options; /* Specify the precise syntax of regexps for compilation. This provides for compatibility for various utilities which historically have different, incompatible syntaxes. The argument SYNTAX is a bit mask comprised of the various bits defined in regex.h. We return the old syntax. */ reg_syntax_t re_set_syntax (syntax) reg_syntax_t syntax; { reg_syntax_t ret = re_syntax_options; re_syntax_options = syntax; return ret; } #ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) #endif int re_compile_fastmap (bufp) struct re_pattern_buffer *bufp; { re_dfa_t *dfa = bufp->buffer; char *fastmap = bufp->fastmap; memset (fastmap, '\0', sizeof (char) * SBC_MAX); re_compile_fastmap_iter (bufp, dfa->init_state, fastmap); if (dfa->init_state != dfa->init_state_word) re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap); if (dfa->init_state != dfa->init_state_nl) re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap); if (dfa->init_state != dfa->init_state_begbuf) re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap); bufp->fastmap_accurate = 1; return 0; } #ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) #endif static inline void __attribute ((always_inline)) re_set_fastmap (char *fastmap, bool icase, int ch) { fastmap[ch] = 1; if (icase) fastmap[tolower (ch)] = 1; } /* Helper function for re_compile_fastmap. Compile fastmap for the initial_state INIT_STATE. */ static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap) { re_dfa_t *dfa = bufp->buffer; Idx node_cnt; bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) { Idx node = init_state->nodes.elems[node_cnt]; re_token_type_t type = dfa->nodes[node].type; if (type == CHARACTER) { re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); #ifdef RE_ENABLE_I18N if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { unsigned char buf[MB_LEN_MAX]; unsigned char *p; wchar_t wc; mbstate_t state; p = buf; *p++ = dfa->nodes[node].opr.c; while (++node < dfa->nodes_len && dfa->nodes[node].type == CHARACTER && dfa->nodes[node].mb_partial) *p++ = dfa->nodes[node].opr.c; memset (&state, '\0', sizeof (state)); if (__mbrtowc (&wc, (const char *) buf, p - buf, &state) == p - buf && (__wcrtomb ((char *) buf, towlower (wc), &state) != (size_t) -1)) re_set_fastmap (fastmap, false, buf[0]); } #endif } else if (type == SIMPLE_BRACKET) { int i, ch; for (i = 0, ch = 0; i < BITSET_WORDS; ++i) { int j; bitset_word_t w = dfa->nodes[node].opr.sbcset[i]; for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (w & ((bitset_word_t) 1 << j)) re_set_fastmap (fastmap, icase, ch); } } #ifdef RE_ENABLE_I18N else if (type == COMPLEX_BRACKET) { re_charset_t *cset = dfa->nodes[node].opr.mbcset; Idx i; # ifdef _LIBC /* See if we have to try all bytes which start multiple collation elements. e.g. In da_DK, we want to catch 'a' since "aa" is a valid collation element, and don't catch 'b' since 'b' is the only collation element which starts from 'b' (and it is caught by SIMPLE_BRACKET). */ if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0 && (cset->ncoll_syms || cset->nranges)) { const int32_t *table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); for (i = 0; i < SBC_MAX; ++i) if (table[i] < 0) re_set_fastmap (fastmap, icase, i); } # endif /* _LIBC */ /* See if we have to start the match at all multibyte characters, i.e. where we would not find an invalid sequence. This only applies to multibyte character sets; for single byte character sets, the SIMPLE_BRACKET again suffices. */ if (dfa->mb_cur_max > 1 && (cset->nchar_classes || cset->non_match || cset->nranges # ifdef _LIBC || cset->nequiv_classes # endif /* _LIBC */ )) { unsigned char c = 0; do { mbstate_t mbs; memset (&mbs, 0, sizeof (mbs)); if (__mbrtowc (NULL, (char *) &c, 1, &mbs) == (size_t) -2) re_set_fastmap (fastmap, false, (int) c); } while (++c != 0); } else { /* ... Else catch all bytes which can start the mbchars. */ for (i = 0; i < cset->nmbchars; ++i) { char buf[256]; mbstate_t state; memset (&state, '\0', sizeof (state)); if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) re_set_fastmap (fastmap, icase, *(unsigned char *) buf); if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state) != (size_t) -1) re_set_fastmap (fastmap, false, *(unsigned char *) buf); } } } } #endif /* RE_ENABLE_I18N */ else if (type == OP_PERIOD #ifdef RE_ENABLE_I18N || type == OP_UTF8_PERIOD #endif /* RE_ENABLE_I18N */ || type == END_OF_RE) { memset (fastmap, '\1', sizeof (char) * SBC_MAX); if (type == END_OF_RE) bufp->can_be_null = 1; return; } } } /* Entry point for POSIX code. */ /* regcomp takes a regular expression as a string and compiles it. PREG is a regex_t *. We do not expect any fields to be initialized, since POSIX says we shouldn't. Thus, we set 'buffer' to the compiled pattern; 'used' to the length of the compiled pattern; 'syntax' to RE_SYNTAX_POSIX_EXTENDED if the REG_EXTENDED bit in CFLAGS is set; otherwise, to RE_SYNTAX_POSIX_BASIC; 'newline_anchor' to REG_NEWLINE being set in CFLAGS; 'fastmap' to an allocated space for the fastmap; 'fastmap_accurate' to zero; 're_nsub' to the number of subexpressions in PATTERN. PATTERN is the address of the pattern string. CFLAGS is a series of bits which affect compilation. If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we use POSIX basic syntax. If REG_NEWLINE is set, then . and [^...] don't match newline. Also, regexec will try a match beginning after every newline. If REG_ICASE is set, then we considers upper- and lowercase versions of letters to be equivalent when matching. If REG_NOSUB is set, then when PREG is passed to regexec, that routine will report only success or failure, and nothing about the registers. It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for the return codes and their meanings.) */ int regcomp (preg, pattern, cflags) regex_t *_Restrict_ preg; const char *_Restrict_ pattern; int cflags; { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC); preg->buffer = NULL; preg->allocated = 0; preg->used = 0; /* Try to allocate space for the fastmap. */ preg->fastmap = re_malloc (char, SBC_MAX); if (BE (preg->fastmap == NULL, 0)) return REG_ESPACE; syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; /* If REG_NEWLINE is set, newlines are treated differently. */ if (cflags & REG_NEWLINE) { /* REG_NEWLINE implies neither . nor [^...] match newline. */ syntax &= ~RE_DOT_NEWLINE; syntax |= RE_HAT_LISTS_NOT_NEWLINE; /* It also changes the matching behavior. */ preg->newline_anchor = 1; } else preg->newline_anchor = 0; preg->no_sub = !!(cflags & REG_NOSUB); preg->translate = NULL; ret = re_compile_internal (preg, pattern, strlen (pattern), syntax); /* POSIX doesn't distinguish between an unmatched open-group and an unmatched close-group: both are REG_EPAREN. */ if (ret == REG_ERPAREN) ret = REG_EPAREN; /* We have already checked preg->fastmap != NULL. */ if (BE (ret == REG_NOERROR, 1)) /* Compute the fastmap now, since regexec cannot modify the pattern buffer. This function never fails in this implementation. */ (void) re_compile_fastmap (preg); else { /* Some error occurred while compiling the expression. */ re_free (preg->fastmap); preg->fastmap = NULL; } return (int) ret; } #ifdef _LIBC weak_alias (__regcomp, regcomp) #endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ #ifdef _LIBC size_t regerror (errcode, preg, errbuf, errbuf_size) int errcode; const regex_t *_Restrict_ preg; char *_Restrict_ errbuf; size_t errbuf_size; #else /* size_t might promote */ size_t regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, size_t errbuf_size) #endif { const char *msg; size_t msg_size; if (BE (errcode < 0 || errcode >= (int) (sizeof (__re_error_msgid_idx) / sizeof (__re_error_msgid_idx[0])), 0)) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. Dump core so we can fix it. */ abort (); msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); msg_size = strlen (msg) + 1; /* Includes the null. */ if (BE (errbuf_size != 0, 1)) { size_t cpy_size = msg_size; if (BE (msg_size > errbuf_size, 0)) { cpy_size = errbuf_size - 1; errbuf[cpy_size] = '\0'; } memcpy (errbuf, msg, cpy_size); } return msg_size; } #ifdef _LIBC weak_alias (__regerror, regerror) #endif #ifdef RE_ENABLE_I18N /* This static array is used for the map to single-byte characters when UTF-8 is used. Otherwise we would allocate memory just to initialize it the same all the time. UTF-8 is the preferred encoding so this is a worthwhile optimization. */ static const bitset_t utf8_sb_map = { /* Set the first 128 bits. */ # ifdef __GNUC__ [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX # else # if 4 * BITSET_WORD_BITS < ASCII_CHARS # error "bitset_word_t is narrower than 32 bits" # elif 3 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX, # elif 2 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, # elif 1 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, # endif (BITSET_WORD_MAX >> (SBC_MAX % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS)) # endif }; #endif static void free_dfa_content (re_dfa_t *dfa) { Idx i, j; if (dfa->nodes) for (i = 0; i < dfa->nodes_len; ++i) free_token (dfa->nodes + i); re_free (dfa->nexts); for (i = 0; i < dfa->nodes_len; ++i) { if (dfa->eclosures != NULL) re_node_set_free (dfa->eclosures + i); if (dfa->inveclosures != NULL) re_node_set_free (dfa->inveclosures + i); if (dfa->edests != NULL) re_node_set_free (dfa->edests + i); } re_free (dfa->edests); re_free (dfa->eclosures); re_free (dfa->inveclosures); re_free (dfa->nodes); if (dfa->state_table) for (i = 0; i <= dfa->state_hash_mask; ++i) { struct re_state_table_entry *entry = dfa->state_table + i; for (j = 0; j < entry->num; ++j) { re_dfastate_t *state = entry->array[j]; free_state (state); } re_free (entry->array); } re_free (dfa->state_table); #ifdef RE_ENABLE_I18N if (dfa->sb_char != utf8_sb_map) re_free (dfa->sb_char); #endif re_free (dfa->subexp_map); #ifdef DEBUG re_free (dfa->re_str); #endif re_free (dfa); } /* Free dynamically allocated space used by PREG. */ void regfree (preg) regex_t *preg; { re_dfa_t *dfa = preg->buffer; if (BE (dfa != NULL, 1)) free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; re_free (preg->fastmap); preg->fastmap = NULL; re_free (preg->translate); preg->translate = NULL; } #ifdef _LIBC weak_alias (__regfree, regfree) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC /* BSD has one and only one pattern buffer. */ static struct re_pattern_buffer re_comp_buf; char * # ifdef _LIBC /* Make these definitions weak in libc, so POSIX programs can redefine these names if they don't use our functions, and still use regcomp/regexec above without link errors. */ weak_function # endif re_comp (s) const char *s; { reg_errcode_t ret; char *fastmap; if (!s) { if (!re_comp_buf.buffer) return gettext ("No previous regular expression"); return 0; } if (re_comp_buf.buffer) { fastmap = re_comp_buf.fastmap; re_comp_buf.fastmap = NULL; __regfree (&re_comp_buf); memset (&re_comp_buf, '\0', sizeof (re_comp_buf)); re_comp_buf.fastmap = fastmap; } if (re_comp_buf.fastmap == NULL) { re_comp_buf.fastmap = (char *) malloc (SBC_MAX); if (re_comp_buf.fastmap == NULL) return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) REG_ESPACE]); } /* Since 're_exec' always passes NULL for the 'regs' argument, we don't need to initialize the pattern buffer fields which affect it. */ /* Match anchors at newlines. */ re_comp_buf.newline_anchor = 1; ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options); if (!ret) return NULL; /* Yes, we're discarding 'const' here if !HAVE_LIBINTL. */ return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC libc_freeres_fn (free_mem) { __regfree (&re_comp_buf); } #endif #endif /* _REGEX_RE_COMP */ /* Internal entry point. Compile the regular expression PATTERN, whose length is LENGTH. SYNTAX indicate regular expression's syntax. */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax) { reg_errcode_t err = REG_NOERROR; re_dfa_t *dfa; re_string_t regexp; /* Initialize the pattern buffer. */ preg->fastmap_accurate = 0; preg->syntax = syntax; preg->not_bol = preg->not_eol = 0; preg->used = 0; preg->re_nsub = 0; preg->can_be_null = 0; preg->regs_allocated = REGS_UNALLOCATED; /* Initialize the dfa. */ dfa = preg->buffer; if (BE (preg->allocated < sizeof (re_dfa_t), 0)) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but that is the user's responsibility. If ->buffer is NULL this is a simple allocation. */ dfa = re_realloc (preg->buffer, re_dfa_t, 1); if (dfa == NULL) return REG_ESPACE; preg->allocated = sizeof (re_dfa_t); preg->buffer = dfa; } preg->used = sizeof (re_dfa_t); err = init_dfa (dfa, length); if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } #ifdef DEBUG /* Note: length+1 will not overflow since it is checked in init_dfa. */ dfa->re_str = re_malloc (char, length + 1); strncpy (dfa->re_str, pattern, length + 1); #endif __libc_lock_init (dfa->lock); err = re_string_construct (®exp, pattern, length, preg->translate, (syntax & RE_ICASE) != 0, dfa); if (BE (err != REG_NOERROR, 0)) { re_compile_internal_free_return: free_workarea_compile (preg); re_string_destruct (®exp); free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } /* Parse the regular expression, and build a structure tree. */ preg->re_nsub = 0; dfa->str_tree = parse (®exp, preg, syntax, &err); if (BE (dfa->str_tree == NULL, 0)) goto re_compile_internal_free_return; /* Analyze the tree and create the nfa. */ err = analyze (preg); if (BE (err != REG_NOERROR, 0)) goto re_compile_internal_free_return; #ifdef RE_ENABLE_I18N /* If possible, do searching in single byte encoding to speed things up. */ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL) optimize_utf8 (dfa); #endif /* Then create the initial state of the dfa. */ err = create_initial_state (dfa); /* Release work areas. */ free_workarea_compile (preg); re_string_destruct (®exp); if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; } return err; } /* Initialize DFA. We use the length of the regular expression PAT_LEN as the initial length of some arrays. */ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { __re_size_t table_size; #ifndef _LIBC const char *codeset_name; #endif #ifdef RE_ENABLE_I18N size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); #else size_t max_i18n_object_size = 0; #endif size_t max_object_size = MAX (sizeof (struct re_state_table_entry), MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), MAX (sizeof (regmatch_t), max_i18n_object_size)))); memset (dfa, '\0', sizeof (re_dfa_t)); /* Force allocation of str_tree_storage the first time. */ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; /* Avoid overflows. The extra "/ 2" is for the table_size doubling calculation below, and for similar doubling calculations elsewhere. And it's <= rather than <, because some of the doubling calculations add 1 afterwards. */ if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0)) return REG_ESPACE; dfa->nodes_alloc = pat_len + 1; dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc); /* table_size = 2 ^ ceil(log pat_len) */ for (table_size = 1; ; table_size <<= 1) if (table_size > pat_len) break; dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size); dfa->state_hash_mask = table_size - 1; dfa->mb_cur_max = MB_CUR_MAX; #ifdef _LIBC if (dfa->mb_cur_max == 6 && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0) dfa->is_utf8 = 1; dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) != 0); #else codeset_name = nl_langinfo (CODESET); if ((codeset_name[0] == 'U' || codeset_name[0] == 'u') && (codeset_name[1] == 'T' || codeset_name[1] == 't') && (codeset_name[2] == 'F' || codeset_name[2] == 'f') && strcmp (codeset_name + 3 + (codeset_name[3] == '-'), "8") == 0) dfa->is_utf8 = 1; /* We check exhaustively in the loop below if this charset is a superset of ASCII. */ dfa->map_notascii = 0; #endif #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { if (dfa->is_utf8) dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; else { int i, j, ch; dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (dfa->sb_char == NULL, 0)) return REG_ESPACE; /* Set the bits corresponding to single byte chars. */ for (i = 0, ch = 0; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) { wint_t wch = __btowc (ch); if (wch != WEOF) dfa->sb_char[i] |= (bitset_word_t) 1 << j; # ifndef _LIBC if (isascii (ch) && wch != ch) dfa->map_notascii = 1; # endif } } } #endif if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0)) return REG_ESPACE; return REG_NOERROR; } /* Initialize WORD_CHAR table, which indicate which character is "word". In this case "word" means that it is the word construction character used by some operators like "\<", "\>", etc. */ static void internal_function init_word_char (re_dfa_t *dfa) { int i = 0; int j; int ch = 0; dfa->word_ops_used = 1; if (BE (dfa->map_notascii == 0, 1)) { bitset_word_t bits0 = 0x00000000; bitset_word_t bits1 = 0x03ff0000; bitset_word_t bits2 = 0x87fffffe; bitset_word_t bits3 = 0x07fffffe; if (BITSET_WORD_BITS == 64) { dfa->word_char[0] = bits1 << 31 << 1 | bits0; dfa->word_char[1] = bits3 << 31 << 1 | bits2; i = 2; } else if (BITSET_WORD_BITS == 32) { dfa->word_char[0] = bits0; dfa->word_char[1] = bits1; dfa->word_char[2] = bits2; dfa->word_char[3] = bits3; i = 4; } else goto general_case; ch = 128; if (BE (dfa->is_utf8, 1)) { memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8); return; } } general_case: for (; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (isalnum (ch) || ch == '_') dfa->word_char[i] |= (bitset_word_t) 1 << j; } /* Free the work area which are only used while compiling. */ static void free_workarea_compile (regex_t *preg) { re_dfa_t *dfa = preg->buffer; bin_tree_storage_t *storage, *next; for (storage = dfa->str_tree_storage; storage; storage = next) { next = storage->next; re_free (storage); } dfa->str_tree_storage = NULL; dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; dfa->str_tree = NULL; re_free (dfa->org_indices); dfa->org_indices = NULL; } /* Create initial states for all contexts. */ static reg_errcode_t create_initial_state (re_dfa_t *dfa) { Idx first, i; reg_errcode_t err; re_node_set init_nodes; /* Initial states have the epsilon closure of the node which is the first node of the regular expression. */ first = dfa->str_tree->first->node_idx; dfa->init_node = first; err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); if (BE (err != REG_NOERROR, 0)) return err; /* The back-references which are in initial states can epsilon transit, since in this case all of the subexpressions can be null. Then we add epsilon closures of the nodes which are the next nodes of the back-references. */ if (dfa->nbackref > 0) for (i = 0; i < init_nodes.nelem; ++i) { Idx node_idx = init_nodes.elems[i]; re_token_type_t type = dfa->nodes[node_idx].type; Idx clexp_idx; if (type != OP_BACK_REF) continue; for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx) { re_token_t *clexp_node; clexp_node = dfa->nodes + init_nodes.elems[clexp_idx]; if (clexp_node->type == OP_CLOSE_SUBEXP && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx) break; } if (clexp_idx == init_nodes.nelem) continue; if (type == OP_BACK_REF) { Idx dest_idx = dfa->edests[node_idx].elems[0]; if (!re_node_set_contains (&init_nodes, dest_idx)) { reg_errcode_t merge_err = re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); if (merge_err != REG_NOERROR) return merge_err; i = 0; } } } /* It must be the first time to invoke acquire_state. */ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); /* We don't check ERR here, since the initial state must not be NULL. */ if (BE (dfa->init_state == NULL, 0)) return err; if (dfa->init_state->has_constraint) { dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_WORD); dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE); dfa->init_state_begbuf = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return err; } else dfa->init_state_word = dfa->init_state_nl = dfa->init_state_begbuf = dfa->init_state; re_node_set_free (&init_nodes); return REG_NOERROR; } #ifdef RE_ENABLE_I18N /* If it is possible to do searching in single byte encoding instead of UTF-8 to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change DFA nodes where needed. */ static void optimize_utf8 (re_dfa_t *dfa) { Idx node; int i; bool mb_chars = false; bool has_period = false; for (node = 0; node < dfa->nodes_len; ++node) switch (dfa->nodes[node].type) { case CHARACTER: if (dfa->nodes[node].opr.c >= ASCII_CHARS) mb_chars = true; break; case ANCHOR: switch (dfa->nodes[node].opr.ctx_type) { case LINE_FIRST: case LINE_LAST: case BUF_FIRST: case BUF_LAST: break; default: /* Word anchors etc. cannot be handled. It's okay to test opr.ctx_type since constraints (for all DFA nodes) are created by ORing one or more opr.ctx_type values. */ return; } break; case OP_PERIOD: has_period = true; break; case OP_BACK_REF: case OP_ALT: case END_OF_RE: case OP_DUP_ASTERISK: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: break; case COMPLEX_BRACKET: return; case SIMPLE_BRACKET: /* Just double check. */ { int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS); for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i) { if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0) return; rshift = 0; } } break; default: abort (); } if (mb_chars || has_period) for (node = 0; node < dfa->nodes_len; ++node) { if (dfa->nodes[node].type == CHARACTER && dfa->nodes[node].opr.c >= ASCII_CHARS) dfa->nodes[node].mb_partial = 0; else if (dfa->nodes[node].type == OP_PERIOD) dfa->nodes[node].type = OP_UTF8_PERIOD; } /* The search can be in single byte locale. */ dfa->mb_cur_max = 1; dfa->is_utf8 = 0; dfa->has_mb_node = dfa->nbackref > 0 || has_period; } #endif /* Analyze the structure tree, and calculate "first", "next", "edest", "eclosure", and "inveclosure". */ static reg_errcode_t analyze (regex_t *preg) { re_dfa_t *dfa = preg->buffer; reg_errcode_t ret; /* Allocate arrays. */ dfa->nexts = re_malloc (Idx, dfa->nodes_alloc); dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc); dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL || dfa->eclosures == NULL, 0)) return REG_ESPACE; dfa->subexp_map = re_malloc (Idx, preg->re_nsub); if (dfa->subexp_map != NULL) { Idx i; for (i = 0; i < preg->re_nsub; i++) dfa->subexp_map[i] = i; preorder (dfa->str_tree, optimize_subexps, dfa); for (i = 0; i < preg->re_nsub; i++) if (dfa->subexp_map[i] != i) break; if (i == preg->re_nsub) { free (dfa->subexp_map); dfa->subexp_map = NULL; } } ret = postorder (dfa->str_tree, lower_subexps, preg); if (BE (ret != REG_NOERROR, 0)) return ret; ret = postorder (dfa->str_tree, calc_first, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; preorder (dfa->str_tree, calc_next, dfa); ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; ret = calc_eclosure (dfa); if (BE (ret != REG_NOERROR, 0)) return ret; /* We only need this during the prune_impossible_nodes pass in regexec.c; skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */ if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match) || dfa->nbackref) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); if (BE (dfa->inveclosures == NULL, 0)) return REG_ESPACE; ret = calc_inveclosure (dfa); } return ret; } /* Our parse trees are very unbalanced, so we cannot use a stack to implement parse tree visits. Instead, we use parent pointers and some hairy code in these two functions. */ static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node, *prev; for (node = root; ; ) { /* Descend down the tree, preferably to the left (or to the right if that's the only child). */ while (node->left || node->right) if (node->left) node = node->left; else node = node->right; do { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; if (node->parent == NULL) return REG_NOERROR; prev = node; node = node->parent; } /* Go up while we have a node that is reached from the right. */ while (node->right == prev || node->right == NULL); node = node->right; } } static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node; for (node = root; ; ) { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; /* Go to the left node, or up and to the right. */ if (node->left) node = node->left; else { bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; if (!node) return REG_NOERROR; } node = node->right; } } } /* Optimization pass: if a SUBEXP is entirely contained, strip it and tell re_search_internal to map the inner one's opr.idx to this one's. Adjust backreferences as well. Requires a preorder visit. */ static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == OP_BACK_REF && dfa->subexp_map) { int idx = node->token.opr.idx; node->token.opr.idx = dfa->subexp_map[idx]; dfa->used_bkref_map |= 1 << node->token.opr.idx; } else if (node->token.type == SUBEXP && node->left && node->left->token.type == SUBEXP) { Idx other_idx = node->left->token.opr.idx; node->left = node->left->left; if (node->left) node->left->parent = node; dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; if (other_idx < BITSET_WORD_BITS) dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx); } return REG_NOERROR; } /* Lowering pass: Turn each SUBEXP node into the appropriate concatenation of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */ static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node) { regex_t *preg = (regex_t *) extra; reg_errcode_t err = REG_NOERROR; if (node->left && node->left->token.type == SUBEXP) { node->left = lower_subexp (&err, preg, node->left); if (node->left) node->left->parent = node; } if (node->right && node->right->token.type == SUBEXP) { node->right = lower_subexp (&err, preg, node->right); if (node->right) node->right->parent = node; } return err; } static bin_tree_t * lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) { re_dfa_t *dfa = preg->buffer; bin_tree_t *body = node->left; bin_tree_t *op, *cls, *tree1, *tree; if (preg->no_sub /* We do not optimize empty subexpressions, because otherwise we may have bad CONCAT nodes with NULL children. This is obviously not very common, so we do not lose much. An example that triggers this case is the sed "script" /\(\)/x. */ && node->left != NULL && (node->token.opr.idx >= BITSET_WORD_BITS || !(dfa->used_bkref_map & ((bitset_word_t) 1 << node->token.opr.idx)))) return node->left; /* Convert the SUBEXP node to the concatenation of an OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */ op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP); cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; tree = create_tree (dfa, op, tree1, CONCAT); if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0)) { *err = REG_ESPACE; return NULL; } op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx; op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp; return tree; } /* Pass 1 in building the NFA: compute FIRST and create unlinked automaton nodes. Requires a postorder visit. */ static reg_errcode_t calc_first (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == CONCAT) { node->first = node->left->first; node->node_idx = node->left->node_idx; } else { node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); if (BE (node->node_idx == REG_MISSING, 0)) return REG_ESPACE; if (node->token.type == ANCHOR) dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; } return REG_NOERROR; } /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t calc_next (void *extra, bin_tree_t *node) { switch (node->token.type) { case OP_DUP_ASTERISK: node->left->next = node; break; case CONCAT: node->left->next = node->right->first; node->right->next = node->next; break; default: if (node->left) node->left->next = node->next; if (node->right) node->right->next = node->next; break; } return REG_NOERROR; } /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */ static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; Idx idx = node->node_idx; reg_errcode_t err = REG_NOERROR; switch (node->token.type) { case CONCAT: break; case END_OF_RE: assert (node->next == NULL); break; case OP_DUP_ASTERISK: case OP_ALT: { Idx left, right; dfa->has_plural_match = 1; if (node->left != NULL) left = node->left->first->node_idx; else left = node->next->node_idx; if (node->right != NULL) right = node->right->first->node_idx; else right = node->next->node_idx; assert (REG_VALID_INDEX (left)); assert (REG_VALID_INDEX (right)); err = re_node_set_init_2 (dfa->edests + idx, left, right); } break; case ANCHOR: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx); break; case OP_BACK_REF: dfa->nexts[idx] = node->next->node_idx; if (node->token.type == OP_BACK_REF) err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); break; default: assert (!IS_EPSILON_NODE (node->token.type)); dfa->nexts[idx] = node->next->node_idx; break; } return err; } /* Duplicate the epsilon closure of the node ROOT_NODE. Note that duplicated nodes have constraint INIT_CONSTRAINT in addition to their own constraint. */ static reg_errcode_t internal_function duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, Idx root_node, unsigned int init_constraint) { Idx org_node, clone_node; bool ok; unsigned int constraint = init_constraint; for (org_node = top_org_node, clone_node = top_clone_node;;) { Idx org_dest, clone_dest; if (dfa->nodes[org_node].type == OP_BACK_REF) { /* If the back reference epsilon-transit, its destination must also have the constraint. Then duplicate the epsilon closure of the destination of the back reference, and store it in edests of the back reference. */ org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } else if (dfa->edests[org_node].nelem == 0) { /* In case of the node can't epsilon-transit, don't duplicate the destination and store the original destination as the destination of the node. */ dfa->nexts[clone_node] = dfa->nexts[org_node]; break; } else if (dfa->edests[org_node].nelem == 1) { /* In case of the node can epsilon-transit, and it has only one destination. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* If the node is root_node itself, it means the epsilon closure has a loop. Then tie it to the destination of the root_node. */ if (org_node == root_node && clone_node != org_node) { ok = re_node_set_insert (dfa->edests + clone_node, org_dest); if (BE (! ok, 0)) return REG_ESPACE; break; } /* In case the node has another constraint, append it. */ constraint |= dfa->nodes[org_node].constraint; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } else /* dfa->edests[org_node].nelem == 2 */ { /* In case of the node can epsilon-transit, and it has two destinations. In the bin_tree_t and DFA, that's '|' and '*'. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* Search for a duplicated node which satisfies the constraint. */ clone_dest = search_duplicated_node (dfa, org_dest, constraint); if (clone_dest == REG_MISSING) { /* There is no such duplicated node, create a new one. */ reg_errcode_t err; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; err = duplicate_node_closure (dfa, org_dest, clone_dest, root_node, constraint); if (BE (err != REG_NOERROR, 0)) return err; } else { /* There is a duplicated node which satisfies the constraint, use it to avoid infinite loop. */ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } org_dest = dfa->edests[org_node].elems[1]; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } org_node = org_dest; clone_node = clone_dest; } return REG_NOERROR; } /* Search for a node which is duplicated from the node ORG_NODE, and satisfies the constraint CONSTRAINT. */ static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, unsigned int constraint) { Idx idx; for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx) { if (org_node == dfa->org_indices[idx] && constraint == dfa->nodes[idx].constraint) return idx; /* Found. */ } return REG_MISSING; /* Not found. */ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. Return the index of the new node, or REG_MISSING if insufficient storage is available. */ static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint) { Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); if (BE (dup_idx != REG_MISSING, 1)) { dfa->nodes[dup_idx].constraint = constraint; dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint; dfa->nodes[dup_idx].duplicated = 1; /* Store the index of the original node. */ dfa->org_indices[dup_idx] = org_idx; } return dup_idx; } static reg_errcode_t calc_inveclosure (re_dfa_t *dfa) { Idx src, idx; bool ok; for (idx = 0; idx < dfa->nodes_len; ++idx) re_node_set_init_empty (dfa->inveclosures + idx); for (src = 0; src < dfa->nodes_len; ++src) { Idx *elems = dfa->eclosures[src].elems; for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) { ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); if (BE (! ok, 0)) return REG_ESPACE; } } return REG_NOERROR; } /* Calculate "eclosure" for all the node in DFA. */ static reg_errcode_t calc_eclosure (re_dfa_t *dfa) { Idx node_idx; bool incomplete; #ifdef DEBUG assert (dfa->nodes_len > 0); #endif incomplete = false; /* For each nodes, calculate epsilon closure. */ for (node_idx = 0; ; ++node_idx) { reg_errcode_t err; re_node_set eclosure_elem; if (node_idx == dfa->nodes_len) { if (!incomplete) break; incomplete = false; node_idx = 0; } #ifdef DEBUG assert (dfa->eclosures[node_idx].nelem != REG_MISSING); #endif /* If we have already calculated, skip it. */ if (dfa->eclosures[node_idx].nelem != 0) continue; /* Calculate epsilon closure of 'node_idx'. */ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true); if (BE (err != REG_NOERROR, 0)) return err; if (dfa->eclosures[node_idx].nelem == 0) { incomplete = true; re_node_set_free (&eclosure_elem); } } return REG_NOERROR; } /* Calculate epsilon closure of NODE. */ static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) { reg_errcode_t err; Idx i; re_node_set eclosure; bool ok; bool incomplete = false; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); if (BE (err != REG_NOERROR, 0)) return err; /* This indicates that we are calculating this node now. We reference this value to avoid infinite loop. */ dfa->eclosures[node].nelem = REG_MISSING; /* If the current node has constraints, duplicate all nodes since they must inherit the constraints. */ if (dfa->nodes[node].constraint && dfa->edests[node].nelem && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) { err = duplicate_node_closure (dfa, node, node, node, dfa->nodes[node].constraint); if (BE (err != REG_NOERROR, 0)) return err; } /* Expand each epsilon destination nodes. */ if (IS_EPSILON_NODE(dfa->nodes[node].type)) for (i = 0; i < dfa->edests[node].nelem; ++i) { re_node_set eclosure_elem; Idx edest = dfa->edests[node].elems[i]; /* If calculating the epsilon closure of 'edest' is in progress, return intermediate result. */ if (dfa->eclosures[edest].nelem == REG_MISSING) { incomplete = true; continue; } /* If we haven't calculated the epsilon closure of 'edest' yet, calculate now. Otherwise use calculated epsilon closure. */ if (dfa->eclosures[edest].nelem == 0) { err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false); if (BE (err != REG_NOERROR, 0)) return err; } else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of 'edest'. */ err = re_node_set_merge (&eclosure, &eclosure_elem); if (BE (err != REG_NOERROR, 0)) return err; /* If the epsilon closure of 'edest' is incomplete, the epsilon closure of this node is also incomplete. */ if (dfa->eclosures[edest].nelem == 0) { incomplete = true; re_node_set_free (&eclosure_elem); } } /* An epsilon closure includes itself. */ ok = re_node_set_insert (&eclosure, node); if (BE (! ok, 0)) return REG_ESPACE; if (incomplete && !root) dfa->eclosures[node].nelem = 0; else dfa->eclosures[node] = eclosure; *new_set = eclosure; return REG_NOERROR; } /* Functions for token which are used in the parser. */ /* Fetch a token from INPUT. We must not use this function inside bracket expressions. */ static void internal_function fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); } /* Peek a token from INPUT, and return the length of the token. We must not use this function inside bracket expressions. */ static int internal_function peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; token->word_char = 0; #ifdef RE_ENABLE_I18N token->mb_partial = 0; if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; token->mb_partial = 1; return 1; } #endif if (c == '\\') { unsigned char c2; if (re_string_cur_idx (input) + 1 >= re_string_length (input)) { token->type = BACK_SLASH; return 1; } c2 = re_string_peek_byte_case (input, 1); token->opr.c = c2; token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input) + 1); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (c2) != 0; switch (c2) { case '|': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (!(syntax & RE_NO_BK_REFS)) { token->type = OP_BACK_REF; token->opr.idx = c2 - '1'; } break; case '<': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_FIRST; } break; case '>': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_LAST; } break; case 'b': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_DELIM; } break; case 'B': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = NOT_WORD_DELIM; } break; case 'w': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_WORD; break; case 'W': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTWORD; break; case 's': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_SPACE; break; case 'S': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTSPACE; break; case '`': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_FIRST; } break; case '\'': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_LAST; } break; case '(': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_OPEN_SUBEXP; break; case ')': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_CLOSE_SUBEXP; break; case '+': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_CLOSE_DUP_NUM; break; default: break; } return 2; } token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (token->opr.c); switch (c) { case '\n': if (syntax & RE_NEWLINE_ALT) token->type = OP_ALT; break; case '|': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '*': token->type = OP_DUP_ASTERISK; break; case '+': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_CLOSE_DUP_NUM; break; case '(': if (syntax & RE_NO_BK_PARENS) token->type = OP_OPEN_SUBEXP; break; case ')': if (syntax & RE_NO_BK_PARENS) token->type = OP_CLOSE_SUBEXP; break; case '[': token->type = OP_OPEN_BRACKET; break; case '.': token->type = OP_PERIOD; break; case '^': if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) && re_string_cur_idx (input) != 0) { char prev = re_string_peek_byte (input, -1); if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') break; } token->type = ANCHOR; token->opr.ctx_type = LINE_FIRST; break; case '$': if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) && re_string_cur_idx (input) + 1 != re_string_length (input)) { re_token_t next; re_string_skip_bytes (input, 1); peek_token (&next, input, syntax); re_string_skip_bytes (input, -1); if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP) break; } token->type = ANCHOR; token->opr.ctx_type = LINE_LAST; break; default: break; } return 1; } /* Peek a token from INPUT, and return the length of the token. We must not use this function out of bracket expressions. */ static int internal_function peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; return 1; } #endif /* RE_ENABLE_I18N */ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && re_string_cur_idx (input) + 1 < re_string_length (input)) { /* In this case, '\' escape a character. */ unsigned char c2; re_string_skip_bytes (input, 1); c2 = re_string_peek_byte (input, 0); token->opr.c = c2; token->type = CHARACTER; return 1; } if (c == '[') /* '[' is a special char in a bracket exps. */ { unsigned char c2; int token_len; if (re_string_cur_idx (input) + 1 < re_string_length (input)) c2 = re_string_peek_byte (input, 1); else c2 = 0; token->opr.c = c2; token_len = 2; switch (c2) { case '.': token->type = OP_OPEN_COLL_ELEM; break; case '=': token->type = OP_OPEN_EQUIV_CLASS; break; case ':': if (syntax & RE_CHAR_CLASSES) { token->type = OP_OPEN_CHAR_CLASS; break; } /* else fall through. */ default: token->type = CHARACTER; token->opr.c = c; token_len = 1; break; } return token_len; } switch (c) { case '-': token->type = OP_CHARSET_RANGE; break; case ']': token->type = OP_CLOSE_BRACKET; break; case '^': token->type = OP_NON_MATCH_LIST; break; default: token->type = CHARACTER; } return 1; } /* Functions for parser. */ /* Entry point of the parser. Parse the regular expression REGEXP and return the structure tree. If an error occurs, ERR is set by error code, and return NULL. This function build the following tree, from regular expression <reg_exp>: CAT / \ / \ <reg_exp> EOR CAT means concatenation. EOR means end of regular expression. */ static bin_tree_t * parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *eor, *root; re_token_t current_token; dfa->syntax = syntax; fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; eor = create_tree (dfa, NULL, NULL, END_OF_RE); if (tree != NULL) root = create_tree (dfa, tree, eor, CONCAT); else root = eor; if (BE (eor == NULL || root == NULL, 0)) { *err = REG_ESPACE; return NULL; } return root; } /* This function build the following tree, from regular expression <branch1>|<branch2>: ALT / \ / \ <branch1> <branch2> ALT means alternative, which represents the operator '|'. */ static bin_tree_t * parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *branch = NULL; tree = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type == OP_ALT) { fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); if (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { branch = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && branch == NULL, 0)) return NULL; } else branch = NULL; tree = create_tree (dfa, tree, branch, OP_ALT); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } return tree; } /* This function build the following tree, from regular expression <exp1><exp2>: CAT / \ / \ <exp1> <exp2> CAT means concatenation. */ static bin_tree_t * parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { bin_tree_t *tree, *expr; re_dfa_t *dfa = preg->buffer; tree = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { expr = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && expr == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } if (tree != NULL && expr != NULL) { bin_tree_t *newtree = create_tree (dfa, tree, expr, CONCAT); if (newtree == NULL) { postorder (expr, free_tree, NULL); postorder (tree, free_tree, NULL); *err = REG_ESPACE; return NULL; } tree = newtree; } else if (tree == NULL) tree = expr; /* Otherwise expr == NULL, we don't need to create new tree. */ } return tree; } /* This function build the following tree, from regular expression a*: * | a */ static bin_tree_t * parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree; switch (token->type) { case CHARACTER: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (!re_string_eoi (regexp) && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) { bin_tree_t *mbc_remain; fetch_token (token, regexp, syntax); mbc_remain = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree, mbc_remain, CONCAT); if (BE (mbc_remain == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } } #endif break; case OP_OPEN_SUBEXP: tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_OPEN_BRACKET: tree = parse_bracket_exp (regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_BACK_REF: if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1)) { *err = REG_ESUBREG; return NULL; } dfa->used_bkref_map |= 1 << token->opr.idx; tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } ++dfa->nbackref; dfa->has_mb_node = 1; break; case OP_OPEN_DUP_NUM: if (syntax & RE_CONTEXT_INVALID_DUP) { *err = REG_BADRPT; return NULL; } /* FALLTHROUGH */ case OP_DUP_ASTERISK: case OP_DUP_PLUS: case OP_DUP_QUESTION: if (syntax & RE_CONTEXT_INVALID_OPS) { *err = REG_BADRPT; return NULL; } else if (syntax & RE_CONTEXT_INDEP_OPS) { fetch_token (token, regexp, syntax); return parse_expression (regexp, preg, token, syntax, nest, err); } /* else fall through */ case OP_CLOSE_SUBEXP: if ((token->type == OP_CLOSE_SUBEXP) && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) { *err = REG_ERPAREN; return NULL; } /* else fall through */ case OP_CLOSE_DUP_NUM: /* We treat it as a normal character. */ /* Then we can these characters as normal characters. */ token->type = CHARACTER; /* mb_partial and word_char bits should be initialized already by peek_token. */ tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } break; case ANCHOR: if ((token->opr.ctx_type & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST)) && dfa->word_ops_used == 0) init_word_char (dfa); if (token->opr.ctx_type == WORD_DELIM || token->opr.ctx_type == NOT_WORD_DELIM) { bin_tree_t *tree_first, *tree_last; if (token->opr.ctx_type == WORD_DELIM) { token->opr.ctx_type = WORD_FIRST; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = WORD_LAST; } else { token->opr.ctx_type = INSIDE_WORD; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = INSIDE_NOTWORD; } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } else { tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } /* We must return here, since ANCHORs can't be followed by repetition operators. eg. RE"^*" is invalid or "<ANCHOR(^)><CHAR(*)>", it must not be "<ANCHOR(^)><REPEAT(*)>". */ fetch_token (token, regexp, syntax); return tree; case OP_PERIOD: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } if (dfa->mb_cur_max > 1) dfa->has_mb_node = 1; break; case OP_WORD: case OP_NOTWORD: tree = build_charclass_op (dfa, regexp->trans, "alnum", "_", token->type == OP_NOTWORD, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_SPACE: case OP_NOTSPACE: tree = build_charclass_op (dfa, regexp->trans, "space", "", token->type == OP_NOTSPACE, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_ALT: case END_OF_RE: return NULL; case BACK_SLASH: *err = REG_EESCAPE; return NULL; default: /* Must not happen? */ #ifdef DEBUG assert (0); #endif return NULL; } fetch_token (token, regexp, syntax); while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) { tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { *err = REG_BADRPT; return NULL; } } return tree; } /* This function build the following tree, from regular expression (<reg_exp>): SUBEXP | <reg_exp> */ static bin_tree_t * parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree; size_t cur_nsub; cur_nsub = preg->re_nsub++; fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); /* The subexpression may be a null string. */ if (token->type == OP_CLOSE_SUBEXP) tree = NULL; else { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_EPAREN; } if (BE (*err != REG_NOERROR, 0)) return NULL; } if (cur_nsub <= '9' - '1') dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } tree->token.opr.idx = cur_nsub; return tree; } /* This function parse repetition operators like "*", "+", "{1,3}" etc. */ static bin_tree_t * parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { bin_tree_t *tree = NULL, *old_tree = NULL; Idx i, start, end, start_idx = re_string_cur_idx (regexp); re_token_t start_token = *token; if (token->type == OP_OPEN_DUP_NUM) { end = 0; start = fetch_number (regexp, token, syntax); if (start == REG_MISSING) { if (token->type == CHARACTER && token->opr.c == ',') start = 0; /* We treat "{,m}" as "{0,m}". */ else { *err = REG_BADBR; /* <re>{} is invalid. */ return NULL; } } if (BE (start != REG_ERROR, 1)) { /* We treat "{n}" as "{n,n}". */ end = ((token->type == OP_CLOSE_DUP_NUM) ? start : ((token->type == CHARACTER && token->opr.c == ',') ? fetch_number (regexp, token, syntax) : REG_ERROR)); } if (BE (start == REG_ERROR || end == REG_ERROR, 0)) { /* Invalid sequence. */ if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0)) { if (token->type == END_OF_RE) *err = REG_EBRACE; else *err = REG_BADBR; return NULL; } /* If the syntax bit is set, rollback. */ re_string_set_index (regexp, start_idx); *token = start_token; token->type = CHARACTER; /* mb_partial and word_char bits should be already initialized by peek_token. */ return elem; } if (BE ((end != REG_MISSING && start > end) || token->type != OP_CLOSE_DUP_NUM, 0)) { /* First number greater than second. */ *err = REG_BADBR; return NULL; } if (BE (RE_DUP_MAX < (end == REG_MISSING ? start : end), 0)) { *err = REG_ESIZE; return NULL; } } else { start = (token->type == OP_DUP_PLUS) ? 1 : 0; end = (token->type == OP_DUP_QUESTION) ? 1 : REG_MISSING; } fetch_token (token, regexp, syntax); if (BE (elem == NULL, 0)) return NULL; if (BE (start == 0 && end == 0, 0)) { postorder (elem, free_tree, NULL); return NULL; } /* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}". */ if (BE (start > 0, 0)) { tree = elem; for (i = 2; i <= start; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; } if (start == end) return tree; /* Duplicate ELEM before it is marked optional. */ elem = duplicate_tree (elem, dfa); old_tree = tree; } else old_tree = NULL; if (elem->token.type == SUBEXP) { uintptr_t subidx = elem->token.opr.idx; postorder (elem, mark_opt_subexp, (void *) subidx); } tree = create_tree (dfa, elem, NULL, (end == REG_MISSING ? OP_DUP_ASTERISK : OP_ALT)); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; /* From gnulib's "intprops.h": True if the arithmetic type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* This loop is actually executed only when end != REG_MISSING, to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?... We have already created the start+1-th copy. */ if (TYPE_SIGNED (Idx) || end != REG_MISSING) for (i = start + 2; i <= end; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; tree = create_tree (dfa, tree, NULL, OP_ALT); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; } if (old_tree) tree = create_tree (dfa, old_tree, tree, CONCAT); return tree; parse_dup_op_espace: *err = REG_ESPACE; return NULL; } /* Size of the names for collating symbol/equivalence_class/character_class. I'm not sure, but maybe enough. */ #define BRACKET_NAME_BUF_SIZE 32 #ifndef _LIBC /* Local function for parse_bracket_exp only used in case of NOT _LIBC. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument since we may update it. */ static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, const bracket_elem_t *start_elem, const bracket_elem_t *end_elem) # else /* not RE_ENABLE_I18N */ build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, const bracket_elem_t *start_elem, const bracket_elem_t *end_elem) # endif /* not RE_ENABLE_I18N */ { unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* We can handle no multi character collating elements without libc support. */ if (BE ((start_elem->type == COLL_SYM && strlen ((char *) start_elem->opr.name) > 1) || (end_elem->type == COLL_SYM && strlen ((char *) end_elem->opr.name) > 1), 0)) return REG_ECOLLATE; # ifdef RE_ENABLE_I18N { wchar_t wc; wint_t start_wc; wint_t end_wc; start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) ? __btowc (start_ch) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) ? __btowc (end_ch) : end_elem->opr.wch); if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, for !_LIBC we have no collation elements: if the character set is single byte, the single byte character set that we build below suffices. parse_bracket_exp passes no MBCSET if dfa->mb_cur_max == 1. */ if (mbcset) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ wchar_t *new_array_start, *new_array_end; Idx new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; /* Use realloc since mbcset->range_starts and mbcset->range_ends are NULL if *range_alloc == 0. */ new_array_start = re_realloc (mbcset->range_starts, wchar_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, wchar_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_wc; mbcset->range_ends[mbcset->nranges++] = end_wc; } /* Build the table for single byte characters. */ for (wc = 0; wc < SBC_MAX; ++wc) { if (start_wc <= wc && wc <= end_wc) bitset_set (sbcset, wc); } } # else /* not RE_ENABLE_I18N */ { unsigned int ch; start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); if (start_ch > end_ch) return REG_ERANGE; /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ++ch) if (start_ch <= ch && ch <= end_ch) bitset_set (sbcset, ch); } # endif /* not RE_ENABLE_I18N */ return REG_NOERROR; } #endif /* not _LIBC */ #ifndef _LIBC /* Helper function for parse_bracket_exp only used in case of NOT _LIBC.. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) # else /* not RE_ENABLE_I18N */ build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ { size_t name_len = strlen ((const char *) name); if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } #endif /* not _LIBC */ /* This function parse bracket expression like "[abc]", "[a-c]", "[[.a-a.]]" etc. */ static bin_tree_t * parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { #ifdef _LIBC const unsigned char *collseqmb; const char *collseqwc; uint32_t nrules; int32_t table_size; const int32_t *symb_table; const unsigned char *extra; /* Local function for parse_bracket_exp used in _LIBC environment. Seek the collating symbol entry corresponding to NAME. Return the index of the symbol in the SYMB_TABLE, or -1 if not found. */ auto inline int32_t __attribute ((always_inline)) seek_collating_symbol_entry (const unsigned char *name, size_t name_len) { int32_t elem; for (elem = 0; elem < table_size; elem++) if (symb_table[2 * elem] != 0) { int32_t idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; if (/* Compare the length of the name. */ name_len == extra[idx] /* Compare the name. */ && memcmp (name, &extra[idx + 1], name_len) == 0) /* Yep, this is the entry. */ return elem; } return -1; } /* Local function for parse_bracket_exp used in _LIBC environment. Look up the collation sequence value of BR_ELEM. Return the value if succeeded, UINT_MAX otherwise. */ auto inline unsigned int __attribute ((always_inline)) lookup_collation_sequence_value (bracket_elem_t *br_elem) { if (br_elem->type == SB_CHAR) { /* if (MB_CUR_MAX == 1) */ if (nrules == 0) return collseqmb[br_elem->opr.ch]; else { wint_t wc = __btowc (br_elem->opr.ch); return __collseq_table_lookup (collseqwc, wc); } } else if (br_elem->type == MB_CHAR) { if (nrules != 0) return __collseq_table_lookup (collseqwc, br_elem->opr.wch); } else if (br_elem->type == COLL_SYM) { size_t sym_name_len = strlen ((char *) br_elem->opr.name); if (nrules != 0) { int32_t elem, idx; elem = seek_collating_symbol_entry (br_elem->opr.name, sym_name_len); if (elem != -1) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; /* Skip the byte sequence of the collating element. */ idx += 1 + extra[idx]; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the multibyte collation sequence value. */ idx += sizeof (unsigned int); /* Skip the wide char sequence of the collating element. */ idx += sizeof (unsigned int) * (1 + *(unsigned int *) (extra + idx)); /* Return the collation sequence value. */ return *(unsigned int *) (extra + idx); } else if (sym_name_len == 1) { /* No valid character. Match it as a single byte character. */ return collseqmb[br_elem->opr.name[0]]; } } else if (sym_name_len == 1) return collseqmb[br_elem->opr.name[0]]; } return UINT_MAX; } /* Local function for parse_bracket_exp used in _LIBC environment. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument since we may update it. */ auto inline reg_errcode_t __attribute ((always_inline)) build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, bracket_elem_t *start_elem, bracket_elem_t *end_elem) { unsigned int ch; uint32_t start_collseq; uint32_t end_collseq; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* FIXME: Implement rational ranges here, too. */ start_collseq = lookup_collation_sequence_value (start_elem); end_collseq = lookup_collation_sequence_value (end_elem); /* Check start/end collation sequence values. */ if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0)) return REG_ECOLLATE; if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, if we have no collation elements, and the character set is single byte, the single byte character set that we build below suffices. */ if (nrules > 0 || dfa->mb_cur_max > 1) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ uint32_t *new_array_start; uint32_t *new_array_end; Idx new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; new_array_start = re_realloc (mbcset->range_starts, uint32_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, uint32_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_collseq; mbcset->range_ends[mbcset->nranges++] = end_collseq; } /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ch++) { uint32_t ch_collseq; /* if (MB_CUR_MAX == 1) */ if (nrules == 0) ch_collseq = collseqmb[ch]; else ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) bitset_set (sbcset, ch); } return REG_NOERROR; } /* Local function for parse_bracket_exp used in _LIBC environment. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ auto inline reg_errcode_t __attribute ((always_inline)) build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) { int32_t elem, idx; size_t name_len = strlen ((const char *) name); if (nrules != 0) { elem = seek_collating_symbol_entry (name, name_len); if (elem != -1) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; } else if (name_len == 1) { /* No valid character, treat it as a normal character. */ bitset_set (sbcset, name[0]); return REG_NOERROR; } else return REG_ECOLLATE; /* Got valid collation sequence, add it as a new entry. */ /* Check the space of the arrays. */ if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->ncoll_syms is 0. */ Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; /* Use realloc since mbcset->coll_syms is NULL if *alloc == 0. */ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, new_coll_sym_alloc); if (BE (new_coll_syms == NULL, 0)) return REG_ESPACE; mbcset->coll_syms = new_coll_syms; *coll_sym_alloc = new_coll_sym_alloc; } mbcset->coll_syms[mbcset->ncoll_syms++] = idx; return REG_NOERROR; } else { if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } } #endif re_token_t br_token; re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; Idx equiv_class_alloc = 0, char_class_alloc = 0; #endif /* not RE_ENABLE_I18N */ bool non_match = false; bin_tree_t *work_tree; int token_len; bool first_round = true; #ifdef _LIBC collseqmb = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules) { /* if (MB_CUR_MAX > 1) */ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); } #endif sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N if (BE (sbcset == NULL || mbcset == NULL, 0)) #else if (BE (sbcset == NULL, 0)) #endif /* RE_ENABLE_I18N */ { re_free (sbcset); #ifdef RE_ENABLE_I18N re_free (mbcset); #endif *err = REG_ESPACE; return NULL; } token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } if (token->type == OP_NON_MATCH_LIST) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ non_match = true; if (syntax & RE_HAT_LISTS_NOT_NEWLINE) bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } } /* We treat the first ']' as a normal character. */ if (token->type == OP_CLOSE_BRACKET) token->type = CHARACTER; while (1) { bracket_elem_t start_elem, end_elem; unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE]; unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE]; reg_errcode_t ret; int token_len2 = 0; bool is_range_exp = false; re_token_t token2; start_elem.opr.name = start_name_buf; ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, syntax, first_round); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } first_round = false; /* Get information about the next token. We need it in any case. */ token_len = peek_token_bracket (token, regexp, syntax); /* Do not check for ranges if we know they are not allowed. */ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) { if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CHARSET_RANGE) { re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ token_len2 = peek_token_bracket (&token2, regexp, syntax); if (BE (token2.type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token2.type == OP_CLOSE_BRACKET) { /* We treat the last '-' as a normal character. */ re_string_skip_bytes (regexp, -token_len); token->type = CHARACTER; } else is_range_exp = true; } } if (is_range_exp == true) { end_elem.opr.name = end_name_buf; ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, dfa, syntax, true); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } token_len = peek_token_bracket (token, regexp, syntax); #ifdef _LIBC *err = build_range_exp (sbcset, mbcset, &range_alloc, &start_elem, &end_elem); #else # ifdef RE_ENABLE_I18N *err = build_range_exp (syntax, sbcset, dfa->mb_cur_max > 1 ? mbcset : NULL, &range_alloc, &start_elem, &end_elem); # else *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem); # endif #endif /* RE_ENABLE_I18N */ if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; } else { switch (start_elem.type) { case SB_CHAR: bitset_set (sbcset, start_elem.opr.ch); break; #ifdef RE_ENABLE_I18N case MB_CHAR: /* Check whether the array has enough space. */ if (BE (mbchar_alloc == mbcset->nmbchars, 0)) { wchar_t *new_mbchars; /* Not enough, realloc it. */ /* +1 in case of mbcset->nmbchars is 0. */ mbchar_alloc = 2 * mbcset->nmbchars + 1; /* Use realloc since array is NULL if *alloc == 0. */ new_mbchars = re_realloc (mbcset->mbchars, wchar_t, mbchar_alloc); if (BE (new_mbchars == NULL, 0)) goto parse_bracket_exp_espace; mbcset->mbchars = new_mbchars; } mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; break; #endif /* RE_ENABLE_I18N */ case EQUIV_CLASS: *err = build_equiv_class (sbcset, #ifdef RE_ENABLE_I18N mbcset, &equiv_class_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case COLL_SYM: *err = build_collating_symbol (sbcset, #ifdef RE_ENABLE_I18N mbcset, &coll_sym_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case CHAR_CLASS: *err = build_charclass (regexp->trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &char_class_alloc, #endif /* RE_ENABLE_I18N */ (const char *) start_elem.opr.name, syntax); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; default: assert (0); break; } } if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CLOSE_BRACKET) break; } re_string_skip_bytes (regexp, token_len); /* Skip a token. */ /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes || mbcset->non_match))) { bin_tree_t *mbc_tree; int sbc_idx; /* Build a tree for complex bracket. */ dfa->has_mb_node = 1; br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto parse_bracket_exp_espace; for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) break; /* If there are no bits set in sbcset, there is no point of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ if (sbc_idx < BITSET_WORDS) { /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; /* Then join them by ALT node. */ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } else { re_free (sbcset); work_tree = mbc_tree; } } else #endif /* not RE_ENABLE_I18N */ { #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } return work_tree; parse_bracket_exp_espace: *err = REG_ESPACE; parse_bracket_exp_free_return: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ return NULL; } /* Parse an element in the bracket expression. */ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen) { #ifdef RE_ENABLE_I18N int cur_char_size; cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); if (cur_char_size > 1) { elem->type = MB_CHAR; elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp)); re_string_skip_bytes (regexp, cur_char_size); return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ re_string_skip_bytes (regexp, token_len); /* Skip a token. */ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS || token->type == OP_OPEN_EQUIV_CLASS) return parse_bracket_symbol (elem, regexp, token); if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen) { /* A '-' must only appear as anything but a range indicator before the closing bracket. Everything else is an error. */ re_token_t token2; (void) peek_token_bracket (&token2, regexp, syntax); if (token2.type != OP_CLOSE_BRACKET) /* The actual error value is not standardized since this whole case is undefined. But ERANGE makes good sense. */ return REG_ERANGE; } elem->type = SB_CHAR; elem->opr.ch = token->opr.c; return REG_NOERROR; } /* Parse a bracket symbol in the bracket expression. Bracket symbols are such as [:<character_class>:], [.<collating_element>.], and [=<equivalent_class>=]. */ static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token) { unsigned char ch, delim = token->opr.c; int i = 0; if (re_string_eoi(regexp)) return REG_EBRACK; for (;; ++i) { if (i >= BRACKET_NAME_BUF_SIZE) return REG_EBRACK; if (token->type == OP_OPEN_CHAR_CLASS) ch = re_string_fetch_byte_case (regexp); else ch = re_string_fetch_byte (regexp); if (re_string_eoi(regexp)) return REG_EBRACK; if (ch == delim && re_string_peek_byte (regexp, 0) == ']') break; elem->opr.name[i] = ch; } re_string_skip_bytes (regexp, 1); elem->opr.name[i] = '\0'; switch (token->type) { case OP_OPEN_COLL_ELEM: elem->type = COLL_SYM; break; case OP_OPEN_EQUIV_CLASS: elem->type = EQUIV_CLASS; break; case OP_OPEN_CHAR_CLASS: elem->type = CHAR_CLASS; break; default: break; } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the equivalence class which is represented by NAME. The result are written to MBCSET and SBCSET. EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes, is a pointer argument since we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name) #else /* not RE_ENABLE_I18N */ build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ { #ifdef _LIBC uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { const int32_t *table, *indirect; const unsigned char *weights, *extra, *cp; unsigned char char_buf[2]; int32_t idx1, idx2; unsigned int ch; size_t len; /* This #include defines a local function! */ # include <locale/weight.h> /* Calculate the index for equivalence class. */ cp = name; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); idx1 = findidx (&cp, -1); if (BE (idx1 == 0 || *cp != '\0', 0)) /* This isn't a valid character. */ return REG_ECOLLATE; /* Build single byte matching table for this equivalence class. */ len = weights[idx1 & 0xffffff]; for (ch = 0; ch < SBC_MAX; ++ch) { char_buf[0] = ch; cp = char_buf; idx2 = findidx (&cp, 1); /* idx2 = table[ch]; */ if (idx2 == 0) /* This isn't a valid character. */ continue; /* Compare only if the length matches and the collation rule index is the same. */ if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)) { int cnt = 0; while (cnt <= len && weights[(idx1 & 0xffffff) + 1 + cnt] == weights[(idx2 & 0xffffff) + 1 + cnt]) ++cnt; if (cnt > len) bitset_set (sbcset, ch); } } /* Check whether the array has enough space. */ if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nequiv_classes is 0. */ Idx new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1; /* Use realloc since the array is NULL if *alloc == 0. */ int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, int32_t, new_equiv_class_alloc); if (BE (new_equiv_classes == NULL, 0)) return REG_ESPACE; mbcset->equiv_classes = new_equiv_classes; *equiv_class_alloc = new_equiv_class_alloc; } mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; } else #endif /* _LIBC */ { if (BE (strlen ((const char *) name) != 1, 0)) return REG_ECOLLATE; bitset_set (sbcset, *name); } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the character class which is represented by NAME. The result are written to MBCSET and SBCSET. CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes, is a pointer argument since we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax) #else /* not RE_ENABLE_I18N */ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const char *class_name, reg_syntax_t syntax) #endif /* not RE_ENABLE_I18N */ { int i; const char *name = class_name; /* In case of REG_ICASE "upper" and "lower" match the both of upper and lower cases. */ if ((syntax & RE_ICASE) && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) name = "alpha"; #ifdef RE_ENABLE_I18N /* Check the space of the arrays. */ if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nchar_classes is 0. */ Idx new_char_class_alloc = 2 * mbcset->nchar_classes + 1; /* Use realloc since array is NULL if *alloc == 0. */ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, new_char_class_alloc); if (BE (new_char_classes == NULL, 0)) return REG_ESPACE; mbcset->char_classes = new_char_classes; *char_class_alloc = new_char_class_alloc; } mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); #endif /* RE_ENABLE_I18N */ #define BUILD_CHARCLASS_LOOP(ctype_func) \ do { \ if (BE (trans != NULL, 0)) \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, trans[i]); \ } \ else \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, i); \ } \ } while (0) if (strcmp (name, "alnum") == 0) BUILD_CHARCLASS_LOOP (isalnum); else if (strcmp (name, "cntrl") == 0) BUILD_CHARCLASS_LOOP (iscntrl); else if (strcmp (name, "lower") == 0) BUILD_CHARCLASS_LOOP (islower); else if (strcmp (name, "space") == 0) BUILD_CHARCLASS_LOOP (isspace); else if (strcmp (name, "alpha") == 0) BUILD_CHARCLASS_LOOP (isalpha); else if (strcmp (name, "digit") == 0) BUILD_CHARCLASS_LOOP (isdigit); else if (strcmp (name, "print") == 0) BUILD_CHARCLASS_LOOP (isprint); else if (strcmp (name, "upper") == 0) BUILD_CHARCLASS_LOOP (isupper); else if (strcmp (name, "blank") == 0) BUILD_CHARCLASS_LOOP (isblank); else if (strcmp (name, "graph") == 0) BUILD_CHARCLASS_LOOP (isgraph); else if (strcmp (name, "punct") == 0) BUILD_CHARCLASS_LOOP (ispunct); else if (strcmp (name, "xdigit") == 0) BUILD_CHARCLASS_LOOP (isxdigit); else return REG_ECTYPE; return REG_NOERROR; } static bin_tree_t * build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, bool non_match, reg_errcode_t *err) { re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx alloc = 0; #endif /* not RE_ENABLE_I18N */ reg_errcode_t ret; re_token_t br_token; bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N if (BE (sbcset == NULL || mbcset == NULL, 0)) #else /* not RE_ENABLE_I18N */ if (BE (sbcset == NULL, 0)) #endif /* not RE_ENABLE_I18N */ { *err = REG_ESPACE; return NULL; } if (non_match) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ } /* We don't care the syntax in this case. */ ret = build_charclass (trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &alloc, #endif /* RE_ENABLE_I18N */ class_name, 0); if (BE (ret != REG_NOERROR, 0)) { re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = ret; return NULL; } /* \w match '_' also. */ for (; *extra; extra++) bitset_set (sbcset, *extra); /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); #endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (tree == NULL, 0)) goto build_word_op_espace; #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { bin_tree_t *mbc_tree; /* Build a tree for complex bracket. */ br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; dfa->has_mb_node = 1; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto build_word_op_espace; /* Then join them by ALT node. */ tree = create_tree (dfa, tree, mbc_tree, OP_ALT); if (BE (mbc_tree != NULL, 1)) return tree; } else { free_charset (mbcset); return tree; } #else /* not RE_ENABLE_I18N */ return tree; #endif /* not RE_ENABLE_I18N */ build_word_op_espace: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = REG_ESPACE; return NULL; } /* This is intended for the expressions like "a{1,3}". Fetch a number from 'input', and return the number. Return REG_MISSING if the number field is empty like "{,1}". Return RE_DUP_MAX + 1 if the number field is too large. Return REG_ERROR if an error occurred. */ static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { Idx num = REG_MISSING; unsigned char c; while (1) { fetch_token (token, input, syntax); c = token->opr.c; if (BE (token->type == END_OF_RE, 0)) return REG_ERROR; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; num = ((token->type != CHARACTER || c < '0' || '9' < c || num == REG_ERROR) ? REG_ERROR : num == REG_MISSING ? c - '0' : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); } return num; } #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset) { re_free (cset->mbchars); # ifdef _LIBC re_free (cset->coll_syms); re_free (cset->equiv_classes); re_free (cset->range_starts); re_free (cset->range_ends); # endif re_free (cset->char_classes); re_free (cset); } #endif /* RE_ENABLE_I18N */ /* Functions for binary tree operation. */ /* Create a tree node. */ static bin_tree_t * create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type) { re_token_t t; t.type = type; return create_token_tree (dfa, left, right, &t); } static bin_tree_t * create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token) { bin_tree_t *tree; if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) { bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); if (storage == NULL) return NULL; storage->next = dfa->str_tree_storage; dfa->str_tree_storage = storage; dfa->str_tree_storage_idx = 0; } tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++]; tree->parent = NULL; tree->left = left; tree->right = right; tree->token = *token; tree->token.duplicated = 0; tree->token.opt_subexp = 0; tree->first = NULL; tree->next = NULL; tree->node_idx = REG_MISSING; if (left != NULL) left->parent = tree; if (right != NULL) right->parent = tree; return tree; } /* Mark the tree SRC as an optional subexpression. To be called from preorder or postorder. */ static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node) { Idx idx = (uintptr_t) extra; if (node->token.type == SUBEXP && node->token.opr.idx == idx) node->token.opt_subexp = 1; return REG_NOERROR; } /* Free the allocated memory inside NODE. */ static void free_token (re_token_t *node) { #ifdef RE_ENABLE_I18N if (node->type == COMPLEX_BRACKET && node->duplicated == 0) free_charset (node->opr.mbcset); else #endif /* RE_ENABLE_I18N */ if (node->type == SIMPLE_BRACKET && node->duplicated == 0) re_free (node->opr.sbcset); } /* Worker function for tree walking. Free the allocated memory inside NODE and its children. */ static reg_errcode_t free_tree (void *extra, bin_tree_t *node) { free_token (&node->token); return REG_NOERROR; } /* Duplicate the node SRC, and return new node. This is a preorder visit similar to the one implemented by the generic visitor, but we need more infrastructure to maintain two parallel trees --- so, it's easier to duplicate. */ static bin_tree_t * duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) { const bin_tree_t *node; bin_tree_t *dup_root; bin_tree_t **p_new = &dup_root, *dup_node = root->parent; for (node = root; ; ) { /* Create a new tree and link it back to the current parent. */ *p_new = create_token_tree (dfa, NULL, NULL, &node->token); if (*p_new == NULL) return NULL; (*p_new)->parent = dup_node; (*p_new)->token.duplicated = 1; dup_node = *p_new; /* Go to the left node, or up and to the right. */ if (node->left) { node = node->left; p_new = &dup_node->left; } else { const bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; dup_node = dup_node->parent; if (!node) return dup_root; } node = node->right; p_new = &dup_node->right; } } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/error.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000004746�12116370307�011564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declaration for error-reporting function Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _ERROR_H #define _ERROR_H 1 /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif #ifdef __cplusplus extern "C" { #endif /* Print a message with 'fprintf (stderr, FORMAT, ...)'; if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6)); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ extern void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ extern unsigned int error_message_count; /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ extern int error_one_per_line; #ifdef __cplusplus } #endif #endif /* error.h */ ��������������������������wdiff-1.2.1/lib/float+.h����������������������������������������������������������������������������0000644�0000000�0000000�00000012745�12116370307�011611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Supplemental information about the floating-point formats. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2007. 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _FLOATPLUS_H #define _FLOATPLUS_H #include <float.h> #include <limits.h> /* Number of bits in the mantissa of a floating-point number, including the "hidden bit". */ #if FLT_RADIX == 2 # define FLT_MANT_BIT FLT_MANT_DIG # define DBL_MANT_BIT DBL_MANT_DIG # define LDBL_MANT_BIT LDBL_MANT_DIG #elif FLT_RADIX == 4 # define FLT_MANT_BIT (FLT_MANT_DIG * 2) # define DBL_MANT_BIT (DBL_MANT_DIG * 2) # define LDBL_MANT_BIT (LDBL_MANT_DIG * 2) #elif FLT_RADIX == 16 # define FLT_MANT_BIT (FLT_MANT_DIG * 4) # define DBL_MANT_BIT (DBL_MANT_DIG * 4) # define LDBL_MANT_BIT (LDBL_MANT_DIG * 4) #endif /* Bit mask that can be used to mask the exponent, as an unsigned number. */ #define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7) #define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) #define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7) /* Number of bits used for the exponent of a floating-point number, including the exponent's sign. */ #define FLT_EXP_BIT \ (FLT_EXP_MASK < 0x100 ? 8 : \ FLT_EXP_MASK < 0x200 ? 9 : \ FLT_EXP_MASK < 0x400 ? 10 : \ FLT_EXP_MASK < 0x800 ? 11 : \ FLT_EXP_MASK < 0x1000 ? 12 : \ FLT_EXP_MASK < 0x2000 ? 13 : \ FLT_EXP_MASK < 0x4000 ? 14 : \ FLT_EXP_MASK < 0x8000 ? 15 : \ FLT_EXP_MASK < 0x10000 ? 16 : \ FLT_EXP_MASK < 0x20000 ? 17 : \ FLT_EXP_MASK < 0x40000 ? 18 : \ FLT_EXP_MASK < 0x80000 ? 19 : \ FLT_EXP_MASK < 0x100000 ? 20 : \ FLT_EXP_MASK < 0x200000 ? 21 : \ FLT_EXP_MASK < 0x400000 ? 22 : \ FLT_EXP_MASK < 0x800000 ? 23 : \ FLT_EXP_MASK < 0x1000000 ? 24 : \ FLT_EXP_MASK < 0x2000000 ? 25 : \ FLT_EXP_MASK < 0x4000000 ? 26 : \ FLT_EXP_MASK < 0x8000000 ? 27 : \ FLT_EXP_MASK < 0x10000000 ? 28 : \ FLT_EXP_MASK < 0x20000000 ? 29 : \ FLT_EXP_MASK < 0x40000000 ? 30 : \ FLT_EXP_MASK <= 0x7fffffff ? 31 : \ 32) #define DBL_EXP_BIT \ (DBL_EXP_MASK < 0x100 ? 8 : \ DBL_EXP_MASK < 0x200 ? 9 : \ DBL_EXP_MASK < 0x400 ? 10 : \ DBL_EXP_MASK < 0x800 ? 11 : \ DBL_EXP_MASK < 0x1000 ? 12 : \ DBL_EXP_MASK < 0x2000 ? 13 : \ DBL_EXP_MASK < 0x4000 ? 14 : \ DBL_EXP_MASK < 0x8000 ? 15 : \ DBL_EXP_MASK < 0x10000 ? 16 : \ DBL_EXP_MASK < 0x20000 ? 17 : \ DBL_EXP_MASK < 0x40000 ? 18 : \ DBL_EXP_MASK < 0x80000 ? 19 : \ DBL_EXP_MASK < 0x100000 ? 20 : \ DBL_EXP_MASK < 0x200000 ? 21 : \ DBL_EXP_MASK < 0x400000 ? 22 : \ DBL_EXP_MASK < 0x800000 ? 23 : \ DBL_EXP_MASK < 0x1000000 ? 24 : \ DBL_EXP_MASK < 0x2000000 ? 25 : \ DBL_EXP_MASK < 0x4000000 ? 26 : \ DBL_EXP_MASK < 0x8000000 ? 27 : \ DBL_EXP_MASK < 0x10000000 ? 28 : \ DBL_EXP_MASK < 0x20000000 ? 29 : \ DBL_EXP_MASK < 0x40000000 ? 30 : \ DBL_EXP_MASK <= 0x7fffffff ? 31 : \ 32) #define LDBL_EXP_BIT \ (LDBL_EXP_MASK < 0x100 ? 8 : \ LDBL_EXP_MASK < 0x200 ? 9 : \ LDBL_EXP_MASK < 0x400 ? 10 : \ LDBL_EXP_MASK < 0x800 ? 11 : \ LDBL_EXP_MASK < 0x1000 ? 12 : \ LDBL_EXP_MASK < 0x2000 ? 13 : \ LDBL_EXP_MASK < 0x4000 ? 14 : \ LDBL_EXP_MASK < 0x8000 ? 15 : \ LDBL_EXP_MASK < 0x10000 ? 16 : \ LDBL_EXP_MASK < 0x20000 ? 17 : \ LDBL_EXP_MASK < 0x40000 ? 18 : \ LDBL_EXP_MASK < 0x80000 ? 19 : \ LDBL_EXP_MASK < 0x100000 ? 20 : \ LDBL_EXP_MASK < 0x200000 ? 21 : \ LDBL_EXP_MASK < 0x400000 ? 22 : \ LDBL_EXP_MASK < 0x800000 ? 23 : \ LDBL_EXP_MASK < 0x1000000 ? 24 : \ LDBL_EXP_MASK < 0x2000000 ? 25 : \ LDBL_EXP_MASK < 0x4000000 ? 26 : \ LDBL_EXP_MASK < 0x8000000 ? 27 : \ LDBL_EXP_MASK < 0x10000000 ? 28 : \ LDBL_EXP_MASK < 0x20000000 ? 29 : \ LDBL_EXP_MASK < 0x40000000 ? 30 : \ LDBL_EXP_MASK <= 0x7fffffff ? 31 : \ 32) /* Number of bits used for a floating-point number: the mantissa (not counting the "hidden bit", since it may or may not be explicit), the exponent, and the sign. */ #define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1) #define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1) #define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1) /* Number of bytes used for a floating-point number. This can be smaller than the 'sizeof'. For example, on i386 systems, 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but sizeof (long double) = 12 or = 16. */ #define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) #define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) #define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) /* Verify that SIZEOF_FLT <= sizeof (float) etc. */ typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1]; typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1]; typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1]; #endif /* _FLOATPLUS_H */ ���������������������������wdiff-1.2.1/lib/verify.h����������������������������������������������������������������������������0000644�0000000�0000000�00000023132�12116370307�011725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H # define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. This is supported by GCC 4.6.0 and later, in C mode, and its use here generates easier-to-read diagnostics when verify (R) fails. Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. This will likely be supported by future GCC versions, in C++ mode. Use this only with GCC. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ # if (4 < __GNUC__ || (__GNUC__ == 4 && 6 <= __GNUC_MINOR__)) && !defined __cplusplus # define _GL_HAVE__STATIC_ASSERT 1 # endif /* The condition (99 < __GNUC__) is temporary, until we know about the first G++ release that supports static_assert. */ # if (99 < __GNUC__) && defined __cplusplus # define _GL_HAVE_STATIC_ASSERT 1 # endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and verify() is used within a function body; but inside a function, you can always arrange to use verify_expr() instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ # define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) # define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ # if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ # else # define _GL_COUNTER __LINE__ # endif /* Generate a symbol with the given prefix, making it unique if possible. */ # define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ # define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) # ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template <int w> struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> # elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } # else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } # endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ # ifdef _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY _Static_assert # else # define _GL_VERIFY(R, DIAGNOSTIC) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] # endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ # ifdef _GL_STATIC_ASSERT_H # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif # endif /* @assert.h omit start@ */ /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time, as an integer constant expression. Return 1. This is equivalent to verify_expr (R, 1). verify_true is obsolescent; please use verify_expr instead. */ # define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") /* Verify requirement R at compile-time. Return the value of the expression E. */ # define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ # define verify(R) _GL_VERIFY (R, "verify (" #R ")") /* @assert.h omit end@ */ #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000206440�12116370307�012311� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <http://www.gnu.org/licenses/>. # # 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. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --po-base=lib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --po-domain=wdiff canonicalize-lgpl dup2 error gendocs getline getopt gettext locale maintainer-makefile mbsrchr regex setenv strstr-simple sys_stat sys_wait unistd vasprintf xalloc xmalloc AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = SUBDIRS += po AM_CPPFLAGS = AM_CFLAGS = noinst_LIBRARIES += libgnu.a libgnu_a_SOURCES = libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = AM_CPPFLAGS += -DDEFAULT_TEXT_DOMAIN=\"wdiff-gnulib\" ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module btowc EXTRA_DIST += btowc.c EXTRA_libgnu_a_SOURCES += btowc.c ## end gnulib module btowc ## begin gnulib module canonicalize-lgpl EXTRA_DIST += canonicalize-lgpl.c EXTRA_libgnu_a_SOURCES += canonicalize-lgpl.c ## end gnulib module canonicalize-lgpl ## begin gnulib module configmake # Listed in the same order as the GNU makefile conventions, and # provided by autoconf 2.59c+. # The Automake-defined pkg* macros are appended, in the order # listed in the Automake 1.10a+ documentation. configmake.h: Makefile $(AM_V_GEN)rm -f $@-t && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#define PREFIX "$(prefix)"'; \ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ echo '#define BINDIR "$(bindir)"'; \ echo '#define SBINDIR "$(sbindir)"'; \ echo '#define LIBEXECDIR "$(libexecdir)"'; \ echo '#define DATAROOTDIR "$(datarootdir)"'; \ echo '#define DATADIR "$(datadir)"'; \ echo '#define SYSCONFDIR "$(sysconfdir)"'; \ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ echo '#define INCLUDEDIR "$(includedir)"'; \ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ echo '#define DOCDIR "$(docdir)"'; \ echo '#define INFODIR "$(infodir)"'; \ echo '#define HTMLDIR "$(htmldir)"'; \ echo '#define DVIDIR "$(dvidir)"'; \ echo '#define PDFDIR "$(pdfdir)"'; \ echo '#define PSDIR "$(psdir)"'; \ echo '#define LIBDIR "$(libdir)"'; \ echo '#define LISPDIR "$(lispdir)"'; \ echo '#define LOCALEDIR "$(localedir)"'; \ echo '#define MANDIR "$(mandir)"'; \ echo '#define MANEXT "$(manext)"'; \ echo '#define PKGDATADIR "$(pkgdatadir)"'; \ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ echo '#define PKGLIBDIR "$(pkglibdir)"'; \ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ } | sed '/""/d' > $@-t && \ mv -f $@-t $@ BUILT_SOURCES += configmake.h CLEANFILES += configmake.h configmake.h-t ## end gnulib module configmake ## begin gnulib module dosname EXTRA_DIST += dosname.h ## end gnulib module dosname ## begin gnulib module dup2 EXTRA_DIST += dup2.c EXTRA_libgnu_a_SOURCES += dup2.c ## end gnulib module dup2 ## begin gnulib module errno BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ < $(srcdir)/errno.in.h; \ } > $@-t && \ mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h ## end gnulib module errno ## begin gnulib module error EXTRA_DIST += error.c error.h EXTRA_libgnu_a_SOURCES += error.c ## end gnulib module error ## begin gnulib module exitfail libgnu_a_SOURCES += exitfail.c EXTRA_DIST += exitfail.h ## end gnulib module exitfail ## begin gnulib module float BUILT_SOURCES += $(FLOAT_H) # We need the following in order to create <float.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_FLOAT_H float.h: float.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ < $(srcdir)/float.in.h; \ } > $@-t && \ mv $@-t $@ else float.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += float.h float.h-t EXTRA_DIST += float.c float.in.h itold.c EXTRA_libgnu_a_SOURCES += float.c itold.c ## end gnulib module float ## begin gnulib module gendocs EXTRA_DIST += $(top_srcdir)/build-aux/gendocs.sh ## end gnulib module gendocs ## begin gnulib module getdelim EXTRA_DIST += getdelim.c EXTRA_libgnu_a_SOURCES += getdelim.c ## end gnulib module getdelim ## begin gnulib module getline EXTRA_DIST += getline.c EXTRA_libgnu_a_SOURCES += getline.c ## end gnulib module getline ## begin gnulib module getopt-posix BUILT_SOURCES += $(GETOPT_H) # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/getopt.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += getopt.h getopt.h-t EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c ## end gnulib module getopt-posix ## begin gnulib module gettext # This is for those projects which use "gettextize --intl" to put a source-code # copy of libintl into their package. In such projects, every Makefile.am needs # -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory. # For the Makefile.ams in other directories it is the maintainer's # responsibility; for the one from gnulib we do it here. # This option has no effect when the user disables NLS (because then the intl # directory contains no libintl.h file) or when the project does not use # "gettextize --intl". AM_CPPFLAGS += -I$(top_builddir)/intl EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module gettext ## begin gnulib module gettext-h libgnu_a_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module gnumakefile distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile EXTRA_DIST += $(top_srcdir)/GNUmakefile ## end gnulib module gnumakefile ## begin gnulib module havelib EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module havelib ## begin gnulib module intprops EXTRA_DIST += intprops.h ## end gnulib module intprops ## begin gnulib module iswblank EXTRA_DIST += iswblank.c EXTRA_libgnu_a_SOURCES += iswblank.c ## end gnulib module iswblank ## begin gnulib module langinfo BUILT_SOURCES += langinfo.h # We need the following in order to create an empty placeholder for # <langinfo.h> when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += langinfo.h langinfo.h-t EXTRA_DIST += langinfo.in.h ## end gnulib module langinfo ## begin gnulib module localcharset libgnu_a_SOURCES += localcharset.h localcharset.c # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing # packages so that "make uninstall" will remove the file if and only if it # is not used by another installed package. # On systems with glibc-2.1 or newer, the file is redundant, therefore we # avoid installing it. all-local: charset.alias ref-add.sed ref-del.sed charset_alias = $(DESTDIR)$(libdir)/charset.alias charset_tmp = $(DESTDIR)$(libdir)/charset.tmp install-exec-local: install-exec-localcharset install-exec-localcharset: all-local if test $(GLIBC21) = no; then \ case '$(host_os)' in \ darwin[56]*) \ need_charset_alias=true ;; \ darwin* | cygwin* | mingw* | pw32* | cegcc*) \ need_charset_alias=false ;; \ *) \ need_charset_alias=true ;; \ esac ; \ else \ need_charset_alias=false ; \ fi ; \ if $$need_charset_alias; then \ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ fi ; \ if test -f $(charset_alias); then \ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ else \ if $$need_charset_alias; then \ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ fi ; \ fi uninstall-local: uninstall-localcharset uninstall-localcharset: all-local if test -f $(charset_alias); then \ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ if grep '^# Packages using this file: $$' $(charset_tmp) \ > /dev/null; then \ rm -f $(charset_alias); \ else \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ fi; \ rm -f $(charset_tmp); \ fi charset.alias: config.charset $(AM_V_GEN)rm -f t-$@ $@ && \ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ mv t-$@ $@ SUFFIXES += .sed .sin .sin.sed: $(AM_V_GEN)rm -f t-$@ $@ && \ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ mv t-$@ $@ CLEANFILES += charset.alias ref-add.sed ref-del.sed EXTRA_DIST += config.charset ref-add.sin ref-del.sin ## end gnulib module localcharset ## begin gnulib module locale BUILT_SOURCES += locale.h # We need the following in order to create <locale.h> when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += locale.h locale.h-t EXTRA_DIST += locale.in.h ## end gnulib module locale ## begin gnulib module localeconv EXTRA_DIST += localeconv.c EXTRA_libgnu_a_SOURCES += localeconv.c ## end gnulib module localeconv ## begin gnulib module lstat EXTRA_DIST += lstat.c EXTRA_libgnu_a_SOURCES += lstat.c ## end gnulib module lstat ## begin gnulib module maintainer-makefile EXTRA_DIST += $(top_srcdir)/maint.mk ## end gnulib module maintainer-makefile ## begin gnulib module malloc-gnu EXTRA_DIST += malloc.c EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc-gnu ## begin gnulib module malloc-posix EXTRA_DIST += malloc.c EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module malloca libgnu_a_SOURCES += malloca.c EXTRA_DIST += malloca.h malloca.valgrind ## end gnulib module malloca ## begin gnulib module mbchar libgnu_a_SOURCES += mbchar.c EXTRA_DIST += mbchar.h ## end gnulib module mbchar ## begin gnulib module mbrtowc EXTRA_DIST += mbrtowc.c EXTRA_libgnu_a_SOURCES += mbrtowc.c ## end gnulib module mbrtowc ## begin gnulib module mbsinit EXTRA_DIST += mbsinit.c EXTRA_libgnu_a_SOURCES += mbsinit.c ## end gnulib module mbsinit ## begin gnulib module mbsrchr libgnu_a_SOURCES += mbsrchr.c ## end gnulib module mbsrchr ## begin gnulib module mbtowc EXTRA_DIST += mbtowc-impl.h mbtowc.c EXTRA_libgnu_a_SOURCES += mbtowc.c ## end gnulib module mbtowc ## begin gnulib module mbuiter libgnu_a_SOURCES += mbuiter.h mbuiter.c ## end gnulib module mbuiter ## begin gnulib module memchr EXTRA_DIST += memchr.c memchr.valgrind EXTRA_libgnu_a_SOURCES += memchr.c ## end gnulib module memchr ## begin gnulib module msvc-inval EXTRA_DIST += msvc-inval.c msvc-inval.h EXTRA_libgnu_a_SOURCES += msvc-inval.c ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h EXTRA_libgnu_a_SOURCES += msvc-nothrow.c ## end gnulib module msvc-nothrow ## begin gnulib module nl_langinfo EXTRA_DIST += nl_langinfo.c EXTRA_libgnu_a_SOURCES += nl_langinfo.c ## end gnulib module nl_langinfo ## begin gnulib module pathmax EXTRA_DIST += pathmax.h ## end gnulib module pathmax ## begin gnulib module readlink EXTRA_DIST += readlink.c EXTRA_libgnu_a_SOURCES += readlink.c ## end gnulib module readlink ## begin gnulib module realloc-posix EXTRA_DIST += realloc.c EXTRA_libgnu_a_SOURCES += realloc.c ## end gnulib module realloc-posix ## begin gnulib module regex EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c ## end gnulib module regex ## begin gnulib module setenv EXTRA_DIST += setenv.c EXTRA_libgnu_a_SOURCES += setenv.c ## end gnulib module setenv ## begin gnulib module size_max libgnu_a_SOURCES += size_max.h ## end gnulib module size_max ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += arg-nonnull.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t ARG_NONNULL_H=arg-nonnull.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += c++defs.h # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += c++defs.h c++defs.h-t CXXDEFS_H=c++defs.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/warn-on-use BUILT_SOURCES += warn-on-use.h # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t WARN_ON_USE_H=warn-on-use.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stat EXTRA_DIST += stat.c EXTRA_libgnu_a_SOURCES += stat.c ## end gnulib module stat ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create <stdbool.h> when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create <stddef.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdio BUILT_SOURCES += stdio.h # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t EXTRA_DIST += stdio.in.h ## end gnulib module stdio ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create <stdlib.h> when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module streq EXTRA_DIST += streq.h ## end gnulib module streq ## begin gnulib module strerror EXTRA_DIST += strerror.c EXTRA_libgnu_a_SOURCES += strerror.c ## end gnulib module strerror ## begin gnulib module strerror-override EXTRA_DIST += strerror-override.c strerror-override.h EXTRA_libgnu_a_SOURCES += strerror-override.c ## end gnulib module strerror-override ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module strnlen1 libgnu_a_SOURCES += strnlen1.h strnlen1.c ## end gnulib module strnlen1 ## begin gnulib module strstr-simple EXTRA_DIST += str-two-way.h strstr.c EXTRA_libgnu_a_SOURCES += strstr.c ## end gnulib module strstr-simple ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_stat.in.h ## end gnulib module sys_stat ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create <sys/types.h> when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module sys_wait BUILT_SOURCES += sys/wait.h # We need the following in order to create <sys/wait.h> when the system # has one that is incomplete. sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_WAIT_H''@|$(NEXT_SYS_WAIT_H)|g' \ -e 's/@''GNULIB_WAITPID''@/$(GNULIB_WAITPID)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_wait.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/wait.h sys/wait.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_wait.in.h ## end gnulib module sys_wait ## begin gnulib module time BUILT_SOURCES += time.h # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h ## end gnulib module time ## begin gnulib module unistd BUILT_SOURCES += unistd.h libgnu_a_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module unitypes BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H) unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unitypes.h unitypes.h-t EXTRA_DIST += unitypes.in.h ## end gnulib module unitypes ## begin gnulib module uniwidth/base BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H) uniwidth.h: uniwidth.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/uniwidth.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t EXTRA_DIST += localcharset.h uniwidth.in.h ## end gnulib module uniwidth/base ## begin gnulib module uniwidth/width if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH libgnu_a_SOURCES += uniwidth/width.c endif EXTRA_DIST += uniwidth/cjk.h ## end gnulib module uniwidth/width ## begin gnulib module useless-if-before-free EXTRA_DIST += $(top_srcdir)/build-aux/useless-if-before-free ## end gnulib module useless-if-before-free ## begin gnulib module vasnprintf EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c ## end gnulib module vasnprintf ## begin gnulib module vasprintf EXTRA_DIST += asprintf.c vasprintf.c EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c ## end gnulib module vasprintf ## begin gnulib module vc-list-files EXTRA_DIST += $(top_srcdir)/build-aux/vc-list-files ## end gnulib module vc-list-files ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module wchar BUILT_SOURCES += wchar.h # We need the following in order to create <wchar.h> when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h ## end gnulib module wchar ## begin gnulib module wcrtomb EXTRA_DIST += wcrtomb.c EXTRA_libgnu_a_SOURCES += wcrtomb.c ## end gnulib module wcrtomb ## begin gnulib module wctype-h BUILT_SOURCES += wctype.h libgnu_a_SOURCES += wctype-h.c # We need the following in order to create <wctype.h> when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h ## begin gnulib module wcwidth EXTRA_DIST += wcwidth.c EXTRA_libgnu_a_SOURCES += wcwidth.c ## end gnulib module wcwidth ## begin gnulib module xalloc libgnu_a_SOURCES += xmalloc.c EXTRA_DIST += xalloc.h ## end gnulib module xalloc ## begin gnulib module xalloc-die libgnu_a_SOURCES += xalloc-die.c ## end gnulib module xalloc-die ## begin gnulib module xalloc-oversized EXTRA_DIST += xalloc-oversized.h ## end gnulib module xalloc-oversized ## begin gnulib module xsize libgnu_a_SOURCES += xsize.h xsize.c ## end gnulib module xsize mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/intprops.h��������������������������������������������������������������������������0000644�0000000�0000000�00000035006�12116370307�012302� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* intprops.h -- properties of integer types Copyright (C) 2001-2005, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include <limits.h> /* Return an integer value, converted to the same type as the integer expression E after integer type promotion. V is the unconverted value. */ #define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>. */ #define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) #define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) #define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the signed integer expression E uses two's complement. */ #define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1) /* True if the arithmetic type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the integer expression E, after integer promotion, has a signed type. */ #define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) 0 \ : TYPE_SIGNED_MAGNITUDE (t) \ ? ~ (t) 0 \ : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, after integer promotion. E should not have side effects. */ #define _GL_INT_MINIMUM(e) \ (_GL_INT_SIGNED (e) \ ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (_GL_INT_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) /* Return 1 if the __typeof__ keyword works. This could be done by 'configure', but for now it's easier to do it by hand. */ #if 2 <= __GNUC__ || 0x5110 <= __SUNPRO_C # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is signed, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \ - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. Their implementations are simple and straightforward, but they are a bit harder to use than the INT_<op>_OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 \ ? (a) < - (max) \ : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>. */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) #define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) #define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Integer overflow checks. The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_OVERFLOW (i, j)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. These macros are tuned for their last argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A <op> B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM (0 * (b) + (a)), \ _GL_INT_MAXIMUM (0 * (b) + (a))) #endif /* _GL_INTPROPS_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/strnlen1.h��������������������������������������������������������������������������0000644�0000000�0000000�00000002307�12116370307�012170� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Find the length of STRING + 1, but scan at most MAXLEN bytes. Copyright (C) 2005, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _STRNLEN1_H #define _STRNLEN1_H #include <stddef.h> #ifdef __cplusplus extern "C" { #endif /* Find the length of STRING + 1, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many characters, return MAXLEN. */ /* This is the same as strnlen (string, maxlen - 1) + 1. */ extern size_t strnlen1 (const char *string, size_t maxlen) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* _STRNLEN1_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/regex_internal.h��������������������������������������������������������������������0000644�0000000�0000000�00000056723�12116370307�013443� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extended regular expression matching and search library. Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef _REGEX_INTERNAL_H #define _REGEX_INTERNAL_H 1 #include <assert.h> #include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <langinfo.h> #include <locale.h> #include <wchar.h> #include <wctype.h> #include <stdbool.h> #include <stdint.h> #if defined _LIBC # include <bits/libc-lock.h> #else # define __libc_lock_init(NAME) do { } while (0) # define __libc_lock_lock(NAME) do { } while (0) # define __libc_lock_unlock(NAME) do { } while (0) #endif /* In case that the system doesn't have isblank(). */ #if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK)) # define isblank(ch) ((ch) == ' ' || (ch) == '\t') #endif #ifdef _LIBC # ifndef _RE_DEFINE_LOCALE_FUNCTIONS # define _RE_DEFINE_LOCALE_FUNCTIONS 1 # include <locale/localeinfo.h> # include <locale/elem-hash.h> # include <locale/coll-lookup.h> # endif #endif /* This is for other GNU distributions with internationalized messages. */ #if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC # include <libintl.h> # ifdef _LIBC # undef gettext # define gettext(msgid) \ __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES) # endif #else # define gettext(msgid) (msgid) #endif #ifndef gettext_noop /* This define is so xgettext can find the internationalizable strings. */ # define gettext_noop(String) String #endif #if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC # define RE_ENABLE_I18N #endif #if __GNUC__ >= 3 # define BE(expr, val) __builtin_expect (expr, val) #else # define BE(expr, val) (expr) #endif /* Number of ASCII characters. */ #define ASCII_CHARS 0x80 /* Number of single byte characters. */ #define SBC_MAX (UCHAR_MAX + 1) #define COLL_ELEM_LEN_MAX 8 /* The character which represents newline. */ #define NEWLINE_CHAR '\n' #define WIDE_NEWLINE_CHAR L'\n' /* Rename to standard API for using out of glibc. */ #ifndef _LIBC # undef __wctype # undef __iswctype # define __wctype wctype # define __iswctype iswctype # define __btowc btowc # define __mbrtowc mbrtowc # define __wcrtomb wcrtomb # define __regfree regfree # define attribute_hidden #endif /* not _LIBC */ #if __GNUC__ < 3 + (__GNUC_MINOR__ < 1) # define __attribute__(arg) #endif typedef __re_idx_t Idx; #ifdef _REGEX_LARGE_OFFSETS # define IDX_MAX (SIZE_MAX - 2) #else # define IDX_MAX INT_MAX #endif /* Special return value for failure to match. */ #define REG_MISSING ((Idx) -1) /* Special return value for internal error. */ #define REG_ERROR ((Idx) -2) /* Test whether N is a valid index, and is not one of the above. */ #ifdef _REGEX_LARGE_OFFSETS # define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR) #else # define REG_VALID_INDEX(n) (0 <= (n)) #endif /* Test whether N is a valid nonzero index. */ #ifdef _REGEX_LARGE_OFFSETS # define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1)) #else # define REG_VALID_NONZERO_INDEX(n) (0 < (n)) #endif /* A hash value, suitable for computing hash tables. */ typedef __re_size_t re_hashval_t; /* An integer used to represent a set of bits. It must be unsigned, and must be at least as wide as unsigned int. */ typedef unsigned long int bitset_word_t; /* All bits set in a bitset_word_t. */ #define BITSET_WORD_MAX ULONG_MAX /* Number of bits in a bitset_word_t. For portability to hosts with padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)'; instead, deduce it directly from BITSET_WORD_MAX. Avoid greater-than-32-bit integers and unconditional shifts by more than 31 bits, as they're not portable. */ #if BITSET_WORD_MAX == 0xffffffffUL # define BITSET_WORD_BITS 32 #elif BITSET_WORD_MAX >> 31 >> 4 == 1 # define BITSET_WORD_BITS 36 #elif BITSET_WORD_MAX >> 31 >> 16 == 1 # define BITSET_WORD_BITS 48 #elif BITSET_WORD_MAX >> 31 >> 28 == 1 # define BITSET_WORD_BITS 60 #elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1 # define BITSET_WORD_BITS 64 #elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1 # define BITSET_WORD_BITS 72 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1 # define BITSET_WORD_BITS 128 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1 # define BITSET_WORD_BITS 256 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1 # define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */ # if BITSET_WORD_BITS <= SBC_MAX # error "Invalid SBC_MAX" # endif #else # error "Add case for new bitset_word_t size" #endif /* Number of bitset_word_t values in a bitset_t. */ #define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS) typedef bitset_word_t bitset_t[BITSET_WORDS]; typedef bitset_word_t *re_bitset_ptr_t; typedef const bitset_word_t *re_const_bitset_ptr_t; #define PREV_WORD_CONSTRAINT 0x0001 #define PREV_NOTWORD_CONSTRAINT 0x0002 #define NEXT_WORD_CONSTRAINT 0x0004 #define NEXT_NOTWORD_CONSTRAINT 0x0008 #define PREV_NEWLINE_CONSTRAINT 0x0010 #define NEXT_NEWLINE_CONSTRAINT 0x0020 #define PREV_BEGBUF_CONSTRAINT 0x0040 #define NEXT_ENDBUF_CONSTRAINT 0x0080 #define WORD_DELIM_CONSTRAINT 0x0100 #define NOT_WORD_DELIM_CONSTRAINT 0x0200 typedef enum { INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, LINE_FIRST = PREV_NEWLINE_CONSTRAINT, LINE_LAST = NEXT_NEWLINE_CONSTRAINT, BUF_FIRST = PREV_BEGBUF_CONSTRAINT, BUF_LAST = NEXT_ENDBUF_CONSTRAINT, WORD_DELIM = WORD_DELIM_CONSTRAINT, NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT } re_context_type; typedef struct { Idx alloc; Idx nelem; Idx *elems; } re_node_set; typedef enum { NON_TYPE = 0, /* Node type, These are used by token, node, tree. */ CHARACTER = 1, END_OF_RE = 2, SIMPLE_BRACKET = 3, OP_BACK_REF = 4, OP_PERIOD = 5, #ifdef RE_ENABLE_I18N COMPLEX_BRACKET = 6, OP_UTF8_PERIOD = 7, #endif /* RE_ENABLE_I18N */ /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used when the debugger shows values of this enum type. */ #define EPSILON_BIT 8 OP_OPEN_SUBEXP = EPSILON_BIT | 0, OP_CLOSE_SUBEXP = EPSILON_BIT | 1, OP_ALT = EPSILON_BIT | 2, OP_DUP_ASTERISK = EPSILON_BIT | 3, ANCHOR = EPSILON_BIT | 4, /* Tree type, these are used only by tree. */ CONCAT = 16, SUBEXP = 17, /* Token type, these are used only by token. */ OP_DUP_PLUS = 18, OP_DUP_QUESTION, OP_OPEN_BRACKET, OP_CLOSE_BRACKET, OP_CHARSET_RANGE, OP_OPEN_DUP_NUM, OP_CLOSE_DUP_NUM, OP_NON_MATCH_LIST, OP_OPEN_COLL_ELEM, OP_CLOSE_COLL_ELEM, OP_OPEN_EQUIV_CLASS, OP_CLOSE_EQUIV_CLASS, OP_OPEN_CHAR_CLASS, OP_CLOSE_CHAR_CLASS, OP_WORD, OP_NOTWORD, OP_SPACE, OP_NOTSPACE, BACK_SLASH } re_token_type_t; #ifdef RE_ENABLE_I18N typedef struct { /* Multibyte characters. */ wchar_t *mbchars; /* Collating symbols. */ # ifdef _LIBC int32_t *coll_syms; # endif /* Equivalence classes. */ # ifdef _LIBC int32_t *equiv_classes; # endif /* Range expressions. */ # ifdef _LIBC uint32_t *range_starts; uint32_t *range_ends; # else /* not _LIBC */ wchar_t *range_starts; wchar_t *range_ends; # endif /* not _LIBC */ /* Character classes. */ wctype_t *char_classes; /* If this character set is the non-matching list. */ unsigned int non_match : 1; /* # of multibyte characters. */ Idx nmbchars; /* # of collating symbols. */ Idx ncoll_syms; /* # of equivalence classes. */ Idx nequiv_classes; /* # of range expressions. */ Idx nranges; /* # of character classes. */ Idx nchar_classes; } re_charset_t; #endif /* RE_ENABLE_I18N */ typedef struct { union { unsigned char c; /* for CHARACTER */ re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */ #ifdef RE_ENABLE_I18N re_charset_t *mbcset; /* for COMPLEX_BRACKET */ #endif /* RE_ENABLE_I18N */ Idx idx; /* for BACK_REF */ re_context_type ctx_type; /* for ANCHOR */ } opr; #if __GNUC__ >= 2 && !defined __STRICT_ANSI__ re_token_type_t type : 8; #else re_token_type_t type; #endif unsigned int constraint : 10; /* context constraint */ unsigned int duplicated : 1; unsigned int opt_subexp : 1; #ifdef RE_ENABLE_I18N unsigned int accept_mb : 1; /* These 2 bits can be moved into the union if needed (e.g. if running out of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */ unsigned int mb_partial : 1; #endif unsigned int word_char : 1; } re_token_t; #define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT) struct re_string_t { /* Indicate the raw buffer which is the original string passed as an argument of regexec(), re_search(), etc.. */ const unsigned char *raw_mbs; /* Store the multibyte string. In case of "case insensitive mode" like REG_ICASE, upper cases of the string are stored, otherwise MBS points the same address that RAW_MBS points. */ unsigned char *mbs; #ifdef RE_ENABLE_I18N /* Store the wide character string which is corresponding to MBS. */ wint_t *wcs; Idx *offsets; mbstate_t cur_state; #endif /* Index in RAW_MBS. Each character mbs[i] corresponds to raw_mbs[raw_mbs_idx + i]. */ Idx raw_mbs_idx; /* The length of the valid characters in the buffers. */ Idx valid_len; /* The corresponding number of bytes in raw_mbs array. */ Idx valid_raw_len; /* The length of the buffers MBS and WCS. */ Idx bufs_len; /* The index in MBS, which is updated by re_string_fetch_byte. */ Idx cur_idx; /* length of RAW_MBS array. */ Idx raw_len; /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN. */ Idx len; /* End of the buffer may be shorter than its length in the cases such as re_match_2, re_search_2. Then, we use STOP for end of the buffer instead of LEN. */ Idx raw_stop; /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS. */ Idx stop; /* The context of mbs[0]. We store the context independently, since the context of mbs[0] may be different from raw_mbs[0], which is the beginning of the input string. */ unsigned int tip_context; /* The translation passed as a part of an argument of re_compile_pattern. */ RE_TRANSLATE_TYPE trans; /* Copy of re_dfa_t's word_char. */ re_const_bitset_ptr_t word_char; /* true if REG_ICASE. */ unsigned char icase; unsigned char is_utf8; unsigned char map_notascii; unsigned char mbs_allocated; unsigned char offsets_needed; unsigned char newline_anchor; unsigned char word_ops_used; int mb_cur_max; }; typedef struct re_string_t re_string_t; struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; #ifndef _LIBC # define internal_function #endif #ifndef NOT_IN_libc static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) internal_function; # ifdef RE_ENABLE_I18N static void build_wcs_buffer (re_string_t *pstr) internal_function; static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr) internal_function; # endif /* RE_ENABLE_I18N */ static void build_upper_buffer (re_string_t *pstr) internal_function; static void re_string_translate_buffer (re_string_t *pstr) internal_function; static unsigned int re_string_context_at (const re_string_t *input, Idx idx, int eflags) internal_function __attribute__ ((pure)); #endif #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ ((pstr)->mbs[(pstr)->cur_idx++]) #define re_string_first_byte(pstr, idx) \ ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF) #define re_string_is_single_byte_char(pstr, idx) \ ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \ || (pstr)->wcs[(idx) + 1] != WEOF)) #define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx) #define re_string_cur_idx(pstr) ((pstr)->cur_idx) #define re_string_get_buffer(pstr) ((pstr)->mbs) #define re_string_length(pstr) ((pstr)->len) #define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx]) #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) #if defined _LIBC || HAVE_ALLOCA # include <alloca.h> #endif #ifndef _LIBC # if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. */ # define __libc_use_alloca(n) ((n) < 4032) # else /* alloca is implemented with malloc, so just use malloc. */ # define __libc_use_alloca(n) 0 # undef alloca # define alloca(n) malloc (n) # endif #endif #ifdef _LIBC # define MALLOC_0_IS_NONNULL 1 #elif !defined MALLOC_0_IS_NONNULL # define MALLOC_0_IS_NONNULL 0 #endif #ifndef MAX # define MAX(a,b) ((a) < (b) ? (b) : (a)) #endif #ifndef MIN # define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) #define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t))) #define re_free(p) free (p) struct bin_tree_t { struct bin_tree_t *parent; struct bin_tree_t *left; struct bin_tree_t *right; struct bin_tree_t *first; struct bin_tree_t *next; re_token_t token; /* 'node_idx' is the index in dfa->nodes, if 'type' == 0. Otherwise 'type' indicate the type of this node. */ Idx node_idx; }; typedef struct bin_tree_t bin_tree_t; #define BIN_TREE_STORAGE_SIZE \ ((1024 - sizeof (void *)) / sizeof (bin_tree_t)) struct bin_tree_storage_t { struct bin_tree_storage_t *next; bin_tree_t data[BIN_TREE_STORAGE_SIZE]; }; typedef struct bin_tree_storage_t bin_tree_storage_t; #define CONTEXT_WORD 1 #define CONTEXT_NEWLINE (CONTEXT_WORD << 1) #define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1) #define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1) #define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD) #define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE) #define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF) #define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF) #define IS_ORDINARY_CONTEXT(c) ((c) == 0) #define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_') #define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR) #define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_') #define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR) #define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\ || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context))) #define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \ || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context))) struct re_dfastate_t { re_hashval_t hash; re_node_set nodes; re_node_set non_eps_nodes; re_node_set inveclosure; re_node_set *entrance_nodes; struct re_dfastate_t **trtable, **word_trtable; unsigned int context : 4; unsigned int halt : 1; /* If this state can accept "multi byte". Note that we refer to multibyte characters, and multi character collating elements as "multi byte". */ unsigned int accept_mb : 1; /* If this state has backreference node(s). */ unsigned int has_backref : 1; unsigned int has_constraint : 1; }; typedef struct re_dfastate_t re_dfastate_t; struct re_state_table_entry { Idx num; Idx alloc; re_dfastate_t **array; }; /* Array type used in re_sub_match_last_t and re_sub_match_top_t. */ typedef struct { Idx next_idx; Idx alloc; re_dfastate_t **array; } state_array_t; /* Store information about the node NODE whose type is OP_CLOSE_SUBEXP. */ typedef struct { Idx node; Idx str_idx; /* The position NODE match at. */ state_array_t path; } re_sub_match_last_t; /* Store information about the node NODE whose type is OP_OPEN_SUBEXP. And information about the node, whose type is OP_CLOSE_SUBEXP, corresponding to NODE is stored in LASTS. */ typedef struct { Idx str_idx; Idx node; state_array_t *path; Idx alasts; /* Allocation size of LASTS. */ Idx nlasts; /* The number of LASTS. */ re_sub_match_last_t **lasts; } re_sub_match_top_t; struct re_backref_cache_entry { Idx node; Idx str_idx; Idx subexp_from; Idx subexp_to; char more; char unused; unsigned short int eps_reachable_subexps_map; }; typedef struct { /* The string object corresponding to the input string. */ re_string_t input; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) const re_dfa_t *const dfa; #else const re_dfa_t *dfa; #endif /* EFLAGS of the argument of regexec. */ int eflags; /* Where the matching ends. */ Idx match_last; Idx last_node; /* The state log used by the matcher. */ re_dfastate_t **state_log; Idx state_log_top; /* Back reference cache. */ Idx nbkref_ents; Idx abkref_ents; struct re_backref_cache_entry *bkref_ents; int max_mb_elem_len; Idx nsub_tops; Idx asub_tops; re_sub_match_top_t **sub_tops; } re_match_context_t; typedef struct { re_dfastate_t **sifted_states; re_dfastate_t **limited_states; Idx last_node; Idx last_str_idx; re_node_set limits; } re_sift_context_t; struct re_fail_stack_ent_t { Idx idx; Idx node; regmatch_t *regs; re_node_set eps_via_nodes; }; struct re_fail_stack_t { Idx num; Idx alloc; struct re_fail_stack_ent_t *stack; }; struct re_dfa_t { re_token_t *nodes; size_t nodes_alloc; size_t nodes_len; Idx *nexts; Idx *org_indices; re_node_set *edests; re_node_set *eclosures; re_node_set *inveclosures; struct re_state_table_entry *state_table; re_dfastate_t *init_state; re_dfastate_t *init_state_word; re_dfastate_t *init_state_nl; re_dfastate_t *init_state_begbuf; bin_tree_t *str_tree; bin_tree_storage_t *str_tree_storage; re_bitset_ptr_t sb_char; int str_tree_storage_idx; /* number of subexpressions 're_nsub' is in regex_t. */ re_hashval_t state_hash_mask; Idx init_node; Idx nbackref; /* The number of backreference in this dfa. */ /* Bitmap expressing which backreference is used. */ bitset_word_t used_bkref_map; bitset_word_t completed_bkref_map; unsigned int has_plural_match : 1; /* If this dfa has "multibyte node", which is a backreference or a node which can accept multibyte character or multi character collating element. */ unsigned int has_mb_node : 1; unsigned int is_utf8 : 1; unsigned int map_notascii : 1; unsigned int word_ops_used : 1; int mb_cur_max; bitset_t word_char; reg_syntax_t syntax; Idx *subexp_map; #ifdef DEBUG char* re_str; #endif #ifdef _LIBC __libc_lock_define (, lock) #endif }; #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) #define re_node_set_remove(set,id) \ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) #define re_node_set_empty(p) ((p)->nelem = 0) #define re_node_set_free(set) re_free ((set)->elems) typedef enum { SB_CHAR, MB_CHAR, EQUIV_CLASS, COLL_SYM, CHAR_CLASS } bracket_elem_type; typedef struct { bracket_elem_type type; union { unsigned char ch; unsigned char *name; wchar_t wch; } opr; } bracket_elem_t; /* Functions for bitset_t operation. */ static void bitset_set (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS; } static void bitset_clear (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS); } static bool bitset_contain (const bitset_t set, Idx i) { return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1; } static void bitset_empty (bitset_t set) { memset (set, '\0', sizeof (bitset_t)); } static void bitset_set_all (bitset_t set) { memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS)); if (SBC_MAX % BITSET_WORD_BITS != 0) set[BITSET_WORDS - 1] = ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1; } static void bitset_copy (bitset_t dest, const bitset_t src) { memcpy (dest, src, sizeof (bitset_t)); } static void __attribute__ ((unused)) bitset_not (bitset_t set) { int bitset_i; for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i) set[bitset_i] = ~set[bitset_i]; if (SBC_MAX % BITSET_WORD_BITS != 0) set[BITSET_WORDS - 1] = ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1) & ~set[BITSET_WORDS - 1]); } static void __attribute__ ((unused)) bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] |= src[bitset_i]; } static void __attribute__ ((unused)) bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] &= src[bitset_i]; } #ifdef RE_ENABLE_I18N /* Functions for re_string. */ static int internal_function __attribute__ ((pure, unused)) re_string_char_size_at (const re_string_t *pstr, Idx idx) { int byte_idx; if (pstr->mb_cur_max == 1) return 1; for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) if (pstr->wcs[idx + byte_idx] != WEOF) break; return byte_idx; } static wint_t internal_function __attribute__ ((pure, unused)) re_string_wchar_at (const re_string_t *pstr, Idx idx) { if (pstr->mb_cur_max == 1) return (wint_t) pstr->mbs[idx]; return (wint_t) pstr->wcs[idx]; } # ifndef NOT_IN_libc static int internal_function __attribute__ ((pure, unused)) re_string_elem_size_at (const re_string_t *pstr, Idx idx) { # ifdef _LIBC const unsigned char *p, *extra; const int32_t *table, *indirect; # include <locale/weight.h> uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); p = pstr->mbs + idx; findidx (&p, pstr->len - idx); return p - pstr->mbs - idx; } else # endif /* _LIBC */ return 1; } # endif #endif /* RE_ENABLE_I18N */ #ifndef __GNUC_PREREQ # if defined __GNUC__ && defined __GNUC_MINOR__ # define __GNUC_PREREQ(maj, min) \ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) # else # define __GNUC_PREREQ(maj, min) 0 # endif #endif #if __GNUC_PREREQ (3,4) # undef __attribute_warn_unused_result__ # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) #else # define __attribute_warn_unused_result__ /* empty */ #endif #endif /* _REGEX_INTERNAL_H */ ���������������������������������������������wdiff-1.2.1/lib/printf-parse.c����������������������������������������������������������������������0000644�0000000�0000000�00000053171�12116370307�013034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Formatted output to strings. Copyright (C) 1999-2000, 2002-2003, 2006-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* This file can be parametrized with the following macros: CHAR_T The element type of the format string. CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. DIRECTIVE Structure denoting a format directive. Depends on CHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on CHAR_T. PRINTF_PARSE Function that parses a format string. Depends on CHAR_T. STATIC Set to 'static' to declare the function static. ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ #ifndef PRINTF_PARSE # include <config.h> #endif /* Specification. */ #ifndef PRINTF_PARSE # include "printf-parse.h" #endif /* Default parameters. */ #ifndef PRINTF_PARSE # define PRINTF_PARSE printf_parse # define CHAR_T char # define DIRECTIVE char_directive # define DIRECTIVES char_directives #endif /* Get size_t, NULL. */ #include <stddef.h> /* Get intmax_t. */ #if defined IN_LIBINTL || defined IN_LIBASPRINTF # if HAVE_STDINT_H_WITH_UINTMAX # include <stdint.h> # endif # if HAVE_INTTYPES_H_WITH_UINTMAX # include <inttypes.h> # endif #else # include <stdint.h> #endif /* malloc(), realloc(), free(). */ #include <stdlib.h> /* memcpy(). */ #include <string.h> /* errno. */ #include <errno.h> /* Checked size_t computations. */ #include "xsize.h" #if CHAR_T_ONLY_ASCII /* c_isascii(). */ # include "c-ctype.h" #endif #ifdef STATIC STATIC #endif int PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) { const CHAR_T *cp = format; /* pointer into format */ size_t arg_posn = 0; /* number of regular arguments consumed */ size_t d_allocated; /* allocated elements of d->dir */ size_t a_allocated; /* allocated elements of a->arg */ size_t max_width_length = 0; size_t max_precision_length = 0; d->count = 0; d_allocated = N_DIRECT_ALLOC_DIRECTIVES; d->dir = d->direct_alloc_dir; a->count = 0; a_allocated = N_DIRECT_ALLOC_ARGUMENTS; a->arg = a->direct_alloc_arg; #define REGISTER_ARG(_index_,_type_) \ { \ size_t n = (_index_); \ if (n >= a_allocated) \ { \ size_t memory_size; \ argument *memory; \ \ a_allocated = xtimes (a_allocated, 2); \ if (a_allocated <= n) \ a_allocated = xsum (n, 1); \ memory_size = xtimes (a_allocated, sizeof (argument)); \ if (size_overflow_p (memory_size)) \ /* Overflow, would lead to out of memory. */ \ goto out_of_memory; \ memory = (argument *) (a->arg != a->direct_alloc_arg \ ? realloc (a->arg, memory_size) \ : malloc (memory_size)); \ if (memory == NULL) \ /* Out of memory. */ \ goto out_of_memory; \ if (a->arg == a->direct_alloc_arg) \ memcpy (memory, a->arg, a->count * sizeof (argument)); \ a->arg = memory; \ } \ while (a->count <= n) \ a->arg[a->count++].type = TYPE_NONE; \ if (a->arg[n].type == TYPE_NONE) \ a->arg[n].type = (_type_); \ else if (a->arg[n].type != (_type_)) \ /* Ambiguous type for positional argument. */ \ goto error; \ } while (*cp != '\0') { CHAR_T c = *cp++; if (c == '%') { size_t arg_index = ARG_NONE; DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ /* Initialize the next directive. */ dp->dir_start = cp - 1; dp->flags = 0; dp->width_start = NULL; dp->width_end = NULL; dp->width_arg_index = ARG_NONE; dp->precision_start = NULL; dp->precision_end = NULL; dp->precision_arg_index = ARG_NONE; dp->arg_index = ARG_NONE; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; arg_index = n - 1; cp = np + 1; } } /* Read the flags. */ for (;;) { if (*cp == '\'') { dp->flags |= FLAG_GROUP; cp++; } else if (*cp == '-') { dp->flags |= FLAG_LEFT; cp++; } else if (*cp == '+') { dp->flags |= FLAG_SHOWSIGN; cp++; } else if (*cp == ' ') { dp->flags |= FLAG_SPACE; cp++; } else if (*cp == '#') { dp->flags |= FLAG_ALT; cp++; } else if (*cp == '0') { dp->flags |= FLAG_ZERO; cp++; } #if __GLIBC__ >= 2 && !defined __UCLIBC__ else if (*cp == 'I') { dp->flags |= FLAG_LOCALIZED; cp++; } #endif else break; } /* Parse the field width. */ if (*cp == '*') { dp->width_start = cp; cp++; dp->width_end = cp; if (max_width_length < 1) max_width_length = 1; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->width_arg_index = n - 1; cp = np + 1; } } if (dp->width_arg_index == ARG_NONE) { dp->width_arg_index = arg_posn++; if (dp->width_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->width_arg_index, TYPE_INT); } else if (*cp >= '0' && *cp <= '9') { size_t width_length; dp->width_start = cp; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->width_end = cp; width_length = dp->width_end - dp->width_start; if (max_width_length < width_length) max_width_length = width_length; } /* Parse the precision. */ if (*cp == '.') { cp++; if (*cp == '*') { dp->precision_start = cp - 1; cp++; dp->precision_end = cp; if (max_precision_length < 2) max_precision_length = 2; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->precision_arg_index = n - 1; cp = np + 1; } } if (dp->precision_arg_index == ARG_NONE) { dp->precision_arg_index = arg_posn++; if (dp->precision_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->precision_arg_index, TYPE_INT); } else { size_t precision_length; dp->precision_start = cp - 1; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->precision_end = cp; precision_length = dp->precision_end - dp->precision_start; if (max_precision_length < precision_length) max_precision_length = precision_length; } } { arg_type type; /* Parse argument type/size specifiers. */ { int flags = 0; for (;;) { if (*cp == 'h') { flags |= (1 << (flags & 1)); cp++; } else if (*cp == 'L') { flags |= 4; cp++; } else if (*cp == 'l') { flags += 8; cp++; } else if (*cp == 'j') { if (sizeof (intmax_t) > sizeof (long)) { /* intmax_t = long long */ flags += 16; } else if (sizeof (intmax_t) > sizeof (int)) { /* intmax_t = long */ flags += 8; } cp++; } else if (*cp == 'z' || *cp == 'Z') { /* 'z' is standardized in ISO C 99, but glibc uses 'Z' because the warning facility in gcc-2.95.2 understands only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */ if (sizeof (size_t) > sizeof (long)) { /* size_t = long long */ flags += 16; } else if (sizeof (size_t) > sizeof (int)) { /* size_t = long */ flags += 8; } cp++; } else if (*cp == 't') { if (sizeof (ptrdiff_t) > sizeof (long)) { /* ptrdiff_t = long long */ flags += 16; } else if (sizeof (ptrdiff_t) > sizeof (int)) { /* ptrdiff_t = long */ flags += 8; } cp++; } #if defined __APPLE__ && defined __MACH__ /* On Mac OS X 10.3, PRIdMAX is defined as "qd". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ else if (*cp == 'q') { if (64 / 8 > sizeof (long)) { /* int64_t = long long */ flags += 16; } else { /* int64_t = long */ flags += 8; } cp++; } #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows, PRIdMAX is defined as "I64d". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4') { if (64 / 8 > sizeof (long)) { /* __int64 = long long */ flags += 16; } else { /* __int64 = long */ flags += 8; } cp += 3; } #endif else break; } /* Read the conversion character. */ c = *cp++; switch (c) { case 'd': case 'i': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_LONGLONGINT; else #endif /* If 'long long' exists and is the same as 'long', we parse "lld" into TYPE_LONGINT. */ if (flags >= 8) type = TYPE_LONGINT; else if (flags & 2) type = TYPE_SCHAR; else if (flags & 1) type = TYPE_SHORT; else type = TYPE_INT; break; case 'o': case 'u': case 'x': case 'X': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_ULONGLONGINT; else #endif /* If 'unsigned long long' exists and is the same as 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ if (flags >= 8) type = TYPE_ULONGINT; else if (flags & 2) type = TYPE_UCHAR; else if (flags & 1) type = TYPE_USHORT; else type = TYPE_UINT; break; case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': if (flags >= 16 || (flags & 4)) type = TYPE_LONGDOUBLE; else type = TYPE_DOUBLE; break; case 'c': if (flags >= 8) #if HAVE_WINT_T type = TYPE_WIDE_CHAR; #else goto error; #endif else type = TYPE_CHAR; break; #if HAVE_WINT_T case 'C': type = TYPE_WIDE_CHAR; c = 'c'; break; #endif case 's': if (flags >= 8) #if HAVE_WCHAR_T type = TYPE_WIDE_STRING; #else goto error; #endif else type = TYPE_STRING; break; #if HAVE_WCHAR_T case 'S': type = TYPE_WIDE_STRING; c = 's'; break; #endif case 'p': type = TYPE_POINTER; break; case 'n': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_COUNT_LONGLONGINT_POINTER; else #endif /* If 'long long' exists and is the same as 'long', we parse "lln" into TYPE_COUNT_LONGINT_POINTER. */ if (flags >= 8) type = TYPE_COUNT_LONGINT_POINTER; else if (flags & 2) type = TYPE_COUNT_SCHAR_POINTER; else if (flags & 1) type = TYPE_COUNT_SHORT_POINTER; else type = TYPE_COUNT_INT_POINTER; break; #if ENABLE_UNISTDIO /* The unistdio extensions. */ case 'U': if (flags >= 16) type = TYPE_U32_STRING; else if (flags >= 8) type = TYPE_U16_STRING; else type = TYPE_U8_STRING; break; #endif case '%': type = TYPE_NONE; break; default: /* Unknown conversion character. */ goto error; } } if (type != TYPE_NONE) { dp->arg_index = arg_index; if (dp->arg_index == ARG_NONE) { dp->arg_index = arg_posn++; if (dp->arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->arg_index, type); } dp->conversion = c; dp->dir_end = cp; } d->count++; if (d->count >= d_allocated) { size_t memory_size; DIRECTIVE *memory; d_allocated = xtimes (d_allocated, 2); memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); if (size_overflow_p (memory_size)) /* Overflow, would lead to out of memory. */ goto out_of_memory; memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir ? realloc (d->dir, memory_size) : malloc (memory_size)); if (memory == NULL) /* Out of memory. */ goto out_of_memory; if (d->dir == d->direct_alloc_dir) memcpy (memory, d->dir, d->count * sizeof (DIRECTIVE)); d->dir = memory; } } #if CHAR_T_ONLY_ASCII else if (!c_isascii (c)) { /* Non-ASCII character. Not supported. */ goto error; } #endif } d->dir[d->count].dir_start = cp; d->max_width_length = max_width_length; d->max_precision_length = max_precision_length; return 0; error: if (a->arg != a->direct_alloc_arg) free (a->arg); if (d->dir != d->direct_alloc_dir) free (d->dir); errno = EINVAL; return -1; out_of_memory: if (a->arg != a->direct_alloc_arg) free (a->arg); if (d->dir != d->direct_alloc_dir) free (d->dir); errno = ENOMEM; return -1; } #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef CHAR_T_ONLY_ASCII #undef CHAR_T �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/readlink.c��������������������������������������������������������������������������0000644�0000000�0000000�00000004463�12116370307�012213� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Stub for readlink(). Copyright (C) 2003-2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/stat.h> #if !HAVE_READLINK /* readlink() substitute for systems that don't have a readlink() function, such as DJGPP 2.03 and mingw32. */ ssize_t readlink (const char *name, char *buf _GL_UNUSED, size_t bufsize _GL_UNUSED) { struct stat statbuf; /* In general we should use lstat() here, not stat(). But on platforms without symbolic links, lstat() - if it exists - would be equivalent to stat(), therefore we can use stat(). This saves us a configure check. */ if (stat (name, &statbuf) >= 0) errno = EINVAL; return -1; } #else /* HAVE_READLINK */ # undef readlink /* readlink() wrapper that uses correct types, for systems like cygwin 1.5.x where readlink returns int, and which rejects trailing slash, for Solaris 9. */ ssize_t rpl_readlink (const char *name, char *buf, size_t bufsize) { # if READLINK_TRAILING_SLASH_BUG size_t len = strlen (name); if (len && name[len - 1] == '/') { /* Even if name without the slash is a symlink to a directory, both lstat() and stat() must resolve the trailing slash to the directory rather than the symlink. We can therefore safely use stat() to distinguish between EINVAL and ENOTDIR/ENOENT, avoiding extra overhead of rpl_lstat(). */ struct stat st; if (stat (name, &st) == 0) errno = EINVAL; return -1; } # endif /* READLINK_TRAILING_SLASH_BUG */ return readlink (name, buf, bufsize); } #endif /* HAVE_READLINK */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/pathmax.h���������������������������������������������������������������������������0000644�0000000�0000000�00000005556�12116370307�012075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _PATHMAX_H # define _PATHMAX_H /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, including the terminating NUL byte. <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html> PATH_MAX is not defined on systems which have no limit on filename length, such as GNU/Hurd. This file does *not* define PATH_MAX always. Programs that use this file can handle the GNU/Hurd case in several ways: - Either with a package-wide handling, or with a per-file handling, - Either through a #ifdef PATH_MAX or through a fallback like #ifndef PATH_MAX # define PATH_MAX 8192 #endif or through a fallback like #ifndef PATH_MAX # define PATH_MAX pathconf ("/", _PC_PATH_MAX) #endif */ # include <unistd.h> # include <limits.h> # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 256 # endif /* Don't include sys/param.h if it already has been. */ # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> # endif # if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif # ifdef __hpux /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, *not* including the terminating NUL byte, and is set to 1023. Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is not defined at all any more. */ # undef PATH_MAX # define PATH_MAX 1024 # endif # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", <http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath> explains that the maximum size of a filename, including the terminating NUL byte, is 260 = 3 + 256 + 1. This is the same value as - FILENAME_MAX in <stdio.h>, - _MAX_PATH in <stdlib.h>, - MAX_PATH in <windef.h>. Undefine the original value, because mingw's <limits.h> gets it wrong. */ # undef PATH_MAX # define PATH_MAX 260 # endif #endif /* _PATHMAX_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/dosname.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003733�12116370307�012054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* File names on MS-DOS/Windows systems. Copyright (C) 2000-2001, 2004-2006, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. From Paul Eggert and Jim Meyering. */ #ifndef _DOSNAME_H #define _DOSNAME_H #if (defined _WIN32 || defined __WIN32__ || \ defined __MSDOS__ || defined __CYGWIN__ || \ defined __EMX__ || defined __DJGPP__) /* This internal macro assumes ASCII, but all hosts that support drive letters use ASCII. */ # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ <= 'z' - 'a') # define FILE_SYSTEM_PREFIX_LEN(Filename) \ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) # ifndef __CYGWIN__ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 # endif # define ISSLASH(C) ((C) == '/' || (C) == '\\') #else # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 # define ISSLASH(C) ((C) == '/') #endif #ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 #endif #if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) # else # define IS_ABSOLUTE_FILE_NAME(F) \ (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0) #endif #define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) #endif /* DOSNAME_H_ */ �������������������������������������wdiff-1.2.1/lib/localcharset.c����������������������������������������������������������������������0000644�0000000�0000000�00000043354�12116370307�013070� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2006, 2008-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ #include <config.h> /* Specification. */ #include "localcharset.h" #include <fcntl.h> #include <stddef.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif #if defined _WIN32 || defined __WIN32__ # define WINDOWS_NATIVE #endif #if defined __EMX__ /* Assume EMX program runs on OS/2, even if compiled under DOS. */ # ifndef OS2 # define OS2 # endif #endif #if !defined WINDOWS_NATIVE # include <unistd.h> # if HAVE_LANGINFO_CODESET # include <langinfo.h> # else # if 0 /* see comment below */ # include <locale.h> # endif # endif # ifdef __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include <windows.h> # endif #elif defined WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include <windows.h> #endif #if defined OS2 # define INCL_DOS # include <os2.h> #endif #if ENABLE_RELOCATABLE # include "relocatable.h" #else # define relocate(pathname) (pathname) #endif /* Get LIBDIR. */ #ifndef LIBDIR # include "configmake.h" #endif /* Define O_NOFOLLOW to 0 on platforms where it does not exist. */ #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') #endif #ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif #if HAVE_DECL_GETC_UNLOCKED # undef getc # define getc getc_unlocked #endif /* The following static variable is declared 'volatile' to avoid a possible multithread problem in the function get_charset_aliases. If we are running in a threaded environment, and if two threads initialize 'charset_aliases' simultaneously, both will produce the same value, and everything will be ok if the two assignments to 'charset_aliases' are atomic. But I don't know what will happen if the two assignments mix. */ #if __STDC__ != 1 # define volatile /* empty */ #endif /* Pointer to the contents of the charset.alias file, if it has already been read, else NULL. Its format is: ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ static const char * volatile charset_aliases; /* Return a pointer to the contents of the charset.alias file. */ static const char * get_charset_aliases (void) { const char *cp; cp = charset_aliases; if (cp == NULL) { #if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__) const char *dir; const char *base = "charset.alias"; char *file_name; /* Make it possible to override the charset.alias location. This is necessary for running the testsuite before "make install". */ dir = getenv ("CHARSETALIASDIR"); if (dir == NULL || dir[0] == '\0') dir = relocate (LIBDIR); /* Concatenate dir and base into freshly allocated file_name. */ { size_t dir_len = strlen (dir); size_t base_len = strlen (base); int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); file_name = (char *) malloc (dir_len + add_slash + base_len + 1); if (file_name != NULL) { memcpy (file_name, dir, dir_len); if (add_slash) file_name[dir_len] = DIRECTORY_SEPARATOR; memcpy (file_name + dir_len + add_slash, base, base_len + 1); } } if (file_name == NULL) /* Out of memory. Treat the file as empty. */ cp = ""; else { int fd; /* Open the file. Reject symbolic links on platforms that support O_NOFOLLOW. This is a security feature. Without it, an attacker could retrieve parts of the contents (namely, the tail of the first line that starts with "* ") of an arbitrary file by placing a symbolic link to that file under the name "charset.alias" in some writable directory and defining the environment variable CHARSETALIASDIR to point to that directory. */ fd = open (file_name, O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0)); if (fd < 0) /* File not found. Treat it as empty. */ cp = ""; else { FILE *fp; fp = fdopen (fd, "r"); if (fp == NULL) { /* Out of memory. Treat the file as empty. */ close (fd); cp = ""; } else { /* Parse the file's contents. */ char *res_ptr = NULL; size_t res_size = 0; for (;;) { int c; char buf1[50+1]; char buf2[50+1]; size_t l1, l2; char *old_res_ptr; c = getc (fp); if (c == EOF) break; if (c == '\n' || c == ' ' || c == '\t') continue; if (c == '#') { /* Skip comment, to end of line. */ do c = getc (fp); while (!(c == EOF || c == '\n')); if (c == EOF) break; continue; } ungetc (c, fp); if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) break; l1 = strlen (buf1); l2 = strlen (buf2); old_res_ptr = res_ptr; if (res_size == 0) { res_size = l1 + 1 + l2 + 1; res_ptr = (char *) malloc (res_size + 1); } else { res_size += l1 + 1 + l2 + 1; res_ptr = (char *) realloc (res_ptr, res_size + 1); } if (res_ptr == NULL) { /* Out of memory. */ res_size = 0; free (old_res_ptr); break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); strcpy (res_ptr + res_size - (l2 + 1), buf2); } fclose (fp); if (res_size == 0) cp = ""; else { *(res_ptr + res_size) = '\0'; cp = res_ptr; } } } free (file_name); } #else # if defined DARWIN7 /* To avoid the trouble of installing a file that is shared by many GNU packages -- many packaging systems have problems with this --, simply inline the aliases here. */ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" "ISO8859-2" "\0" "ISO-8859-2" "\0" "ISO8859-4" "\0" "ISO-8859-4" "\0" "ISO8859-5" "\0" "ISO-8859-5" "\0" "ISO8859-7" "\0" "ISO-8859-7" "\0" "ISO8859-9" "\0" "ISO-8859-9" "\0" "ISO8859-13" "\0" "ISO-8859-13" "\0" "ISO8859-15" "\0" "ISO-8859-15" "\0" "KOI8-R" "\0" "KOI8-R" "\0" "KOI8-U" "\0" "KOI8-U" "\0" "CP866" "\0" "CP866" "\0" "CP949" "\0" "CP949" "\0" "CP1131" "\0" "CP1131" "\0" "CP1251" "\0" "CP1251" "\0" "eucCN" "\0" "GB2312" "\0" "GB2312" "\0" "GB2312" "\0" "eucJP" "\0" "EUC-JP" "\0" "eucKR" "\0" "EUC-KR" "\0" "Big5" "\0" "BIG5" "\0" "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" "GBK" "\0" "GBK" "\0" "GB18030" "\0" "GB18030" "\0" "SJIS" "\0" "SHIFT_JIS" "\0" "ARMSCII-8" "\0" "ARMSCII-8" "\0" "PT154" "\0" "PT154" "\0" /*"ISCII-DEV" "\0" "?" "\0"*/ "*" "\0" "UTF-8" "\0"; # endif # if defined VMS /* To avoid the troubles of an extra file charset.alias_vms in the sources of many GNU packages, simply inline the aliases here. */ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation "Compaq C Run-Time Library Reference Manual for OpenVMS systems" section 10.7 "Handling Different Character Sets". */ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" "ISO8859-2" "\0" "ISO-8859-2" "\0" "ISO8859-5" "\0" "ISO-8859-5" "\0" "ISO8859-7" "\0" "ISO-8859-7" "\0" "ISO8859-8" "\0" "ISO-8859-8" "\0" "ISO8859-9" "\0" "ISO-8859-9" "\0" /* Japanese */ "eucJP" "\0" "EUC-JP" "\0" "SJIS" "\0" "SHIFT_JIS" "\0" "DECKANJI" "\0" "DEC-KANJI" "\0" "SDECKANJI" "\0" "EUC-JP" "\0" /* Chinese */ "eucTW" "\0" "EUC-TW" "\0" "DECHANYU" "\0" "DEC-HANYU" "\0" "DECHANZI" "\0" "GB2312" "\0" /* Korean */ "DECKOREAN" "\0" "EUC-KR" "\0"; # endif # if defined WINDOWS_NATIVE || defined __CYGWIN__ /* To avoid the troubles of installing a separate file in the same directory as the DLL and of retrieving the DLL's directory at runtime, simply inline the aliases here. */ cp = "CP936" "\0" "GBK" "\0" "CP1361" "\0" "JOHAB" "\0" "CP20127" "\0" "ASCII" "\0" "CP20866" "\0" "KOI8-R" "\0" "CP20936" "\0" "GB2312" "\0" "CP21866" "\0" "KOI8-RU" "\0" "CP28591" "\0" "ISO-8859-1" "\0" "CP28592" "\0" "ISO-8859-2" "\0" "CP28593" "\0" "ISO-8859-3" "\0" "CP28594" "\0" "ISO-8859-4" "\0" "CP28595" "\0" "ISO-8859-5" "\0" "CP28596" "\0" "ISO-8859-6" "\0" "CP28597" "\0" "ISO-8859-7" "\0" "CP28598" "\0" "ISO-8859-8" "\0" "CP28599" "\0" "ISO-8859-9" "\0" "CP28605" "\0" "ISO-8859-15" "\0" "CP38598" "\0" "ISO-8859-8" "\0" "CP51932" "\0" "EUC-JP" "\0" "CP51936" "\0" "GB2312" "\0" "CP51949" "\0" "EUC-KR" "\0" "CP51950" "\0" "EUC-TW" "\0" "CP54936" "\0" "GB18030" "\0" "CP65001" "\0" "UTF-8" "\0"; # endif #endif charset_aliases = cp; } return cp; } /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset (void) { const char *codeset; const char *aliases; #if !(defined WINDOWS_NATIVE || defined OS2) # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # ifdef __CYGWIN__ /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always returns "US-ASCII". Return the suffix of the locale name from the environment variables (if present) or the codepage as a number. */ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; static char buf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } } /* The Windows API has a function returning the locale's codepage as a number: GetACP(). This encoding is used by Cygwin, unless the user has set the environment variable CYGWIN=codepage:oem (which very few people do). Output directed to console windows needs to be converted (to GetOEMCP() if the console is using a raster font, or to GetConsoleOutputCP() if it is using a TrueType font). Cygwin does this conversion transparently (see winsup/cygwin/fhandler_console.cc), converting to GetConsoleOutputCP(). This leads to correct results, except when SetConsoleOutputCP has been called and a raster font is in use. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; } # endif # else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } } /* On some old systems, one used to set locale = "iso8859_1". On others, you set it to "language_COUNTRY.charset". In any case, we resolve it through the charset.alias file. */ codeset = locale; # endif #elif defined WINDOWS_NATIVE static char buf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number: GetACP(). When the output goes to a console window, it needs to be provided in GetOEMCP() encoding if the console is using a raster font, or in GetConsoleOutputCP() encoding if it is using a TrueType font. But in GUI programs and for output sent to files and pipes, GetACP() encoding is the best bet. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; #elif defined OS2 const char *locale; static char buf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; /* Allow user to override the codeset, as set in the operating system, with standard language environment variables. */ locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } /* Resolve through the charset.alias file. */ codeset = locale; } else { /* OS/2 has a function returning the locale's codepage as a number. */ if (DosQueryCp (sizeof (cp), cp, &cplen)) codeset = ""; else { sprintf (buf, "CP%u", cp[0]); codeset = buf; } } #endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; /* Resolve alias. */ for (aliases = get_charset_aliases (); *aliases != '\0'; aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) if (strcmp (codeset, aliases) == 0 || (aliases[0] == '*' && aliases[1] == '\0')) { codeset = aliases + strlen (aliases) + 1; break; } /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ if (codeset[0] == '\0') codeset = "ASCII"; #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" (the default codeset) does not work when MB_CUR_MAX is 1. */ if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX <= 1) codeset = "ASCII"; #endif return codeset; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/ref-del.sin�������������������������������������������������������������������������0000644�0000000�0000000�00000001675�12116370307�012311� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Remove this package from a list of references stored in a text file. # # Copyright (C) 2000, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. # # Written by Bruno Haible <haible@clisp.cons.org>. # /^# Packages using this file: / { s/# Packages using this file:// s/ @PACKAGE@ / / s/^/# Packages using this file:/ } �������������������������������������������������������������������wdiff-1.2.1/lib/xalloc-die.c������������������������������������������������������������������������0000644�0000000�0000000�00000002434�12116370307�012437� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Report a memory allocation failure and exit. Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include "xalloc.h" #include <stdlib.h> #include "error.h" #include "exitfail.h" #include "gettext.h" #define _(msgid) gettext (msgid) void xalloc_die (void) { error (exit_failure, 0, "%s", _("memory exhausted")); /* _Noreturn cannot be given to error, since it may return if its first argument is 0. To help compilers understand the xalloc_die does not return, call abort. Also, the abort is a safety feature if exit_failure is 0 (which shouldn't happen). */ abort (); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/���������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12116513225�010743� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/gl.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005625�12116513225�012001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)��� �������������,�����,�����,���'��'���T��-���|�� �����(�����(�������������=�����]�����z�������$�������������������������������#���9�����]�����x��������������������������� ��������������!�����5�����6�����5���2��,���h��6�����#�����-�����-��� ��%���L ��%���r ��&��� ��#��� ����� ��)��� �����) �����F �����e �����v ��,��� ��#��� ��"��� ����� ����� ����� �����9 �����M �����a �����u ����� ����� ���������������������������������������������� ���������� ���������������������� ����������������������������� ������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-11-11 13:26+0200 Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com> Language-Team: Galician <proxecto@trasno.net> Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: opción incorrecta -- «%c» �%s: a opción «%c%s» non permite ningún argumento �%s: a opción «%s» é ambigua; as posibilidades son:�%s: a opción «--%s» non permite ningún argumento �%s: a opción «--%s» require un argumento �%s: a opción «-W %s» non permite ningún argumento �%s: a opción «-W %s» é ambigua �%s: a opción «-W %s» require un argumento �%s: a opción require un argumento -- «%c» �%s: opción «%c%s» non recoñecida �%s: opción «--%s» non recoñecida �Nome da clase de caracteres incorrecto�Carácter de ordenación incorrecto�Contido de \{\} non válido�Expresión regular precedente non válida�Fin de intervalo non válido�Expresión regular non válida�Memoria esgotada�Sen coincidencias�Non hai ningunha expresión regular anterior�Fin prematura da expresión regular�Expresión regular grande de máis�Éxito�Barra invertida ao final�Erro do sistema descoñecido�( ou \( sen parella�) ou \) sen parella�[ ou [^ sen parella�\{ sen parella�memoria esgotada������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ga.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000003540�12116513225�011760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������l��������������������������1��$���I�����n����������������������#�����������������������.�����C�����U�����g�� ���y��������������o��$�����"�����!�����/�������� �����;�����Z�����i��%���y��*���������� ��������������� ���"�� ���/�� ���<�����I�����Q��������� ��������������������������������� ������������������� ������� �������������������������� ����Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 1.1 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2007-07-20 12:24-0600 Last-Translator: Kevin Scannell <kscanne@gmail.com> Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net> Language: ga MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(n>6 && n<11) ? 3 : 4; �Cltagairt neamhbhail�Ainm neamhbhail ar aicme charachtar�Carachtar neamhbhail comhordaithe�bhar neamhbhail idir \{ agus \}�Is neamhbhail an slonn ionadaochta roimhe seo�Deireadh raoin neamhbhail�Slonn ionadaochta neamhbhail�Cuimhne dithe�Gan mheaitseil�Nl aon slonn ionadaochta roimhe seo�Deireadh le slonn ionadaochta gan choinne�Slonn ionadaochta rmhr�D'irigh leis�Clslais chun deiridh�Earrid chrais anaithnid�( n \( corr�) n \) corr�[ n [^ corr�\{ corr�cuimhne dithe�����������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/bg.po����������������������������������������������������������������������������0000644�0000000�0000000�00000035070�12116513224�011617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of coreutils.bg.po to Bulgarian # Message catalog for coreutils # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the coreutils package. # Anton Zinoviev <zinoviev@debian.org>, 2003,2004. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.90\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2005-10-12 21:41+0300\n" "Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language: bg\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" #: lib/error.c:188 msgid "Unknown system error" msgstr "Непозната системна грешка" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: опцията \"%s\" е двусмислена\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: опцията \"--%s\" не допуска аргумент\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: опцията \"%c%s\" не допуска аргумент\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: опцията \"%s\" изисква аргумент\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: непозната опция \"--%s\"\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: непозната опция \"%c%s\"\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: неправилна опция -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: опция изисква аргумент -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: опцията \"-W %s\" е двусмислена\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: опцията \"-W %s\" не допуска аргумент\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: опцията \"%s\" изисква аргумент\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: неправилен регулярен израз: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "неправилен клас от символи %s" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "неправилен клас от символи %s" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 #, fuzzy msgid "Invalid back reference" msgstr "Неправилен диапазон от страници %s" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "Неправилен диапазон от страници %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "паметта е изчерпана" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: неправилен регулярен израз: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "грешка при търсене на регулярен израз" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "грешка при пасването на регулярния израз" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "грешка при търсене на регулярен израз" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "паметта е изчерпана" #~ msgid "invalid argument %s for %s" #~ msgstr "недопустим аргумент %s за %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "двусмислен аргумент %s за %s" #~ msgid "Valid arguments are:" #~ msgstr "Допустими аргументи са:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Аргументите, задължителни за дългите опции, са задължителни и за късите.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Използване: %s [ОПЦИЯ]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Използвайте \"%s --help\" за повече информация.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Съобщавайте за програмни грешки на <%s>.\n" #~ msgid "NAME" #~ msgstr "ИМЕ" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: твърде много редове с контролни суми" #, fuzzy #~ msgid "program error" #~ msgstr "грешка при четене" #~ msgid "write error" #~ msgstr "грешка при запис" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "не може да се отвори %s за четене" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "не може да се отвори %s за запис" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "грешка при четене на %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "грешка при запис в %s" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "грешка при четене на %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "неуспешно отваряне на файл" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: неуспешно позициониране (seek) във файл" #~ msgid "regular empty file" #~ msgstr "обикновеният празен файл" #~ msgid "regular file" #~ msgstr "обикновеният файл" #~ msgid "directory" #~ msgstr "каталогът" #~ msgid "block special file" #~ msgstr "специалният блоков файл" #~ msgid "character special file" #~ msgstr "специалният символен файл" #~ msgid "fifo" #~ msgstr "именуваният канал" #~ msgid "symbolic link" #~ msgstr "символната връзка" #~ msgid "socket" #~ msgstr "гнездото" #~ msgid "message queue" #~ msgstr "опашката със съобщения" #~ msgid "semaphore" #~ msgstr "семафорът" #~ msgid "shared memory object" #~ msgstr "споделеният обект в паметта" #~ msgid "typed memory object" #~ msgstr "типизираният обект в паметта" #~ msgid "weird file" #~ msgstr "странният файл" #~ msgid "Address family for hostname not supported" #~ msgstr "Този тип адреси не се поддържа за името на хоста" #~ msgid "Temporary failure in name resolution" #~ msgstr "Временен проблем при намиране IP-адреса на хост" #~ msgid "Bad value for ai_flags" #~ msgstr "Неправил на стойност за ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Окончателен неуспех при намиране IP-адреса на хост" #~ msgid "ai_family not supported" #~ msgstr "не се поддържа посочването на тип адреси (ai_family)" #~ msgid "Memory allocation failure" #~ msgstr "Неуспешно заделяне на памет" #~ msgid "No address associated with hostname" #~ msgstr "Няма IP-адрес с посоченото име на хост" #~ msgid "Name or service not known" #~ msgstr "Името или услугата са непознати" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "" #~ "Името на услугата не се поддържа за използваното тип гнездо (ai_socktype)" #~ msgid "ai_socktype not supported" #~ msgstr "не се поддържа посочването на тип гнездо (ai_socktype)" #~ msgid "System error" #~ msgstr "грешка в системата" #~ msgid "Processing request in progress" #~ msgstr "Заявката е в процес на изпълнение" #~ msgid "Request canceled" #~ msgstr "Заявката е отменена" #~ msgid "Request not canceled" #~ msgstr "Заявката не е отменена" #~ msgid "All requests done" #~ msgstr "Изпълнени са всички заявки" #~ msgid "Interrupted by a signal" #~ msgstr "Прекъснат със сигнал" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Неправилно кодиран низ на аргумент" #~ msgid "Unknown error" #~ msgstr "Непозната грешка" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: неправилна опция -- %c\n" #~ msgid "block size" #~ msgstr "блоковият размер" #~ msgid "%s exists but is not a directory" #~ msgstr "%s съществува, но не е каталог" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "не може да се смени собственика и/или групата на %s" #~ msgid "cannot create directory %s" #~ msgstr "не може да се създаде каталог %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "не може да се влезе в каталога %s" #~ msgid "cannot change permissions of %s" #~ msgstr "не може да се сменят правата за достъп до %s" #~ msgid "unable to record current working directory" #~ msgstr "не може да се запомни текущият работен каталог" #~ msgid "failed to return to initial working directory" #~ msgstr "невъзможно връщане в първоначалния работен каталог" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s: не може да се отвори в режим за писане" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "не може да се създаде връзка %s" #~ msgid "`" #~ msgstr "\"" #~ msgid "'" #~ msgstr "\"" # Клавишът О (латинско) генерира "Д" според подредбата по БДС #~ msgid "^[yY]" #~ msgstr "^[дДoOyY]" # Клавишът K (латинско) генерира "Н" според подредбата по БДС #~ msgid "^[nN]" #~ msgstr "^[нНkKnN]" #~ msgid "iconv function not usable" #~ msgstr "функцията iconv не е използваема" #~ msgid "iconv function not available" #~ msgstr "функцията iconv е недостъпна" #~ msgid "character out of range" #~ msgstr "знак извън диапазона" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "не може да се конвертира U+%04X в локалното кодиране" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "не може да се конвертира U+%04X в локалното кодиране: %s" #~ msgid "invalid user" #~ msgstr "несъществуващ потребител" #~ msgid "invalid group" #~ msgstr "несъществуваща група" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "не може да се получи входящата група по потребителски номер" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Това е свободен софтуер. Можете да разпространявате негови копия " #~ "съгласно\n" #~ "условията на Основната общодостъпна лицензия на ГНУ\n" #~ " <http://www.gnu.org/licenses/gpl.html>.\n" #~ "Не се дават НИКАКВИ ГАРАНЦИИ до степента, позволявана от закона.\n" #~ msgid "Written by %s.\n" #~ msgstr "Написан от %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Написан от %s и %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Написан от %s, %s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Написан от %s, %s, %s\n" #~ "и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Написан от %s, %s, %s,\n" #~ "%s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Написан от %s, %s, %s,\n" #~ "%s, %s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Написан от %s, %s, %s,\n" #~ "%s, %s, %s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Написан от %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Написан от %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Написан от %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s и други.\n" #~ msgid "string comparison failed" #~ msgstr "сравнението на низове не успя" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Използвайте LC_ALL='C', за да заобиколите този проблем." #~ msgid "The strings compared were %s and %s." #~ msgstr "Сравняваните низове бяха %s и %s." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/nl.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005617�12116513225�012011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������)�����5���-��)���c��&�����*�����$�����'��� ��'���, �����T �����p ����� ����� ����� ����� ��*��� �����! �����6 �� ���T �����u �� ��� ��(��� ����� ����� ����� ����� �����' �����: �����M �� ���` �� ���n �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib-3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-22 20:37+0200 Last-Translator: Benno Schulenberg <benno@vertaalt.nl> Language-Team: Dutch <vertaling@vrijschrift.org> Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.0 Plural-Forms: nplurals=2; plural=(n != 1); �%s: ongeldige optie -- '%c' �%s: optie '%c%s' staat geen argument toe �%s: optie '%s' is niet eenduidig; mogelijkheden zijn:�%s: optie '--%s' staat geen argument toe �%s: optie '--%s' vereist een argument �%s: optie '-W %s' staat geen argument toe �%s: optie '-W %s' is niet eenduidig �%s: optie '-W %s' vereist een argument �%s: optie vereist een argument -- '%c' �%s: onbekende optie '%c%s' �%s: onbekende optie '--%s' �Ongeldige terugverwijzing�Ongeldige tekenklassenaam�Ongeldig samengesteld teken�Ongeldige inhoud van \{\}�Ongeldige voorafgaande reguliere expressie�Ongeldig bereikeinde�Ongeldige reguliere expressie�Onvoldoende geheugen beschikbaar�Geen overeenkomsten�Geen eerdere reguliere expressie�Voortijdig einde van reguliere expressie�Reguliere expressie is te groot�Gelukt�Backslash aan het eind�Onbekende systeemfout�Ongepaarde ( of \(�Ongepaarde ) of \)�Ongepaarde [ of [^�Ongepaarde \{�onvoldoende geheugen beschikbaar������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/sk.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001052�12116513225�012002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v���z���������������������������������Unknown system error�memory exhausted�Project-Id-Version: textutils 2.0.14 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2001-06-08 22:10 +02:00 Last-Translator: Stanislav Meduna <stano@trillian.eunet.sk> Language-Team: Slovak <sk-i18n@rak.isternet.sk> Language: sk MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8-bit �Neznma systmov chyba�vyerpan pam���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/uk.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000007417�12116513225�012017� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��4���@��F���u��[�����F��� ��i���_ ��G��� ��8��� ��j���J ��?��� ��/��� ��/���% ��4���U ��;��� ��?��� ��&��� ��K���- ��6���y ��6��� �� ��� ����� ��P��� ��M���o ��2��� �� ��� ��J��� ��0���F�����w��"��������������� ����������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-22 09:50+0300 Last-Translator: Yuri Chornoivan <yurchor@ukr.net> Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net> Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: Lokalize 1.1 �%s: Некоректний параметр -- '%c' �%s: параметр '%c%s' не може мати аргументу �%s: параметр «%s» є неоднозначним, можливі варіанти:�%s: параметр '--%s' не може мати аргументу �%s: для використання параметра «--%s» слід вказати аргумент �%s: параметр '-W %s' не може мати аргументу �%s: параметр '-W %s' неоднозначний �%s: для використання параметра «-W %s» слід вказати аргумент �%s: параметр вимагає аргументу -- '%c' �%s: невідомий параметр '%c%s' �%s: невідомий параметр '--%s' �Недійсне зворотнє посилання�Некоректна назва класу символів�Некоректний об'єднувальний символ�Некоректний вміст \{\}�Некоректний попередній формальний вираз�Некоректний кінець діапазону�Некоректний формальний вираз�Пам'ять вичерпана�Брак збігів�Не вказано попереднього формального виразу�Передчасне закінчення формального виразу�Завеликий формальний вираз�Успіх�Зворотна похила риска наприкінці виразу�Невідома системна помилка�Незакрита ( або \(�Неузгоджена ) або \)�Незакрита [ або [^�Незакрита \{�пам'ять вичерпано��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/pt.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000000657�12116513225�012022� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$������,�������8���u��9���������������Project-Id-Version: sh-utils 1.12i Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 1996-11-08 20:03+0100 Last-Translator: Antnio Joo Serras Rendas <arendas@mail.telepac.pt> Language-Team: Portugus <pt@li.org> Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit ����������������������������������������������������������������������������������wdiff-1.2.1/lib/po/Rules-quot�����������������������������������������������������������������������0000644�0000000�0000000�00000003400�11744500575�012675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$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 "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/et.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000004041�12116513225�011776� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������l�������������,�����,���*��-���W�� �����(�����������������������&�����C��$���_����������������������#������������� �����5����F�������+��� ��+���7��,���c�������!����������������������������2�����G�����e�����z�� ������������������������� ��������������� ��� ��������������������������������� ���������� ������������������������������������ ����%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '--%s' doesn't allow an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No previous regular expression�Premature end of regular expression�Regular expression too big�Unknown system error�memory exhausted�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-05-19 15:10+0300 Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee> Language-Team: Estonian <linux-ee@lists.eenet.ee> Language: et MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: vigane vti -- '%c' �%s: vti '%c%s' ei luba kasutada argumenti �%s: vti '--%s' ei luba kasutada argumenti �%s: vti '-W %s' ei luba kasutada argumenti �%s: vti '-W %s' on segane �%s: vti nuab argumenti -- '%c' �%s: tundmatu vti '%c%s' �%s: tundmatu vti '--%s' �Vigane tagasiviide�Vigane smbolite klassi nimi�Vigane vrdlussmbol�Vigane eelnev regulaaravaldis�Vigane vahemiku lpp�Vigane regulaaravaldis�Mlu on otsas�Eelmist regulaaravaldist pole�Enneaegne regulaaravaldise lpp�Regulaaravaldis on liiga pikk�Tundmatu ssteemne viga�mlu on otsas������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/pt_BR.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001113�12116513225�012371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v����������������:��������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.0 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2003-06-27 19:20-0300 Last-Translator: Juan Carlos Castro y Castro <jcastro@vialink.com.br> Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br> Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit �Erro de sistema desconhecido�memria esgotada������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/eu.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001145�12116513225�012001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v�����������;�����T��������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils-5.2.1 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2005-01-04 20:27+0100 Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net> Language-Team: Basque <translation-team-eu@lists.sourceforge.net> Language: eu MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �Sistema-errore ezezaguna�memoria agortuta����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/af.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001023�12116513225�011751� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v���e���������������������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.2.1 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2004-03-17 11:58+0200 Last-Translator: Petri Jooste <rkwjpj@puk.ac.za> Language-Team: Afrikaans <i18n@af.org.za> Language: af MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit �Onbekende stelselfout�geheue uitgeput��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ro.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001073�12116513225�012010� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������r�����z��� ���&�����4��������������������Memory exhausted�Success�Project-Id-Version: mailutils 0.4 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2003-12-10 08:55+0200 Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro> Language-Team: Romanian <translation-team-ro@lists.sourceforge.net> Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n!=1); �Memorie plin�Succes����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/eo.po����������������������������������������������������������������������������0000644�0000000�0000000�00000045350�12116513224�011634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of gnubiff-2.0.2.po to Esperanto # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Felipe Castro <fefcas@gmail.com>, 2013. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2013-02-06 15:17-0300\n" "Last-Translator: Felipe Castro <fefcas@gmail.com>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Nekonata sistem-eraro" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: la modifilo '%s' estas plursenca; eblecoj:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: la modifilo '--%s' ne permesas argumenton\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: la modifilo '--%s' postulas argumenton\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: nerekonata modifilo '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: nerekonata modifilo '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: malvalida modifilo -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: la modifilo postulas argumenton -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: la modifilo '-W %s' estas plursenca\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: la modifilo '-W %s' postulas argumenton\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Sukceso" #: lib/regcomp.c:134 msgid "No match" msgstr "Neniu kongruaĵo" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Malvalida regulesprimo" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Malvalida ordodifina signo" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Malvalida signa klasnomo" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Vosta retroklino" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Malvalida retroreferenco" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Senpara [ aŭ [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Senpara ( aŭ \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Senpara \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Malvalida enhavo de \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Malvalida intervalofino" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Memoro estas plenigita" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Malvalida antaŭa regulesprimo" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Tro frua fino de regulesprimo" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Regulesprimo tro grandas" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Senpara ) aŭ \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Neniu antaŭa regulesprimo" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoro estas plenigita" #~ msgid "invalid argument %s for %s" #~ msgstr "malvalida argumento %s por %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "plursenca argumento %s por %s" #~ msgid "Valid arguments are:" #~ msgstr "Validaj argumentoj estas:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: valoro de %s estas malpli aŭ egala al %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: parametro ARGP_HELP_FMT postulas valoron" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: parametro ARGP_HELP_FMT devas esti pozitiva" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Nekonata parametro ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Rubaĵo en ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Devigaj aŭ nedevigaj argumentoj por longaj modifiloj ankaŭ estas devigaj " #~ "aŭ nedevigaj por iu ajn korespondanta mallonga modifilo." #~ msgid "Usage:" #~ msgstr "Uzmaniero:" #~ msgid " or: " #~ msgstr " aŭ: " #~ msgid " [OPTION...]" #~ msgstr " [MODIFILO...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Provu '%s --help' aŭ '%s --usage' por pli da informo.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Raportu program-misojn al %s.\n" #~ msgid "give this help list" #~ msgstr "montri tiun ĉi help-liston" #~ msgid "give a short usage message" #~ msgstr "montri mallongan mesaĝon pri la uzmaniero" #~ msgid "NAME" #~ msgstr "NOMO" #~ msgid "set the program name" #~ msgstr "difini la program-nomon" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "halti dum SEK sekundoj (apriore 3600)" #~ msgid "print program version" #~ msgstr "montri program-version" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAM-ERARO) Neniu versio estas konata!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: tro da argumentoj\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAM-ERARO) Modifilo devus esti rekonita!?" #~ msgid "program error" #~ msgstr "programeraro" #~ msgid "stack overflow" #~ msgstr "staka troigo" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "ne eblas trovi provizoran dosierujon, provu difini $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "ne eblas krei provizoran dosierujon uzante la ŝablonon \"%s\"" #~ msgid "cannot remove temporary file %s" #~ msgstr "ne eblas forigi la provizoran dosieron %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "ne eblas forigi la provizoran dosierujon %s" #~ msgid "error closing file" #~ msgstr "eraro dum fermo de dosiero" #~ msgid "write error" #~ msgstr "skrib-eraro" #~ msgid "preserving permissions for %s" #~ msgstr "ni tenas la permesojn por %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "eraro dum malfermo de \"%s\" por legi" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "ne eblas malfermi la savdosieron \"%s\" por skribi" #~ msgid "error reading \"%s\"" #~ msgstr "eraro legante \"%s\"" #~ msgid "error writing \"%s\"" #~ msgstr "eraro skribante \"%s\"" #~ msgid "error after reading \"%s\"" #~ msgstr "eraro post legi \"%s\"" #~ msgid "fdopen() failed" #~ msgstr "fdopen() fiaskis" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Kompililo C# ne estis trovata, ni provas instali pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Virtuala maŝino C# ne estis trovata, ni provas instali pnet" #~ msgid "%s subprocess failed" #~ msgstr "subprocezo de %s fiaskis" #~ msgid "regular empty file" #~ msgstr "regula malplena dosiero" #~ msgid "regular file" #~ msgstr "regula dosiero" #~ msgid "directory" #~ msgstr "dosierujo" #~ msgid "block special file" #~ msgstr "bloka speciala dosiero" #~ msgid "character special file" #~ msgstr "bajta speciala dosiero" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "simbola ligo" #~ msgid "socket" #~ msgstr "konektingo" #~ msgid "message queue" #~ msgstr "mesaĝovico" #~ msgid "semaphore" #~ msgstr "semaforo" #~ msgid "shared memory object" #~ msgstr "komuna memorobjekto" #~ msgid "typed memory object" #~ msgstr "tipita memorbjekto" #~ msgid "weird file" #~ msgstr "stranga dosiero" #~ msgid "Address family for hostname not supported" #~ msgstr "Adresfamilio por komputilretnomo ne estas subtenata" #~ msgid "Temporary failure in name resolution" #~ msgstr "Provizora paneo en solvo de retnomo" #~ msgid "Bad value for ai_flags" #~ msgstr "Malĝusta valoro por ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Neriparebla paneo en solvo de retnomo" #~ msgid "ai_family not supported" #~ msgstr "ai_family ne estas subtenata" #~ msgid "Memory allocation failure" #~ msgstr "Rezervo de memoro fiaskis" #~ msgid "No address associated with hostname" #~ msgstr "Neniu adreso estas asociita kun komputilretnomo" #~ msgid "Name or service not known" #~ msgstr "Nomo aŭ servo ne estas konata" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname ne estas subtenata por ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ne estas subtenata" #~ msgid "System error" #~ msgstr "Sistem-eraro" #~ msgid "Argument buffer too small" #~ msgstr "Bufro por argumentoj tro malgrandas" #~ msgid "Processing request in progress" #~ msgstr "Procezado de peto daŭras" #~ msgid "Request canceled" #~ msgstr "Peto estas nuligita" #~ msgid "Request not canceled" #~ msgstr "Peto ne estas nuligita" #~ msgid "All requests done" #~ msgstr "Ĉiuj petoj estas plenumitaj" #~ msgid "Interrupted by a signal" #~ msgstr "Interrompita de signalo" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametra ĉeno ne estas ĝuste enkodita" #~ msgid "Unknown error" #~ msgstr "Nekonata eraro" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "malvalida argumento source_version por compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "malvalida argumento target_version por compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "ni fiaskis krei \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "eraro dum skribo de dosiero \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Ĵava kompililo ne estis trovata, provu instali gcj aŭ difinu $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Ĵava virtuala maŝino ne estis trovata, provu instali gij aŭ difinu $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "%s subproceza eraro de en/eligo" #~ msgid "cannot change permissions of %s" #~ msgstr "ne eblas ŝanĝi permesojn de %s" #~ msgid "cannot create directory %s" #~ msgstr "ne eblas krei la dosierujon %s" #~ msgid "unable to record current working directory" #~ msgstr "ne eblas registri la aktualan labordosierujon" #~ msgid "failed to return to initial working directory" #~ msgstr "ni fiaskis reveni al la komenca labordosierujo" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Ni fiaskis malfermi /dev/zero por legi" #~ msgid "creation of reading thread failed" #~ msgstr "kreo de leganta fadeno fiaskis" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "ne eblas difini neblokantan en/eligon al la subprocezo %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikado kun la subprocezo %s fiaskis" #~ msgid "write to %s subprocess failed" #~ msgstr "skribo al la subprocezo %s fiaskis" #~ msgid "read from %s subprocess failed" #~ msgstr "lego el la subprocezo %s fiaskis" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "la subproceso %s ĉesis kun elira kodo %d" #~ msgid "creation of threads failed" #~ msgstr "kreo de fadenoj fiaskis" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "la subproceso %s ĉesis kun elira kodo %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "‘" #~ msgid "'" #~ msgstr "’" #~ msgid "^[yY]" #~ msgstr "^[jJyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "agordo de permesoj por %s" #~ msgid "Hangup" #~ msgstr "Malkonekto" #~ msgid "Interrupt" #~ msgstr "Interrompo" #~ msgid "Quit" #~ msgstr "Eliri" #~ msgid "Illegal instruction" #~ msgstr "Malvalida instrukcio" #~ msgid "Trace/breakpoint trap" #~ msgstr "Spursekva/paŭzopunkta kaptilo" #~ msgid "Aborted" #~ msgstr "Ĉesigita" #~ msgid "Floating point exception" #~ msgstr "Glitkoma escepto" #~ msgid "Killed" #~ msgstr "Mortigita" #~ msgid "Bus error" #~ msgstr "Bus-eraro" #~ msgid "Segmentation fault" #~ msgstr "Adres-eraro" #~ msgid "Broken pipe" #~ msgstr "Rompita dukto" #~ msgid "Alarm clock" #~ msgstr "Vekhorloĝo" #~ msgid "Terminated" #~ msgstr "Finigita" #~ msgid "Urgent I/O condition" #~ msgstr "Urĝa en/eliga stato" #~ msgid "Stopped (signal)" #~ msgstr "Haltigita (signalo)" #~ msgid "Stopped" #~ msgstr "Haltigita" #~ msgid "Continued" #~ msgstr "Daŭrigita" #~ msgid "Child exited" #~ msgstr "Ido finis" #~ msgid "Stopped (tty input)" #~ msgstr "Haltigita (enigo tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Haltigita (eligo tty)" #~ msgid "I/O possible" #~ msgstr "En/eligo eblas" #~ msgid "CPU time limit exceeded" #~ msgstr "Procezila tempolimo estas atingita" #~ msgid "File size limit exceeded" #~ msgstr "Dosiergranda limo estas atingita" #~ msgid "Virtual timer expired" #~ msgstr "Virtuala horloĝo senvalidiĝis" #~ msgid "Profiling timer expired" #~ msgstr "Profilanta horloĝo senvalidiĝis" #~ msgid "Window changed" #~ msgstr "Fenestro ŝanĝis" #~ msgid "User defined signal 1" #~ msgstr "Signalo 1 difinita de uzanto" #~ msgid "User defined signal 2" #~ msgstr "Signalo 2 difinita de uzanto" #~ msgid "EMT trap" #~ msgstr "kaptilo EMT" #~ msgid "Bad system call" #~ msgstr "Malĝusta sistemvoko" #~ msgid "Stack fault" #~ msgstr "Stak-eraro" #~ msgid "Information request" #~ msgstr "Informo-peto" #~ msgid "Power failure" #~ msgstr "Elektra paneo" #~ msgid "Resource lost" #~ msgstr "Perdo de rimedo" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "eraro skribante al fermida dukto aŭ konektingo" #~ msgid "cannot create pipe" #~ msgstr "ne eblas krei dukton" #~ msgid "Real-time signal %d" #~ msgstr "Realtempa signalo %d" #~ msgid "Unknown signal %d" #~ msgstr "Nekonata signalo %d" #~ msgid "iconv function not usable" #~ msgstr "funkcio iconv ne uzeblas" #~ msgid "iconv function not available" #~ msgstr "funkcio iconv ne disponeblas" #~ msgid "character out of range" #~ msgstr "signo estas for de intervalo" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "ne eblas konverti U+%04X al loka signaro" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "ne eblas konverti U+%04X al loka signaro: %s" #~ msgid "invalid user" #~ msgstr "malvalida uzanto" #~ msgid "invalid group" #~ msgstr "malvalida grupo" #~ msgid "invalid spec" #~ msgstr "malvalida spec" #~ msgid "unable to display error message" #~ msgstr "ne eblas montri erarmesaĝon" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Pakigita de %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Pakigita de %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Permeso GPLv3+: GNU GPL versio 3 aŭ posta <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "Tio ĉi estas libera programaro: vi estas libera por ŝanĝi kaj redisdoni " #~ "ĝin.\n" #~ "Ekzistas NENIU GARANTIO, laŭ plej amplekse permesate de la leĝoj.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Verkita de %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Verkita de %s kaj %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Verkita de %s, %s, kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "%s, kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "%s, %s, kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "%s, %s, %s, kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, kaj %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Verkita de %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, kaj aliaj.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Raportu program-misojn al: %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Raportu %s misojn al: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s hejm-paĝo: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s hejm-paĝo: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Ĝenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle fiaskis" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ne eblas restarigi fd %d: dup2 fiaskis" #~ msgid "%s subprocess" #~ msgstr "subprocezo %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "subprocezo %s ricevis neripareblan signalon %d" #~ msgid "stdin" #~ msgstr "ĉefenigujo" #~ msgid "stdout" #~ msgstr "ĉefeligujo" #~ msgid "stderr" #~ msgstr "ĉeferarujo" #~ msgid "unknown stream" #~ msgstr "nekonata fluaĵo" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "ni fiaskis remalfermi %s kun reĝimo %s" #~ msgid "string comparison failed" #~ msgstr "ĉena komparo fiaskis" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Agordu LC_ALL='C' por ĉirkauiri la problemon." #~ msgid "The strings compared were %s and %s." #~ msgstr "La komparitaj ĉenoj estis %s kaj %s." #~ msgid "cannot perform formatted output" #~ msgstr "ne eblas efektivigi formatitan eligon" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "malvalida %s%s-argumento '%s'" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "malvalida sufikso en %s%s-argumento '%s'" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s-argumento '%s' tro larĝas" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/zh_CN.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004511�12116513225�012371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q��,�����,�����-����� �����(���6�����_����������������������$�������������"�����=�����N�����W��#���v����������������������������������� �� ��������(����9�����������������!���5�����W�����s�� ����� ����������������������������5�����K�� ���a�� ���n�����x����������������������������������� ����� �� ���/ �� ���< �������� ����������������������������������������� ���������� �������������� ������������������������������������������� �������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '--%s' doesn't allow an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-26 09:54+0800 Last-Translator: Ji ZhengYu <zhengyuji@gmail.com> Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com> Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; �%s: 无效选项 -- "%c" �%s: 选项"%c%s"不要参数 �%s: 选项"--%s"不要参数 �%s: 选项"-W %s"不要带参数 �%s: 选项"-W %s"有歧义 �%s: 选项需要参数 -- "%c" �%s: 无法识别的选项"%c%s" �%s: 无法识别的选项"--%s" �无效的向后索引�无效的字符类名�\{\} 的内容无效�前置的正则表达式无效�无效的范围结尾�正则表达式无效�内存用尽�不匹配�没有前次正则表达式�正则表达式结尾过早�正则表达式太大�成功�多余的反斜杠�未知的系统错误�( 或 \( 不匹配�) 或 \) 不匹配�[ 或 [^ 不匹配�\{ 不匹配�内存用尽����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/hu.po����������������������������������������������������������������������������0000644�0000000�0000000�00000043353�12116513224�011646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hungarian translation of gnulib. # Copyright (C) 2002, 2003, 2004, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Emese Kovacs <emese@instantweb.hu>, 2004. # Gabor Kelemen <kelemeng@gnome.hu>, 2010. msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-23 19:52+0100\n" "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" "Language: hu\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-Generator: KBabel 1.11.4\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Ismeretlen rendszerhiba" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: a(z) „%s” kapcsolóhoz argumentum szükséges\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: érvénytelen kapcsoló -- „%c”\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: a(z) „%s” kapcsolóhoz argumentum szükséges\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Sikerült" #: lib/regcomp.c:134 msgid "No match" msgstr "Nincs találat" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Érvénytelen szabályos kifejezés" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Érvénytelen leválogatási karakter" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Érvénytelen karakterosztálynév" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Záró visszaper" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Érvénytelen visszahivatkozás" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Pár nélküli [ vagy [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Pár nélküli ( vagy \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Pár nélküli \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "A \\{\\} tartalma érvénytelen" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Érvénytelen tartományvég" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Elfogyott a memória" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Érvénytelen megelőző szabályos kifejezés" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "A szabályos kifejezés túl korán véget ért" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "A szabályos kifejezés túl nagy" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Pár nélküli ) vagy \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Nincs megelőző szabályos kifejezés" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "elfogyott a memória" #~ msgid "invalid argument %s for %s" #~ msgstr "a(z) „%s” argumentum érvénytelen a következőhöz: %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "a(z) „%s” argumentum nem egyértelmű ehhez: „%s”" #~ msgid "Valid arguments are:" #~ msgstr "Az érvényes argumentumok a következők:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s értéke nem nagyobb, mint %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Az ARGP_HELP_FMT paraméter értéket igényel" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Az ARGP_HELP_FMT paraméternek pozitívnak kell lennie" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Ismeretlen ARGP_HELP_FMT paraméter" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Szemét az ARGP_HELP_FMT-ben: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Ha egy hosszú kapcsolóhoz kötelező vagy opcionális argumentumot megadni, " #~ "akkor ez a megfelelő rövid kapcsolónál is kötelező vagy opcionális." #~ msgid "Usage:" #~ msgstr "Használat:" #~ msgid " or: " #~ msgstr " vagy: " #~ msgid " [OPTION...]" #~ msgstr " [KAPCSOLÓ…]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "További információkért lásd a(z) „%s --help” vagy „%s --usage” " #~ "kimenetét.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "A hibák itt jelenthetők: %s.\n" #~ msgid "give this help list" #~ msgstr "ezen súgószöveg megjelenítése" #~ msgid "give a short usage message" #~ msgstr "rövid használati utasítás megjelenítése" #~ msgid "NAME" #~ msgstr "NÉV" #~ msgid "set the program name" #~ msgstr "a program nevének beállítása" #~ msgid "SECS" #~ msgstr "MÁSODPERC" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "szünet MP másodpercre (alapértelmezetten 3600)" #~ msgid "print program version" #~ msgstr "a programverzió kiírása" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMHIBA) A verzió nem ismert!" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Túl sok argumentum\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMHIBA) A kapcsolót ismerni kellene?" #~ msgid "program error" #~ msgstr "olvasási hiba" #~ msgid "stack overflow" #~ msgstr "veremtúlcsordulás" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "nem található átmeneti könyvtár, próbálja beállítani a $TMPDIR változót" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "nem lehet létrehozni átmeneti könyvtárat a(z) „%s” sablon használatával" #~ msgid "cannot remove temporary file %s" #~ msgstr "nem lehet eltávolítani a(z) %s átmeneti fájlt" #~ msgid "cannot remove temporary directory %s" #~ msgstr "nem lehet eltávolítani a(z) %s átmeneti könyvtárat" #~ msgid "error closing file" #~ msgstr "hiba a fájl lezárásakor" #~ msgid "write error" #~ msgstr "írási hiba" #~ msgid "preserving permissions for %s" #~ msgstr "%s jogosultságainak megőrzése" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "hiba \"%s\" megnyitásakor olvasásra" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "%s mentési fájl megnyitása írásra sikertelen" #~ msgid "error reading \"%s\"" #~ msgstr "hiba \"%s\" olvasásakor" #~ msgid "error writing \"%s\"" #~ msgstr "hiba \"%s\" írásakor" #~ msgid "error after reading \"%s\"" #~ msgstr "hiba \"%s\" olvasása után" #~ msgid "fdopen() failed" #~ msgstr "az fdopen() sikertelen" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "a C# fordító nem található, próbálja telepíteni a pnetet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "a C# virtuális gép nem található, próbálja telepíteni a pnetet" #~ msgid "%s subprocess failed" #~ msgstr "%s alfolyamat sikertelen" #~ msgid "regular empty file" #~ msgstr "szabályos üres fájl" #~ msgid "regular file" #~ msgstr "szabályos fájl" #~ msgid "directory" #~ msgstr "könyvtár" #~ msgid "block special file" #~ msgstr "speciális blokkfájl" #~ msgid "character special file" #~ msgstr "speciális karakterfájl" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "szimbolikus link" #~ msgid "socket" #~ msgstr "foglalat" #~ msgid "message queue" #~ msgstr "üzenetsor" #~ msgid "semaphore" #~ msgstr "szemafor" #~ msgid "shared memory object" #~ msgstr "megosztott memóriaobjektum" #~ msgid "typed memory object" #~ msgstr "típusos memóriaobjektum" #~ msgid "weird file" #~ msgstr "szokatlan fájl" #~ msgid "Address family for hostname not supported" #~ msgstr "A gépnév címcsaládja nem támogatott" #~ msgid "Temporary failure in name resolution" #~ msgstr "Átmeneti névfeloldási hiba" #~ msgid "Bad value for ai_flags" #~ msgstr "Az ai_flags értéke hibás" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Helyrehozhatatlan névfeloldási hiba" #~ msgid "ai_family not supported" #~ msgstr "Az ai_family nem támogatott" #~ msgid "Memory allocation failure" #~ msgstr "Memóriafoglalási hiba" #~ msgid "No address associated with hostname" #~ msgstr "A gépnévhez nem tartozik cím" #~ msgid "Name or service not known" #~ msgstr "A név vagy szolgáltatás ismeretlen" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "A kiszolgálónév nem támogatott az ai_socktype-hoz" #~ msgid "ai_socktype not supported" #~ msgstr "Az ai_socktype nem támogatott" #~ msgid "System error" #~ msgstr "Rendszerhiba" #~ msgid "Argument buffer too small" #~ msgstr "A paraméterpuffer túl kicsi" #~ msgid "Processing request in progress" #~ msgstr "Kérés feldolgozása folyamatban" #~ msgid "Request canceled" #~ msgstr "Kérés megszakítva" #~ msgid "Request not canceled" #~ msgstr "Kérés nincs megszakítva" #~ msgid "All requests done" #~ msgstr "Minden kérés kész" #~ msgid "Interrupted by a signal" #~ msgstr "Szignál által megszakítva" #~ msgid "Parameter string not correctly encoded" #~ msgstr "A paraméter-karakterlánc nem megfelelő kódolású" #~ msgid "Unknown error" #~ msgstr "Ismeretlen hiba" #~ msgid "error while writing \"%s\" file" #~ msgstr "hiba \"%s\" fájl írásakor" #~ msgid "cannot change permissions of %s" #~ msgstr "nem lehet %s jogosultságait megváltoztatni" #~ msgid "cannot create directory %s" #~ msgstr "nem lehet létrehozni a(z) %s könyvtárat" #~ msgid "unable to record current working directory" #~ msgstr "az aktuális munkakönyvtár feljegyzése meghiúsult" #~ msgid "failed to return to initial working directory" #~ msgstr "a visszatérés meghiúsult a kiinduló munkakönyvtárba" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "/dev/zero megnyitása olvasásra sikertelen" #~ msgid "cannot create pipe" #~ msgstr "nem hozható létre adatcsatorna" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "”" #~ msgid "^[yY]" #~ msgstr "^[iIyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "%s jogosultságainak beállítása" #~ msgid "Hangup" #~ msgstr "Felfüggesztés" #~ msgid "Interrupt" #~ msgstr "Megszakítás" #~ msgid "Quit" #~ msgstr "Kilépés" #~ msgid "Illegal instruction" #~ msgstr "Illegális utasítás" #~ msgid "Trace/breakpoint trap" #~ msgstr "Nyomkövetési/töréspont csapda" #~ msgid "Aborted" #~ msgstr "Megszakítva" #~ msgid "Floating point exception" #~ msgstr "Lebegőpontos kivétel" #~ msgid "Killed" #~ msgstr "Kilőve" #~ msgid "Bus error" #~ msgstr "Buszhiba" #~ msgid "Segmentation fault" #~ msgstr "Szegmentálási hiba" #~ msgid "Broken pipe" #~ msgstr "Megszakadt csővezeték" #~ msgid "Alarm clock" #~ msgstr "Ébresztőóra" #~ msgid "Terminated" #~ msgstr "Befejeződött" #~ msgid "Urgent I/O condition" #~ msgstr "Sürgős I/O feltétel" #~ msgid "Stopped (signal)" #~ msgstr "Leállítva (szignál)" #~ msgid "Stopped" #~ msgstr "Leállítva" #~ msgid "Continued" #~ msgstr "Folytatva" #~ msgid "Child exited" #~ msgstr "Gyerekfolyamat kilépett" #~ msgid "Stopped (tty input)" #~ msgstr "Leállítva (tty bemenet)" #~ msgid "Stopped (tty output)" #~ msgstr "Leállítva (tty kimenet)" #~ msgid "I/O possible" #~ msgstr "I/O lehetséges" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU-időkorlát túllépve" #~ msgid "File size limit exceeded" #~ msgstr "Fájlméret korlátja túllépve" #~ msgid "Virtual timer expired" #~ msgstr "Virtuális időzítés lejárt" #~ msgid "Profiling timer expired" #~ msgstr "A profilozási időzítő lejárt" #~ msgid "Window changed" #~ msgstr "Ablakméret változott" #~ msgid "User defined signal 1" #~ msgstr "Felhasználói szignál 1" #~ msgid "User defined signal 2" #~ msgstr "Felhasználói szignál 2" #~ msgid "EMT trap" #~ msgstr "EMT csapda" #~ msgid "Bad system call" #~ msgstr "Hibás rendszerhívás" #~ msgid "Stack fault" #~ msgstr "Veremhiba" #~ msgid "Information request" #~ msgstr "Információkérés" #~ msgid "Power failure" #~ msgstr "Tápfeszültség-kimaradás" #~ msgid "Resource lost" #~ msgstr "Erőforrás elveszítve" #~ msgid "Real-time signal %d" #~ msgstr "Valós idejű szignál %d" #~ msgid "Unknown signal %d" #~ msgstr "Ismeretlen szignál %d" #~ msgid "iconv function not usable" #~ msgstr "az iconv függvény nem használható" #~ msgid "iconv function not available" #~ msgstr "az iconv függvény nem elérhető" #~ msgid "character out of range" #~ msgstr "tartományon kívüli karakter" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nem lehet helyi karakterkészletbe átalakítani a következőt: U+%04X" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "az U+%04X nem konvertálható a helyi karakterkészletbe: %s" #~ msgid "invalid user" #~ msgstr "érvénytelen felhasználó" #~ msgid "invalid group" #~ msgstr "érvénytelen csoport" #~ msgid "invalid spec" #~ msgstr "érvénytelen specifikáció" #~ msgid "unable to display error message" #~ msgstr "nem jeleníthető meg hibaüzenet" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Csomagolta: %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Csomagolta: %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "A licenc GPLv3+: a GNU GPL 3. vagy újabb változata <http://gnu.org/" #~ "licenses/gpl.html>\n" #~ "Ez egy szabad szoftver, terjesztheti és/vagy módosíthatja.\n" #~ "NINCS GARANCIA, a törvény által engedélyezett mértékig.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Írta: %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Írta: %s és %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Írta: %s, %s és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Írta: %s, %s, %s\n" #~ "és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Írta: %s, %s, %s,\n" #~ "%s és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Írta: %s, %s, %s,\n" #~ "%s, %s és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Írta: %s, %s, %s,\n" #~ "%s, %s, %s és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Írta: %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Írta: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s és %s\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Írta: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s és mások\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "A hibák a(z) %s címen jelenthetők.\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "A(z) %s hibái a(z) %s címen jelenthetők.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "A(z) %s honlapja: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "A(z) %s honlapja: <http://www.gnu.org/software/%s/>.\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/" #~ "gethelp/>.\n" #~ msgid "stdin" #~ msgstr "szabványos bemenet" #~ msgid "stdout" #~ msgstr "szabványos kimenet" #~ msgid "stderr" #~ msgstr "szabványos hibakimenet" #~ msgid "unknown stream" #~ msgstr "ismeretlen adatfolyam" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "%s újranyitása %s móddal meghiúsult" #~ msgid "string comparison failed" #~ msgstr "karakterlánc-összehasonlítás sikertelen" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "" #~ "Állítsa be az LC_ALL='C' környezeti változót a probléma megkerüléséhez." #~ msgid "The strings compared were %s and %s." #~ msgstr "Az összehasonlított karakterláncok: %s és %s." #~ msgid "invalid %s%s argument `%s'" #~ msgstr "érvénytelen %s%s argumentum: „%s”" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "érvénytelen utótag a(z) %s%s argumentumban: „%s”" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s: a(z) „%s” argumentum túl nagy" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ms.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001071�12116513225�012005� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v���~�����!��������(��������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.0.90 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2003-08-10 16:00+0800 Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com> Language-Team: Malay <translation-team-ms@lists.sourceforge.net> Language: ms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit �Ralat sistem yang tidak diketahui�memori keletihan������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/sk.po����������������������������������������������������������������������������0000644�0000000�0000000�00000023210�12116513224�011635� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Slovak translations for GNU textutils # Copyright (C) 1996 Free Software Foundation, Inc. # Miroslav Vasko <vasko@debian.cz>, 1999 # msgid "" msgstr "" "Project-Id-Version: textutils 2.0.14\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2001-06-08 22:10 +02:00\n" "Last-Translator: Stanislav Meduna <stano@trillian.eunet.sk>\n" "Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8-bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Neznma systmov chyba" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: voba `%s' nie je jednoznan\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: prepna `--%s' nepovouje argument\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: prepna `%c%s' nepovouje argument\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: prepna `%s' vyaduje argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: neznmy prepna `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: neznmy prepna `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: chybn prepna -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: prepna vyaduje argument -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: prepna `-W %s' nie je jednoznan\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: prepna `-W %s' nepovouje argument\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: prepna `%s' vyaduje argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: chybn regulrny vraz: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "chybn trieda znaku `%s'" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "chybn trieda znaku `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: chybn regulrny vraz: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "vyerpan pam" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: chybn regulrny vraz: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "chyba pri vyhadvan pomocou regulrneho vrazu" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: chybn regulrny vraz: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "chyba pri vyhadvan pomocou regulrneho vrazu" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "vyerpan pam" #, fuzzy #~ msgid "invalid argument %s for %s" #~ msgstr "chybn argument %s pre `%s'" #, fuzzy #~ msgid "ambiguous argument %s for %s" #~ msgstr "nejednoznan argument %s pre `%s'" #~ msgid "Valid arguments are:" #~ msgstr "Platn argumenty s:" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Pouitie: %s [PREPNA] [SBOR]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Viac informci zskate prkazom `%s --help'.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ " Chyby v programe oznamujte na adrese <bug-textutils@gnu.org> (iba\n" #~ "anglicky), pripomienky k prekladu zasielajte na adresu <sk@li.org> " #~ "(slovensky)." #, fuzzy #~ msgid "Print program version" #~ msgstr "chyba pri tan" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "prli vea argumentov" #, fuzzy #~ msgid "program error" #~ msgstr "chyba pri tan" #~ msgid "write error" #~ msgstr "chyba pri zpise" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "nie je mon otvori %s pre tanie" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "nie je mon otvori %s pre tanie" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "chyba pri tan %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "chyba pri zpise %s" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "chyba pri tan %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "zlyhalo otvorenie" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: chybn vzor" #, fuzzy #~ msgid "regular empty file" #~ msgstr "zlyhalo tanie" #, fuzzy #~ msgid "regular file" #~ msgstr "zlyhalo tanie" #, fuzzy #~ msgid "directory" #~ msgstr "Adresr: " #, fuzzy #~ msgid "block special file" #~ msgstr "vekos bloku" #, fuzzy #~ msgid "character special file" #~ msgstr "pozcia znaku je nula" #, fuzzy #~ msgid "symbolic link" #~ msgstr "ioctl na `%s' nie je mon vykona" #, fuzzy #~ msgid "weird file" #~ msgstr "zlyhalo tanie" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "tento systm nepodporuje rry" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "tento systm nepodporuje rry" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "tento systm nepodporuje rry" #, fuzzy #~ msgid "System error" #~ msgstr "chyba pri zpise" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Neznma systmov chyba" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: nepovolen prepna -- %c\n" #~ msgid "block size" #~ msgstr "vekos bloku" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existuje, ale nie je adresrom" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "nie je mon zmeni pouvatea a/alebo skupinu %s" #~ msgid "cannot create directory %s" #~ msgstr "nie je mon vytvori adresr %s" #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "nie je mon vojs do adresra, %s" #~ msgid "cannot change permissions of %s" #~ msgstr "nie je mon zmeni prva %s" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "nie je mon vytvori adresr %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "nie je mon zmeni prva %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "nie je mon vytvori adresr %s" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yYaA]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, fuzzy #~ msgid "iconv function not usable" #~ msgstr "nie je mon vypsa U+%04X: funkcia iconv nie je pouiten" #, fuzzy #~ msgid "iconv function not available" #~ msgstr "nie je mon vypsa U+%04X: funkcia iconv nie je dostupn" #, fuzzy #~ msgid "character out of range" #~ msgstr "U+%04X: znak je mimo rozsah" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nie je mon konvertova U+%04X do loklnej znakovej sady" #, fuzzy #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "nie je mon konvertova U+%04X do loklnej znakovej sady" #~ msgid "invalid user" #~ msgstr "neplatn pouvate" #~ msgid "invalid group" #~ msgstr "neplatn skupina" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "nie je mon uri skupinu selnho UID" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ " Tento program je von programov vybavenie; mete ho ri a " #~ "modifikova\n" #~ "poda podmienok Veobecnej verejnej licencie GNU, vydvanej Free " #~ "Software\n" #~ "Foundation; a to bu verzie 2 tejto licencie alebo (poda vho " #~ "uvenia),\n" #~ "ktorejkovek neskorej verzie.\n" #~ "\n" #~ " Tento program je rozirovan v ndeji, e bude uiton, avak BEZ " #~ "AKEJKOVEK\n" #~ "ZRUKY; neposkytuj sa ani odvoden zruky PREDAJNOSTI alebo VHODNOSTI " #~ "PRE\n" #~ "NEJAK KONKRTNY EL. aie podrobnosti njdete vo Veobecnej verejnej\n" #~ "licencii GNU.\n" #~ "\n" #~ " Kpia Veobecnej verejnej licencie GNU mala by dodan spolu s tmto\n" #~ "programom; pokia sa tak nestalo, napte do Free Software Foundation, " #~ "Inc.,\n" #~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgid "Written by %s.\n" #~ msgstr "Napsal %s.\n" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "Napsal %s.\n" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Napsal %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Napsal %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Napsal %s.\n" #, fuzzy #~ msgid "string comparison failed" #~ msgstr "zlyhal stat" #, fuzzy #~ msgid "The strings compared were %s and %s." #~ msgstr "nie je mon vytvori odkaz %s" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/da.po����������������������������������������������������������������������������0000644�0000000�0000000�00000045735�12116513224�011624� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Danish messages for gnulib. # Copyright 1997, 2002, 2003, 2004, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Peter Antman <peter.antman@abc.se>, 1997. # Thomas Olsson <cid95tho@lustudat.student.lu.se>, 1997. # Daniel Resare <daniel@resare.com>, 1999, 2000. # Gran Uddeborg <goeran@uddeborg.se>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010. # Keld Simonsen <keld@keldix.com>, 2011 # # $Revision: 1.8 $ # msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-01-20 22:11+0100\n" "Last-Translator: Keld Simonsen <keld@keldix.com>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Ukendt systemfejl" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: flaget '%s' er flertydigt\n" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: flaget '--%s' tager intet argument\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: flaget '%c%s' tager intet argument\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: flaget '%s' krver et argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: ukendt flag '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: ukendt flag '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ugyldig flag -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: flaget krver et argument -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: flaget '-W %s' er flertydigt\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: flaget '-W %s' tager intet argument\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: flaget '%s' krver et argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Lykkedes" #: lib/regcomp.c:134 msgid "No match" msgstr "Ingen trffer" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Fejlagtigt regulrt udtryk" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Ugyldigt sorteringstegn" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Ugyldigt tegnklassenavn" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Afsluttende baglns skrstreg" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Ugyldig bagudreference" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Ensomt [ eller [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Ensomt ( eller \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Ensomt \\\\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Ugyldigt indhold i \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Ugyldigt intervalslut" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Hukommelse opbrugt" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Fejlagtigt foregende regulrt udtryk" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "For tidlig afslutning af regulrt udtryk" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "For stort regulrt udtryk" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Ensomt ) eller \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Intet foregende regulrt udtryk" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "hukommelsen opbrugt" #~ msgid "invalid argument %s for %s" #~ msgstr "Ugyldigt argument %s til %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "flertydigt argument %s til %s" #~ msgid "Valid arguments are:" #~ msgstr "gyldige argumenter er:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: vrdien p %s er mindre end eller lig med %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT-parameteren krver en vrdi" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT-parameteren skal vre positiv" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Ukendt ARGP_HELP_FMT-parameter" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Snavs i ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Obligatoriske eller valgfrie argumenter til lange flag er ogs " #~ "obligatoriske eller valgfrie for tilsvarende korte flag." #~ msgid "Usage:" #~ msgstr "Brug:" #~ msgid " or: " #~ msgstr " eller: " #~ msgid " [OPTION...]" #~ msgstr " [FLAG...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Forsg med '%s --help' eller '%s --usage' for mere information.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Rapportr fejl til %s.\n" #~ "Send synspunkter p oversttelsen til <dansk@dansk-gruppen.dk>\n" #~ msgid "give this help list" #~ msgstr "giv denne hjlpeliste" #~ msgid "give a short usage message" #~ msgstr "giv en kort meddelelse om brug" #~ msgid "NAME" #~ msgstr "NAVN" #~ msgid "set the program name" #~ msgstr "angiv progravnavnet" #~ msgid "SECS" #~ msgstr "S" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "hng i S sekunder (som standard 3600)" #~ msgid "print program version" #~ msgstr "udskriv programversion" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMFEJL) Ingen version kendt!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: For mange argumenter\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMFEJL) Flaget burde vre blevet genkendt!?" #~ msgid "program error" #~ msgstr "programfejl" #~ msgid "stack overflow" #~ msgstr "stakoverlb" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "kan ikke finde et temporrt katalog, forsg at stte $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kan ikke oprette et temporrt katalog ved brug af skabelonen '%s'" #~ msgid "cannot remove temporary file %s" #~ msgstr "kan ikke fjerne temporr fil %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "kan ikke fjerne temporrt katalog %s" #~ msgid "error closing file" #~ msgstr "fejl ved lukning af fil" #~ msgid "write error" #~ msgstr "skrivefejl" #~ msgid "preserving permissions for %s" #~ msgstr "bevarer rettigheder p %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "fejl ved bning af '%s' for lsning" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "kan ikke bne sikkerhedskopifil '%s' for skrivning" #~ msgid "error reading \"%s\"" #~ msgstr "fejl ved lsning af '%s'" #~ msgid "error writing \"%s\"" #~ msgstr "fejl ved skrivning af '%s'" #~ msgid "error after reading \"%s\"" #~ msgstr "fejl efter lsning af '%s'" #~ msgid "fdopen() failed" #~ msgstr "fdopen() mislykkedes" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C#-overstter ikke fundet, forsg at installere pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "virtuel C#-maskine ikke fundet, forsg at installere pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s-underproces mislykkedes" #~ msgid "regular empty file" #~ msgstr "tom normal fil" #~ msgid "regular file" #~ msgstr "normal fil" #~ msgid "directory" #~ msgstr "katalog" #~ msgid "block special file" #~ msgstr "blokspecialfil" #~ msgid "character special file" #~ msgstr "tegnspecialfil" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "symbolsk lnke" #~ msgid "socket" #~ msgstr "sokkel (socket)" #~ msgid "message queue" #~ msgstr "meddelelsek" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "objekt af delt hukommelse" #~ msgid "typed memory object" #~ msgstr "objekt af typet hukommelse" #~ msgid "weird file" #~ msgstr "mrkelig fil" #~ msgid "Address family for hostname not supported" #~ msgstr "Adressefamilien for vrtsnavnet understttes ikke" #~ msgid "Temporary failure in name resolution" #~ msgstr "Midlertidig fejl i navneopslag" #~ msgid "Bad value for ai_flags" #~ msgstr "Fejlagtig vrdi for ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Ureparrbar fejl i navneopslag" #~ msgid "ai_family not supported" #~ msgstr "ai_family understttes ikke" #~ msgid "Memory allocation failure" #~ msgstr "Hukommelsesallokeringsfejl" #~ msgid "No address associated with hostname" #~ msgstr "Ingen adresse associeret med vrtsnavnet" #~ msgid "Name or service not known" #~ msgstr "Navn eller tjeneste ikke kendt" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname understttes ikke for ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype understttes ikke" #~ msgid "System error" #~ msgstr "Systemfejl" #~ msgid "Argument buffer too small" #~ msgstr "Argumentbufferen for lille" #~ msgid "Processing request in progress" #~ msgstr "Bearbejder pgende anmodning" #~ msgid "Request canceled" #~ msgstr "Anmodning annuleret" #~ msgid "Request not canceled" #~ msgstr "Anmodning ikke annuleret" #~ msgid "All requests done" #~ msgstr "Alle anmodninger udfrt" #~ msgid "Interrupted by a signal" #~ msgstr "Afbrudt af et signal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parameterstreng ikke korrekt kodet" #~ msgid "Unknown error" #~ msgstr "Ukendt fejl" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ugyldigt source_version-argument til compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ugyldigt target_version-argument til compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "det gik ikke at oprette '%s'" #~ msgid "error while writing \"%s\" file" #~ msgstr "fejl ved skrivning af filen '%s'" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Javaoverstter ikke fundet, forsg at installere gcj eller stte $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuel Javamaskine ikke fundet, forsg at installere gij eller stte " #~ "$JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "%s-underproces I/O-fejl" #~ msgid "cannot change permissions of %s" #~ msgstr "kan ikke ndre rettigheder p %s" #~ msgid "cannot create directory %s" #~ msgstr "kan ikke oprette kataloget %s" #~ msgid "unable to record current working directory" #~ msgstr "kan ikke notere aktuelt arbejdskatalog" #~ msgid "failed to return to initial working directory" #~ msgstr "kunne ikke g tilbage til det oprindelige arbejdskatalog" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Mislykkedes med at bne /dev/zero for lsning" #~ msgid "creation of reading thread failed" #~ msgstr "oprettelse af lsetrd mislykkedes" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "kan ikke opstte ikke-blokerende I/O til %s-underproces" #~ msgid "communication with %s subprocess failed" #~ msgstr "kommunikation med %s-underproces mislykkedes" #~ msgid "write to %s subprocess failed" #~ msgstr "skrivning til %s-underproces mislykkedes" #~ msgid "read from %s subprocess failed" #~ msgstr "lsning fra %s-underproces mislykkedes" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "underproces %s afsluttet med slutstatus %d" #~ msgid "creation of threads failed" #~ msgstr "oprettelse af trde mislykkedes" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s-underproces afslutted med slutstatus %d" #~ msgid "cannot create pipe" #~ msgstr "kan ikke oprette datakanal" #~ msgid "`" #~ msgstr "'" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yYjJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "ndrer rettigheder p %s" #~ msgid "Hangup" #~ msgstr "Lagt p" #~ msgid "Interrupt" #~ msgstr "Afbrudt" #~ msgid "Quit" #~ msgstr "Afslut" #~ msgid "Illegal instruction" #~ msgstr "Utilladt instruktion" #~ msgid "Trace/breakpoint trap" #~ msgstr "Sporings-/afbrudspunktsflde" #~ msgid "Aborted" #~ msgstr "Afbrudt (abort)" #~ msgid "Floating point exception" #~ msgstr "Undtagelse ved flydende tal" #~ msgid "Killed" #~ msgstr "Drbt" #~ msgid "Bus error" #~ msgstr "Busfejl" #~ msgid "Segmentation fault" #~ msgstr "Segmenteringsfejl" #~ msgid "Broken pipe" #~ msgstr "Brudt datakanal" #~ msgid "Alarm clock" #~ msgstr "Alarmklokke" #~ msgid "Terminated" #~ msgstr "Afsluttet" #~ msgid "Urgent I/O condition" #~ msgstr "Hastende I/O-situation" #~ msgid "Stopped (signal)" #~ msgstr "Stoppet (signal)" #~ msgid "Stopped" #~ msgstr "Stoppet" #~ msgid "Continued" #~ msgstr "Genoptaget" #~ msgid "Child exited" #~ msgstr "Barn afsluttede" #~ msgid "Stopped (tty input)" #~ msgstr "Stoppet (terminallsning)" #~ msgid "Stopped (tty output)" #~ msgstr "Stoppet (terminalskrivning)" #~ msgid "I/O possible" #~ msgstr "I/O muligt" #~ msgid "CPU time limit exceeded" #~ msgstr "Grnse p CPU-tid overskredet" #~ msgid "File size limit exceeded" #~ msgstr "Grnse p filstrrelse overskredet" #~ msgid "Virtual timer expired" #~ msgstr "Alarmklokke - virtuel tid - udlb" #~ msgid "Profiling timer expired" #~ msgstr "Profileringsklokke udlb" #~ msgid "Window changed" #~ msgstr "ndret vindue" #~ msgid "User defined signal 1" #~ msgstr "Brugersignal 1" #~ msgid "User defined signal 2" #~ msgstr "Brugersignal 2" #~ msgid "EMT trap" #~ msgstr "Emulatorflde" #~ msgid "Bad system call" #~ msgstr "Fejlagtigt systemkald" #~ msgid "Stack fault" #~ msgstr "Stakfejl" #~ msgid "Information request" #~ msgstr "Informationsanmodning" #~ msgid "Power failure" #~ msgstr "Strmafbrud" #~ msgid "Resource lost" #~ msgstr "Tabt resurse" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "fejl ved skrivning til en lukket datakanal eller sokkel" #~ msgid "Real-time signal %d" #~ msgstr "Realtidsignal %d" #~ msgid "Unknown signal %d" #~ msgstr "Ukendt signal %d" #~ msgid "iconv function not usable" #~ msgstr "iconv-funktion ikke brugbar" #~ msgid "iconv function not available" #~ msgstr "iconv-funktion ikke tilgngelig" #~ msgid "character out of range" #~ msgstr "tegn udenfor interval" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnst" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnst: %s" #~ msgid "invalid user" #~ msgstr "ugyldig bruger" #~ msgid "invalid group" #~ msgstr "ugyldig gruppe" #~ msgid "invalid spec" #~ msgstr "ugyldig specifikation" #~ msgid "unable to display error message" #~ msgstr "kan ikke vise fejlmeddelelse" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Pakket af %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Pakket af %s\n" #~ msgid "(C)" #~ msgstr "" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/" #~ "gpl.html>.\n" #~ "Dette er frit programmel: du m ndre og videredistribuere det.\n" #~ "Der gives INGEN GARANTI, s vidt lov tillader.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Skrevet af %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Skrevet af %s og %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Skrevet af %s, %s og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s\n" #~ "og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s,\n" #~ "%s og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s,\n" #~ "%s, %s og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s,\n" #~ "%s, %s, %s og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s og %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Skrevet af %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s med flere.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Rapportr fejl til: %s\n" #~ "Sende synspunkter p oversttelsen til: tp-sv@listor.tp-sv.se\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Rapportr %s-fejl til: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s hjemmeside: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s hjemmeside: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Almindelig hjlp til at bruge GNU-programmer: <http://www.gnu.org/gethelp/" #~ ">\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle mislykkedes" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "kan ikke genskabe fb %d: dup2 mislykkedes" #~ msgid "%s subprocess" #~ msgstr "%s-underproces" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-underproces fik delggende signal %d" #~ msgid "stdin" #~ msgstr "standard ind" #~ msgid "stdout" #~ msgstr "standard ud" #~ msgid "stderr" #~ msgstr "standard fejl" #~ msgid "unknown stream" #~ msgstr "ukendt strm" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "kunne ikke genbne %s i tilstand %s" #~ msgid "string comparison failed" #~ msgstr "strengsammenligning mislykkedes" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "St LC_ALL='C' for at omg problemet." #~ msgid "The strings compared were %s and %s." #~ msgstr "De sammenlignede strenge var %s og %s." #~ msgid "cannot perform formatted output" #~ msgstr "kan ikke udfre formateret udskrift" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "fejlagtigt %s%s-argument '%s'" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "fejlagtigt suffiks i %s%s-argument '%s'" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s argument '%s' er for stort" �����������������������������������wdiff-1.2.1/lib/po/insert-header.sin����������������������������������������������������������������0000644�0000000�0000000�00000001240�11744500575�014137� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/vi.po����������������������������������������������������������������������������0000644�0000000�0000000�00000052316�12116513224�011647� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Vietnamese translation for GNU Lib. # Copyright © 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Clytie Siddall <clytie@riverland.net.au>, 2006-2010. # Trần Ngọc Quân <vnwildman@gmail.com>, 2012. # msgid "" msgstr "" "Project-Id-Version: gnulib-3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-03-30 14:47+0700\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" "X-Poedit-Language: Vietnamese\n" "X-Poedit-Country: VIET NAM\n" "X-Poedit-SourceCharset: utf-8\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Gặp lỗi hệ thống lạ" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: tùy chọn '%s' chưa rõ ràng; khả năng là:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: tùy chọn « --%s » không cho phép đối số\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: tùy chọn '--%s' yêu cầu một đối số\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: không nhận ra tùy chọn « --%s »\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: không nhận ra tùy chọn « %c%s »\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: tùy chọn không hợp lệ -- « %c »\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: tùy chọn yêu cầu một đối số -- « %c »\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: tùy chọn « -W %s » vẫn mơ hồ\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: tùy chọn « -W %s » không cho phép đối số\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: tùy chọn '-W %s' yêu cầu một đối số\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Thành công" #: lib/regcomp.c:134 msgid "No match" msgstr "Không khớp" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Biểu thức chính quy không hợp lệ" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Ký tự đối chiếu không hợp lệ" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Tên loại ký tự không hợp lệ" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Có xuyệc ngược theo sau" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Tham chiếu ngược không hợp lệ" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Chưa khớp ký tự « [ » hay « [^ »" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Chưa khớp ký tự « ( » hay « \\( »" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Chưa khớp ký tự « \\{ »" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Nội dụng « \\{\\} » không hợp lệ" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Kết thúc phạm vi không hợp lệ" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Hết bộ nhớ hoàn toàn" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Biểu thức chính quy đi trước không hợp lệ" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Biểu thức chính quy kết thúc quá sớm" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Biểu thức chính quy quá lớn" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Chưa khớp ký tự « ) » hay « \\) »" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Không có biểu thức chính quy đi trước" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "hết bộ nhớ hoàn toàn" #~ msgid "invalid argument %s for %s" #~ msgstr "đối sô không hợp lệ %s cho %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "đối số mơ hồ %s cho %s" #~ msgid "Valid arguments are:" #~ msgstr "Các đối số hợp lệ:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: giá trị %s value nhỏ hơn hay bằng %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: tham số « ARGP_HELP_FMT » cần thiết giá trị" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: tham số « ARGP_HELP_FMT » phải là số dương" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Không biết tham số « ARGP_HELP_FMT »" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Gặp rác trong « ARGP_HELP_FMT » : %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Tất cả đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với " #~ "tùy chọn ngắn tương ứng." #~ msgid "Usage:" #~ msgstr "Cách sử dụng:" #~ msgid " or: " #~ msgstr " hoặc " #~ msgid " [OPTION...]" #~ msgstr " [TÙY_CHỌN...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Hãy thử lệnh « %s --help » (trợ giúp) hay « %s --usage » (cách sử dụng) " #~ "để xem thông tin thêm.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Hãy thông báo lỗi cho %s\n" #~ msgid "give this help list" #~ msgstr "hiển thị trợ giúp này" #~ msgid "give a short usage message" #~ msgstr "hiển thị thông điệp cách sử dụng ngắn" #~ msgid "NAME" #~ msgstr "TÊN" #~ msgid "set the program name" #~ msgstr "đặt tên chương trình" #~ msgid "SECS" #~ msgstr "GIÂY" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "treo trong vòng GIÂY giây (mặc định là 3600)" #~ msgid "print program version" #~ msgstr "in ra phiên bản chương trình" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(LỖI CHƯƠNG TRÌNH) Không có phiên bản đã biết ?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Quá nhiều đối số\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(LỖI CHƯƠNG TRÌNH) Nên nhận biệt tùy chọn mà chưa?" #~ msgid "program error" #~ msgstr "lỗi chương trình" #~ msgid "stack overflow" #~ msgstr "tràn động" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "không tìm thấy thư mục tạm thời, hãy thử đặt biến môi trường $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "không thể tạo một thư mục tạm thời dùng mẫu « %s »" #~ msgid "cannot remove temporary file %s" #~ msgstr "không thể gỡ bỏ tập tin tạm thời %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "không thể gỡ bỏ thư mục tạm thời %s" #~ msgid "error closing file" #~ msgstr "lỗi đóng tập tin" #~ msgid "write error" #~ msgstr "lỗi ghi" #~ msgid "preserving permissions for %s" #~ msgstr "đang bảo tồn quyền hạn cho %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "gặp lỗi khi mở « %s » để đọc" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "không thể mở tập tin sao lưu « %s » để ghi" #~ msgid "error reading \"%s\"" #~ msgstr "gặp lỗi khi đọc « %s»" #~ msgid "error writing \"%s\"" #~ msgstr "gặp lỗi khi ghi « %s»" #~ msgid "error after reading \"%s\"" #~ msgstr "gặp lỗi sau khi đọc « %s»" #~ msgid "fdopen() failed" #~ msgstr "fdopen() bị lỗi" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Không tìm thấy trình biên dịch C# nên thử cài đặt pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Không tìm thấy cơ chế ảo C# nên thử cài đặt pnet" #~ msgid "%s subprocess failed" #~ msgstr "Tiến trình con %s bị lỗi" #~ msgid "regular empty file" #~ msgstr "tập tin rỗng kiểu thường" #~ msgid "regular file" #~ msgstr "tập tin thông thường" #~ msgid "directory" #~ msgstr "thư mục" #~ msgid "block special file" #~ msgstr "tập tin đặc biệt khối" #~ msgid "character special file" #~ msgstr "tập tin đặc biệt ký tự" #~ msgid "fifo" #~ msgstr "fifo (vào trước, ra trước)" #~ msgid "symbolic link" #~ msgstr "liên kết tượng trưng" #~ msgid "socket" #~ msgstr "ổ cắm" #~ msgid "message queue" #~ msgstr "hàng đời thông điệp" #~ msgid "semaphore" #~ msgstr "cờ hiệu" #~ msgid "shared memory object" #~ msgstr "đối tượng bộ nhớ dùng chung" #~ msgid "typed memory object" #~ msgstr "đốí tượng bộ nhớ đánh kiểu" #~ msgid "weird file" #~ msgstr "tập tin lạ" #~ msgid "Address family for hostname not supported" #~ msgstr "Họ địa chỉ dành cho tên máy không được hỗ trợ" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tạm thời không thể quyết định tên" #~ msgid "Bad value for ai_flags" #~ msgstr "Giá trị sai đối với « ai_flags » (cờ)" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Lỗi không thể phục hồi khi quyết định tên" #~ msgid "ai_family not supported" #~ msgstr "Không hỗ trợ « ai_family »" #~ msgid "Memory allocation failure" #~ msgstr "Lỗi cấp phát bộ nhớ" #~ msgid "No address associated with hostname" #~ msgstr "Không có địa chỉ liên quan đến tên máy" #~ msgid "Name or service not known" #~ msgstr "Không nhận ra tên hay dịch vụ" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Không hỗ trợ tên máy phục vụ đối với « ai_socktype » (kiểu ổ cắm)" #~ msgid "ai_socktype not supported" #~ msgstr "Không hỗ trợ « ai-socktype » (kiểu ổ cắm)" #~ msgid "System error" #~ msgstr "Lỗi hệ thống" #~ msgid "Argument buffer too small" #~ msgstr "Vùng đệm đối số quá ngắn" #~ msgid "Processing request in progress" #~ msgstr "Yêu cầu xử lý đang chạy" #~ msgid "Request canceled" #~ msgstr "Yêu cầu bị thôi" #~ msgid "Request not canceled" #~ msgstr "Chưa thôi yêu cầu" #~ msgid "All requests done" #~ msgstr "Mọi yêu cầu hoàn tất" #~ msgid "Interrupted by a signal" #~ msgstr "bị tín hiệu gián đoạn" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Chuỗi tham số không phải được mã hóa đúng" #~ msgid "Unknown error" #~ msgstr "Gặp lỗi không rõ" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "" #~ "đối số phiên bản nguồn « source_version » không hợp lệ đối với hạn Java " #~ "biên dịch « compile_java_class »" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "" #~ "đối số phiên bản đích « source_version » không hợp lệ đối với hạn Java " #~ "biên dịch « compile_java_class »" #~ msgid "failed to create \"%s\"" #~ msgstr "lỗi tạo « %s »" #~ msgid "error while writing \"%s\" file" #~ msgstr "gặp lỗi khi ghi tập tin « %s»" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Không tìm thấy trình biên dịch Java nên thử cài đặt trình « gcj » hoặc " #~ "đặt biến môi trường « $JAVAC »." #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Không tìm thấy cơ chế ảo Java nên thử cài đặt trình « gcj » hoặc đặt biến " #~ "môi trường « $JAVAC »." #~ msgid "%s subprocess I/O error" #~ msgstr "Lỗi V/R tiến trình phụ %s" #~ msgid "cannot change permissions of %s" #~ msgstr "không thể thay đổi quyền hạn của %s" #~ msgid "cannot create directory %s" #~ msgstr "không thể tạo thư mục %s" #~ msgid "unable to record current working directory" #~ msgstr "không thể ghi lưu thư mục làm việc hiện thời" #~ msgid "failed to return to initial working directory" #~ msgstr "chưa trở về thư mục làm việc ban đầu" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Lỗi mở thiết bị « /dev/zero » để đọc" #~ msgid "creation of reading thread failed" #~ msgstr "lỗi tạo nhánh đọc" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "không thể thiết lập V/R không chặn đối với tiến trình con %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "lỗi liên lạc với tiến trình con %s" #~ msgid "write to %s subprocess failed" #~ msgstr "lỗi ghi vào tiến trình con %s" #~ msgid "read from %s subprocess failed" #~ msgstr "lỗi đọc từ tiến trình con %s" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "tiến trình con %s đã kết thúc với mã thoát %d" #~ msgid "creation of threads failed" #~ msgstr "lỗi tạo nhánh" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "tiến trình con %s đã kết thúc với mã thoát %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" #~ msgid "`" #~ msgstr "« " #~ msgid "'" #~ msgstr " »" #~ msgid "^[yY]" #~ msgstr "^[cC]" #~ msgid "^[nN]" #~ msgstr "^[kK]" #~ msgid "setting permissions for %s" #~ msgstr "đang đặt quyền hạn về %s" #~ msgid "Hangup" #~ msgstr "Ngừng nói" #~ msgid "Interrupt" #~ msgstr "Ngắt" #~ msgid "Quit" #~ msgstr "Thoát" #~ msgid "Illegal instruction" #~ msgstr "Câu lệnh sai" #~ msgid "Trace/breakpoint trap" #~ msgstr "Bẫy vết/điểm ngắt" #~ msgid "Aborted" #~ msgstr "Bị hủy bỏ" #~ msgid "Floating point exception" #~ msgstr "Ngoại lệ điểm phù động" #~ msgid "Killed" #~ msgstr "Bị buộc kết thúc" #~ msgid "Bus error" #~ msgstr "Lỗi mạch nối" #~ msgid "Segmentation fault" #~ msgstr "Lỗi phân đoạn" #~ msgid "Broken pipe" #~ msgstr "Ống dẫn bị ngắt" #~ msgid "Alarm clock" #~ msgstr "Đồng hồ báo động" #~ msgid "Terminated" #~ msgstr "Bị chấm dứt" #~ msgid "Urgent I/O condition" #~ msgstr "Điều kiện V/R khẩn" #~ msgid "Stopped (signal)" #~ msgstr "Bị ngừng (ký hiệu)" #~ msgid "Stopped" #~ msgstr "Bị ngừng" #~ msgid "Continued" #~ msgstr "Đã tiếp tục" #~ msgid "Child exited" #~ msgstr "Tiến trình con đã thoát" #~ msgid "Stopped (tty input)" #~ msgstr "Bị ngừng (đầu vào TTY)" #~ msgid "Stopped (tty output)" #~ msgstr "Bị ngừng (đầu ra TTY)" #~ msgid "I/O possible" #~ msgstr "Có thể V/R" #~ msgid "CPU time limit exceeded" #~ msgstr "Vượt quá thời hạn CPU" #~ msgid "File size limit exceeded" #~ msgstr "Vượt quá giới hạn kích cỡ tập tin" #~ msgid "Virtual timer expired" #~ msgstr "Hàm đếm thời gian ảo đã hết hạn" #~ msgid "Profiling timer expired" #~ msgstr "Hàm đếm thời gian đo hiệu năng sử dụng đã hết hạn" #~ msgid "Window changed" #~ msgstr "Cửa sổ bị thay đổi" #~ msgid "User defined signal 1" #~ msgstr "Tín hiệu do người dùng xác định 1" #~ msgid "User defined signal 2" #~ msgstr "Tín hiệu do người dùng xác định 2" #~ msgid "EMT trap" #~ msgstr "Bẫy EMT" #~ msgid "Bad system call" #~ msgstr "Sai gọi hệ thống" #~ msgid "Stack fault" #~ msgstr "Lỗi đống" #~ msgid "Information request" #~ msgstr "Yêu cầu thông tin" #~ msgid "Power failure" #~ msgstr "Bị cúp điện đột ngột" #~ msgid "Resource lost" #~ msgstr "Tài nguyên bị mất" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "lỗi ghi vào một đường ống hay ổ cắm bị đóng" #~ msgid "cannot create pipe" #~ msgstr "không thể tạo ống dẫn" #~ msgid "Real-time signal %d" #~ msgstr "Tín hiệu thời gian thật %d" #~ msgid "Unknown signal %d" #~ msgstr "Không rõ tín hiệu %d" #~ msgid "iconv function not usable" #~ msgstr "hàm iconv vô ích" #~ msgid "iconv function not available" #~ msgstr "không có hàm iconv" #~ msgid "character out of range" #~ msgstr "Ký tự ở ngoại phạm vi" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "không thể chuyển đổi U+%04X sang bộ ký tự địa phương" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "không thể chuyển đổi U+%04X sang bộ ký tự địa phương: %s" #~ msgid "invalid user" #~ msgstr "người dùng không hợp lệ" #~ msgid "invalid group" #~ msgstr "nhóm không hợp lệ" #~ msgid "invalid spec" #~ msgstr "đặc tả không hợp lệ" #~ msgid "unable to display error message" #~ msgstr "không thể hiển thị thông điệp lỗi" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Gói đóng bởi %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Gói đóng bởi %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "GPLv3+: Giấy Phép Công Cộng GNU, phiên bản 3 hay sau <http://gnu.org/" #~ "licenses/gpl.html>\n" #~ "Đây là phần mềm tự do : bạn có quyền thay đổi và phát hành lại nó.\n" #~ "KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Tác giả: %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Tác giả: %s và %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Tác giả: %s, %s, và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Tác giả: %s, %s, %s,\n" #~ "và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Tác giả: %s, %s, %s,\n" #~ "%s, và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Tác gia: %s, %s, %s,\n" #~ "%s, %s, và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Tác giả: %s, %s, %s,\n" #~ "%s, %s, %s, và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Tác giả: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Tác giả: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, và %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Tác giả: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, và các người khác.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Hãy thông báo lỗi nào cho : %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Hãy thông báo lỗi %s nào cho : %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Trang chủ %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Trang chủ %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Trợ giúp chung về cách sử dụng phần mềm GNU: <http://www.gnu.org/gethelp/" #~ ">\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle bị lỗi" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "không thể phục hồi bộ mô tả tập tin %d: « dup2 » bị lỗi" #~ msgid "%s subprocess" #~ msgstr "Tiến trình con %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "Tiến trình con %s đã nhận tín hiệu nghiêm trọng %d" #~ msgid "stdin" #~ msgstr "đầu vào tiêu chuẩn" #~ msgid "stdout" #~ msgstr "đầu ra tiêu chuẩn" #~ msgid "stderr" #~ msgstr "đầu lỗi tiêu chuẩn" #~ msgid "unknown stream" #~ msgstr "không nhận ra luồng" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "lỗi mở lại %s với chế độ %s" #~ msgid "string comparison failed" #~ msgstr "lỗi so sánh chuỗi" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Hãy lập « LC_ALL='C' » để chỉnh sửa vấn đề đó." #~ msgid "The strings compared were %s and %s." #~ msgstr "Hai chuỗi được so sánh là %s và %s." #~ msgid "cannot perform formatted output" #~ msgstr "không thể thực hiện kết xuất có định dạng" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "đối số %s%s không hợp lệ « %s »" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "hậu tố không hợp lệ trong đối số %s%s « %s »" #~ msgid "%s%s argument `%s' too large" #~ msgstr "Đối số %s%s « %s » quá lớn" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/fi.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005734�12116513225�011776� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��#�����-�����=���5��-���s��*�����.�����0�����+���, ��+���X ��&��� ��&��� ����� ����� ��#��� ��#���, ��/���P ����� ��$��� �� ��� �� ��� ��)��� ��.��� ��$���4 �����Y �����b �����r ����� ����� ����� �� ��� �� ��� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-12-10 19:05+0200 Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com> Language-Team: Finnish <translation-team-fi@lists.sourceforge.net> Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural= ( n!=1) ; �%s: epäkelpo valitsin -- ’%c’ �%s: valitsin ’%c%s’ ei salli argumenttia �%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:�%s: valitsin ’--%s’ ei salli argumenttia �%s: valitsin ’--%s’ vaatii argumentin �%s: valitsin ’-W %s’ ei salli argumenttia �%s: valitsin ’-W %s’ ei ole yksiselitteinen �%s: valitsin ’-W %s’ vaatii argumentin �%s: valitsin vaatii argumentin -- ’%c’ �%s: tunnistamaton valitsin ’%c%s’ �%s: tunnistamaton valitsin ’--%s’ �Virheellinen paluuviite�Virheellinen merkkiluokkanimi�virheellinen collation-merkkiluokka�Kohteen \{\} virheellinen sisältö�Virheellinen edeltävä säännöllinen lauseke�Virheellinen lukualueen loppu�Virheellinen säännöllinen lauseke�Muisti loppui�Ei osumaa�Ei edellistä säännöllistä lauseketta�Ennenaikainen säännöllisen lausekkeen loppu�Säännöllinen lauseke on liian iso�Onnistui�Jälkikenoviiva�Tuntematon järjestelmävirhe�pariton ( tai \(�Pariton ) tai \)�Pariton [ tai [^�Pariton \{�muisti loppui�������������������������������������wdiff-1.2.1/lib/po/hu.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005411�12116513225�012004� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)����������������,�����,�����-����� ���5��(���V��������������������������������$���'�����L�����^�����y������������#����������������������� �����!�����3�����E�� ���W�����d����u��(���B��9���k��9�����7�����-�����6���E��)���|��)����������"�����%��� �����9 ��.���W ����� ��#��� ����� ����� ��&��� ��/��� ��!���B �� ���d �����n ����� ����� ����� ����� ����� ����� ������������������������� ���������������������������� ����������������������������������� ����������������� ����������������������������� ����%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '--%s' doesn't allow an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2010-02-23 19:52+0100 Last-Translator: Gabor Kelemen <kelemeng@gnome.hu> Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net> Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.11.4 �%s: érvénytelen kapcsoló -- „%c” �%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot �%s: a(z) „--%s” kapcsoló nem enged meg argumentumot �%s: a „-W %s” kapcsoló nem enged meg argumentumot �%s: a „-W %s” kapcsoló nem egyértelmű �%s: a kapcsoló egy argumentumot igényel -- „%c” �%s: a(z) „%c%s” kapcsoló ismeretlen �%s: a(z) „--%s” kapcsoló ismeretlen �Érvénytelen visszahivatkozás�Érvénytelen karakterosztálynév�Érvénytelen leválogatási karakter�A \{\} tartalma érvénytelen�Érvénytelen megelőző szabályos kifejezés�Érvénytelen tartományvég�Érvénytelen szabályos kifejezés�Elfogyott a memória�Nincs találat�Nincs megelőző szabályos kifejezés�A szabályos kifejezés túl korán véget ért�A szabályos kifejezés túl nagy�Sikerült�Záró visszaper�Ismeretlen rendszerhiba�Pár nélküli ( vagy \(�Pár nélküli ) vagy \)�Pár nélküli [ vagy [^�Pár nélküli \{�elfogyott a memória��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/cs.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000006200�12116513225�011772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��&�����;�����8���V��;�����.�����<�����0���7 ��/���h ��/��� ��%��� ��%��� ����� �����- ��!���L �����n ��(��� ����� ����� ����� ����� ��'��� ��(���1 ��&���Z ����� ����� ����� ��+��� ��+��� ��+��� ��$���B �����g �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-12-04 08:50+0100 Last-Translator: Marek Černocký <marek@manet.cz> Language-Team: Czech <translation-team-cs@lists.sourceforge.net> Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; �%s: neplatný přepínač -- „%c“ �%s: přepínač „%c%s“ musí být zadán bez argumentu �%s: přepínač „%s“ není jednoznačný; možnosti:�%s: přepínač „--%s“ musí být zadán bez argumentu �%s: přepínač „--%s“ vyžaduje argument �%s: přepínač „-W %s“ musí být zadán bez argumentu �%s: přepínač „-W %s“ není jednoznačný �%s: přepínač „-W %s“ vyžaduje argument �%s: přepínač vyžaduje argument -- „%c“ �%s: neznámý přepínač „%c%s“ �%s: neznámý přepínač „--%s“ �Neplatný zpětný odkaz�neplatný název třídy znaku�neplatný znak pro porovnávání�Neplatný obsah \{\}�Neplatný předchozí regulární výraz�Neplatný konec rozsahu�neplatný regulární výraz�Paměť byla vyčerpána�Žádná shoda�Žádný předchozí regulární výraz�Předčasný konec regulárního výrazu�Regulární výraz je příliš velký�Úspěch�Zpětné lomítko na konci�Neznámá chyba systému�Chybí odpovídající závorka k ( nebo \(�Chybí odpovídající závorka k ) nebo \)�Chybí odpovídající závorka k [ nebo [^�Chybí odpovídající závorka k \{�paměť byla vyčerpána�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/nl.po����������������������������������������������������������������������������0000644�0000000�0000000�00000050022�12116513224�011632� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Dutch translations for gnulib. # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Erick Branderhorst <branderh@debian.org>, 1996. # Ivo Timmermans <ivo@o2w.nl>, 2000. # Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2004, 2005. # Erwin Poeze <erwin.poeze@gmail.com>, 2009, 2010. # Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: gnulib-3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-22 20:37+0200\n" "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Onbekende systeemfout" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: optie '%s' is niet eenduidig; mogelijkheden zijn:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: optie '--%s' vereist een argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: onbekende optie '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ongeldige optie -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: optie vereist een argument -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: optie '-W %s' vereist een argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Gelukt" #: lib/regcomp.c:134 msgid "No match" msgstr "Geen overeenkomsten" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Ongeldige reguliere expressie" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Ongeldig samengesteld teken" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Ongeldige tekenklassenaam" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Backslash aan het eind" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Ongeldige terugverwijzing" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Ongepaarde [ of [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Ongepaarde ( of \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Ongepaarde \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Ongeldige inhoud van \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Ongeldig bereikeinde" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Onvoldoende geheugen beschikbaar" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Ongeldige voorafgaande reguliere expressie" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Voortijdig einde van reguliere expressie" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Reguliere expressie is te groot" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Ongepaarde ) of \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Geen eerdere reguliere expressie" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "onvoldoende geheugen beschikbaar" #~ msgid "invalid argument %s for %s" #~ msgstr "ongeldig argument %s van %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argument %s van %s is niet eenduidig" #~ msgid "Valid arguments are:" #~ msgstr "Geldige argumenten zijn:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: waarde voor '%s' is kleiner of gelijk aan %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Parameter in ARGP_HELP_FMT vereist een waarde" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Onbekende parameter in ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Rommel in ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Een argument dat verplicht of optioneel is voor een lange optie, is dat\n" #~ "ook voor de overeenkomstige korte optie." #~ msgid "Usage:" #~ msgstr "Gebruik: " #~ msgid " or: " #~ msgstr " of: " #~ msgid " [OPTION...]" #~ msgstr " [OPTIE...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Rapporteer gebreken in het programma aan %s;\n" #~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #~ msgid "give this help list" #~ msgstr "deze hulptekst tonen" #~ msgid "give a short usage message" #~ msgstr "een korte gebruikssamenvatting tonen" #~ msgid "NAME" #~ msgstr "NAAM" #~ msgid "set the program name" #~ msgstr "de programmanaam instellen" #~ msgid "SECS" #~ msgstr "SECONDEN" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "dit aantal seconden pauzeren (standaard 3600)" #~ msgid "print program version" #~ msgstr "programmaversie tonen" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "**Interne programmafout**: geen versie bekend!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Te veel argumenten\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "**Interne programmafout**: optie had herkend moeten worden!?" #~ msgid "program error" #~ msgstr "programmafout" #~ msgid "stack overflow" #~ msgstr "stack-overloop" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "kan geen tijdelijke map vinden; zet $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kan met sjabloon '%s' geen tijdelijke map aanmaken" #~ msgid "cannot remove temporary file %s" #~ msgstr "kan tijdelijk bestand '%s' niet verwijderen" #~ msgid "cannot remove temporary directory %s" #~ msgstr "kan tijdelijke map '%s' niet verwijderen" #~ msgid "error closing file" #~ msgstr "fout bij sluiten van bestand" #~ msgid "write error" #~ msgstr "schrijffout" #~ msgid "preserving permissions for %s" #~ msgstr "toegangsrechten van '%s' worden behouden" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "fout bij openen van '%s' voor lezen" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "kan reservebestand '%s' niet openen voor schrijven" #~ msgid "error reading \"%s\"" #~ msgstr "fout bij lezen van '%s'" #~ msgid "error writing \"%s\"" #~ msgstr "fout bij schrijven van '%s'" #~ msgid "error after reading \"%s\"" #~ msgstr "fout na lezen van '%s'" #~ msgid "fdopen() failed" #~ msgstr "fdopen() is mislukt" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C#-compiler is niet gevonden; installeer 'pnet'" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "virtuele C#-machine is niet gevonden; installeer 'pnet'" #~ msgid "%s subprocess failed" #~ msgstr "subproces %s is mislukt" #~ msgid "regular empty file" #~ msgstr "leeg normaal bestand" #~ msgid "regular file" #~ msgstr "normaal bestand" #~ msgid "directory" #~ msgstr "map" #~ msgid "block special file" #~ msgstr "blok-apparaat" #~ msgid "character special file" #~ msgstr "byte-apparaat" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "symbolische koppeling" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "berichtenwachtrij" #~ msgid "semaphore" #~ msgstr "semafoor" #~ msgid "shared memory object" #~ msgstr "gedeeld geheugenobject" #~ msgid "typed memory object" #~ msgstr "zelfstandig geheugenobject" #~ msgid "weird file" #~ msgstr "merkwaardig bestand" #~ msgid "Address family for hostname not supported" #~ msgstr "Adresfamilie voor hostnaam wordt niet ondersteund" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tijdelijk probleem in naamsherleiding" #~ msgid "Bad value for ai_flags" #~ msgstr "Ongeldige waarde voor 'ai_flags'" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Onherstelbaar probleem in naamsherleiding" #~ msgid "ai_family not supported" #~ msgstr "'ai_family' wordt niet ondersteund" #~ msgid "Memory allocation failure" #~ msgstr "Onvoldoende geheugen beschikbaar" #~ msgid "No address associated with hostname" #~ msgstr "Aan hostnaam is geen adres verbonden" #~ msgid "Name or service not known" #~ msgstr "Naam of dienst is niet bekend" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servicenaam wordt niet ondersteund voor 'ai_socktype'" #~ msgid "ai_socktype not supported" #~ msgstr "'ai_socktype' wordt niet ondersteund" #~ msgid "System error" #~ msgstr "Systeemfout" #~ msgid "Argument buffer too small" #~ msgstr "Argumentenbuffer is te klein" #~ msgid "Processing request in progress" #~ msgstr "Bezig met verwerken van verzoek" #~ msgid "Request canceled" #~ msgstr "Verzoek is geannuleerd" #~ msgid "Request not canceled" #~ msgstr "Verzoek is niet geannuleerd" #~ msgid "All requests done" #~ msgstr "Alle verzoeken zijn gedaan" #~ msgid "Interrupted by a signal" #~ msgstr "Onderbroken door een signaal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametertekst is niet juist gecodeerd" #~ msgid "Unknown error" #~ msgstr "Onbekende fout" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ongeldige waarde voor 'source_version' in compile_java_class()" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ongeldige waarde voor 'target_version' in compile_java_class()" #~ msgid "failed to create \"%s\"" #~ msgstr "aanmaken van '%s' is mislukt" #~ msgid "error while writing \"%s\" file" #~ msgstr "fout bij schrijven van bestand '%s'" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Java-compiler is niet gevonden; installeer 'gcj' of zet $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuele Java-machine is niet gevonden; installeer 'gcj' of zet $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "In-/uitvoerfout in subproces %s" #~ msgid "cannot change permissions of %s" #~ msgstr "kan de toegangsrechten van %s niet veranderen" #~ msgid "cannot create directory %s" #~ msgstr "kan map %s niet aanmaken" #~ msgid "unable to record current working directory" #~ msgstr "kan de huidige werkmap niet vastleggen" #~ msgid "failed to return to initial working directory" #~ msgstr "kan niet terugkeren naar de oorspronkelijke werkmap" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Openen van /dev/zero voor lezen is mislukt" #~ msgid "creation of reading thread failed" #~ msgstr "Het aanmaken van een lees-thread is mislukt" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "kan geen niet-blokkerende in-/uitvoer instellen naar subproces %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "communicatie met subproces %s is mislukt" #~ msgid "write to %s subprocess failed" #~ msgstr "schrijven naar subproces %s is mislukt" #~ msgid "read from %s subprocess failed" #~ msgstr "lezen uit subproces %s is mislukt" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "subproces %s is geëindigd met afsluitwaarde %d" #~ msgid "creation of threads failed" #~ msgstr "aanmaken van threads is mislukt" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "subproces %s is geëindigd met afsluitwaarde %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "‘" #~ msgid "'" #~ msgstr "’" #~ msgid "^[yY]" #~ msgstr "^[jJyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "toegangsrechten van %s worden ingesteld" # Vroeger ging dit over het afsluiten van een modemverbinding, # tegenwoordig over het afsluiten van een pseudoterminal. #~ msgid "Hangup" #~ msgstr "Opgehangen" #~ msgid "Interrupt" #~ msgstr "Onderbroken" # Verleden tijd, "Afgesloten", net als de andere actiesignaalnamen. #~ msgid "Quit" #~ msgstr "Afgesloten" #~ msgid "Illegal instruction" #~ msgstr "Ongeldige instructie" #~ msgid "Trace/breakpoint trap" #~ msgstr "Traceer/breekpunt-instructie" #~ msgid "Aborted" #~ msgstr "Afgebroken" #~ msgid "Floating point exception" #~ msgstr "Drijvendekomma-berekeningsfout" #~ msgid "Killed" #~ msgstr "Geëlimineerd" #~ msgid "Bus error" #~ msgstr "Busfout" #~ msgid "Segmentation fault" #~ msgstr "Segmentatiefout" #~ msgid "Broken pipe" #~ msgstr "Gebroken pijp" #~ msgid "Alarm clock" #~ msgstr "Wekker" #~ msgid "Terminated" #~ msgstr "Beëindigd" #~ msgid "Urgent I/O condition" #~ msgstr "Urgente in-/uitvoertoestand" #~ msgid "Stopped (signal)" #~ msgstr "Gepauzeerd (signaal)" #~ msgid "Stopped" #~ msgstr "Gepauzeerd" #~ msgid "Continued" #~ msgstr "Doorgegaan" #~ msgid "Child exited" #~ msgstr "Dochter is afgesloten" #~ msgid "Stopped (tty input)" #~ msgstr "Gepauzeerd (terminalinvoer)" #~ msgid "Stopped (tty output)" #~ msgstr "Gepauzeerd (terminaluitvoer)" #~ msgid "I/O possible" #~ msgstr "In-/uitvoer is mogelijk" #~ msgid "CPU time limit exceeded" #~ msgstr "Limiet op processortijd is overschreden" #~ msgid "File size limit exceeded" #~ msgstr "Limiet op bestandsgrootte is overschreden" #~ msgid "Virtual timer expired" #~ msgstr "Virtuele tijdopnemer is verlopen" #~ msgid "Profiling timer expired" #~ msgstr "Tijdopnemer voor analyse is verlopen" #~ msgid "Window changed" #~ msgstr "Venster is veranderd" #~ msgid "User defined signal 1" #~ msgstr "Gebruikergedefinieerd signaal 1" #~ msgid "User defined signal 2" #~ msgstr "Gebruikergedefinieerd signaal 2" #~ msgid "EMT trap" #~ msgstr "EMT-instructie" #~ msgid "Bad system call" #~ msgstr "Onjuiste systeemaanroep" #~ msgid "Stack fault" #~ msgstr "Stack-fout" #~ msgid "Information request" #~ msgstr "Verzoek om informatie" #~ msgid "Power failure" #~ msgstr "Stroomstoring" #~ msgid "Resource lost" #~ msgstr "Hulpbron verloren" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "fouten bij het schrijven naar een afgesloten 'pipe' of 'socket'" #~ msgid "cannot create pipe" #~ msgstr "kan geen pijp aanmaken" #~ msgid "Real-time signal %d" #~ msgstr "Realtime-signaal %d" #~ msgid "Unknown signal %d" #~ msgstr "Onbekend signaal %d" #~ msgid "iconv function not usable" #~ msgstr "de functie iconv() is onbruikbaar" #~ msgid "iconv function not available" #~ msgstr "de functie iconv() is niet beschikbaar" #~ msgid "character out of range" #~ msgstr "teken ligt buiten het toegestane bereik" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan U+%04X niet converteren naar de lokale tekenset" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan U+%04X niet converteren naar de lokale tekenset: %s" #~ msgid "invalid user" #~ msgstr "ongeldige gebruiker" #~ msgid "invalid group" #~ msgstr "ongeldige groep" #~ msgid "invalid spec" #~ msgstr "ongeldige aanduiding" #~ msgid "unable to display error message" #~ msgstr "kan foutmelding niet tonen" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "In pakketvorm gebracht door %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "In pakketvorm gebracht door %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Dit is vrije software: u mag het vrijelijk wijzigen en verder " #~ "verspreiden.\n" #~ "De precieze licentie is GPL-3+: GNU General Public License versie 3 of " #~ "later.\n" #~ "Zie http://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n" #~ "Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Geschreven door %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Geschreven door %s en %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Geschreven door %s, %s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s\n" #~ "en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s,\n" #~ "%s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s,\n" #~ "%s, %s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s,\n" #~ "%s, %s, %s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Geschreven door %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s en anderen.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Rapporteer gebreken in het programma aan <%s>;\n" #~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "" #~ "Rapporteer gebreken in het programma '%s' aan <%s>;\n" #~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Webpagina van %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Webpagina van %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/" #~ ">\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle() is mislukt" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "kan bestandsdescriptor %d niet herstellen: dup2() is mislukt" #~ msgid "%s subprocess" #~ msgstr "subproces %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "subproces %s ontving het fatale signaal %d" #~ msgid "stdin" #~ msgstr "standaardinvoer" #~ msgid "stdout" #~ msgstr "standaarduitvoer" #~ msgid "stderr" #~ msgstr "standaardfoutuitvoer" #~ msgid "unknown stream" #~ msgstr "onbekende gegevensstroom" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "opnieuw openen van '%s' met modus %s is mislukt" #~ msgid "string comparison failed" #~ msgstr "vergelijking van tekenreeksen is mislukt" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Zet LC_ALL='C' om het probleem te omzeilen." #~ msgid "The strings compared were %s and %s." #~ msgstr "De te vergelijken tekenreeksen waren %s en %s." #~ msgid "cannot perform formatted output" #~ msgstr "kan geen opgemaakte uitvoer aanmaken" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "ongeldig argument '%3$s' van %1$s%2$s" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "ongeldig achtervoegsel in argument '%3$s' van %1$s%2$s" #~ msgid "%s%s argument `%s' too large" #~ msgstr "argument '%3$s' van %1$s%2$s is te groot" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/rw.po����������������������������������������������������������������������������0000644�0000000�0000000�00000027571�12116513224�011666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Kinyarwanda translations for mailutils package. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the mailutils package. # Steve Murphy <murf@e-tools.com>, 2005. # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali <ndandali@yahoo.fr>, 2005. # Viateur MUGENZI <muvia1@yahoo.fr>, 2005. # Noëlla Mupole <s24211045@tuks.co.za>, 2005. # Carole Karema <karemacarole@hotmail.com>, 2005. # JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005. # Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005. # Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005. # Antoine Bigirimana <antoine@e-tools.com>, 2005. # msgid "" msgstr "" "Project-Id-Version: mailutils 0.6\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2005-04-04 10:55-0700\n" "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n" "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n" "Language: rw\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" #: lib/error.c:188 #, fuzzy msgid "Unknown system error" msgstr "Sisitemu Ikosa" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s:Ihitamo ni" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s:Ihitamo" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s:Ihitamo" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s:Ihitamo" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s:Sibyo Ihitamo" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s:Ihitamo" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s:Ihitamo ni" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s:Ihitamo" #: lib/regcomp.c:131 msgid "Success" msgstr "Ibyatunganye" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s:Sibyo Ibisanzwe imvugo" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "Sibyo Inyuguti ishuri" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "Sibyo Inyuguti ishuri" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 #, fuzzy msgid "Invalid back reference" msgstr "Umubare utari wo" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "Ipaji Urutonde" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "Ububiko" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s:Sibyo Ibisanzwe imvugo" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "Ikosa in Ibisanzwe imvugo Gushaka" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s:Sibyo Ibisanzwe imvugo" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "Ikosa in Ibisanzwe imvugo Gushaka" #: lib/xalloc-die.c:34 #, fuzzy msgid "memory exhausted" msgstr "Ububiko" #, fuzzy #~ msgid "invalid argument %s for %s" #~ msgstr "Sibyo kugirango" #, fuzzy #~ msgid "ambiguous argument %s for %s" #~ msgstr "kugirango" #, fuzzy #~ msgid "Valid arguments are:" #~ msgstr "ingingo" #, fuzzy #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "" #~ "%.*Project- Id- Version: basctl\n" #~ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" #~ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" #~ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" #~ "Content- Type: text/ plain; charset= UTF- 8\n" #~ "Content- Transfer- Encoding: 8bit\n" #~ "X- Generator: KBabel 1. 0\n" #~ "." #, fuzzy #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "" #~ "%.*Project- Id- Version: basctl\n" #~ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" #~ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" #~ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" #~ "Content- Type: text/ plain; charset= UTF- 8\n" #~ "Content- Transfer- Encoding: 8bit\n" #~ "X- Generator: KBabel 1. 0\n" #~ "." #, fuzzy #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "in" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Cyangwa Bitari ngombwa ingingo Kuri Amahitamo Cyangwa Bitari ngombwa " #~ "kugirango Amahitamo" #~ msgid "Usage:" #~ msgstr "Ikoresha:" #, fuzzy #~ msgid " or: " #~ msgstr "Cyangwa" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Cyangwa kugirango Birenzeho Ibisobanuro" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "Kuri" #, fuzzy #~ msgid "Give this help list" #~ msgstr "iyi Ifashayobora Urutonde" #, fuzzy #~ msgid "Give a short usage message" #~ msgstr "a Ikoresha: Ubutumwa" #, fuzzy #~ msgid "NAME" #~ msgstr "Izina" #, fuzzy #~ msgid "Set the program name" #~ msgstr "i Porogaramu Izina:" # offmgr/source\offapp\dialog\optgdlg.src:OFA_TP_MISC.FT_HELPAGENT_TIME_UNIT.text #, fuzzy #~ msgid "SECS" #~ msgstr "amasogonda" #, fuzzy #~ msgid "Hang for SECS seconds (default 3600)" #~ msgstr "kugirango amasogonda Mburabuzi" #, fuzzy #~ msgid "Print program version" #~ msgstr "Porogaramu Verisiyo" #, fuzzy #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(Verisiyo" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "ingingo" #, fuzzy #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(Verisiyo" # 4952 #, fuzzy #~ msgid "program error" #~ msgstr "Ikosa ryo mu Isoma" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_CLASS_WRITE.text #, fuzzy #~ msgid "write error" #~ msgstr "Kwandika ikosa" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "Gufungura kugirango" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "Gufungura kugirango" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "Ikosa" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "Ikosa" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "Ikosa" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "Gufungura Byanze" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s:Byanze" #, fuzzy #~ msgid "regular empty file" #~ msgstr "Ibisanzwe ubusa IDOSIYE" #, fuzzy #~ msgid "regular file" #~ msgstr "Ibisanzwe IDOSIYE" # svtools/source\dialogs\filedlg2.src:STR_FILEDLG_DIR.text #, fuzzy #~ msgid "directory" #~ msgstr "Ububiko" #, fuzzy #~ msgid "block special file" #~ msgstr "Funga Bidasanzwe IDOSIYE" #, fuzzy #~ msgid "character special file" #~ msgstr "Inyuguti Bidasanzwe IDOSIYE" #, fuzzy #~ msgid "symbolic link" #~ msgstr "Ihuza" #, fuzzy #~ msgid "message queue" #~ msgstr "Ubutumwa Umurongo" #, fuzzy #~ msgid "shared memory object" #~ msgstr "Ububiko Igikoresho" #, fuzzy #~ msgid "typed memory object" #~ msgstr "Ububiko Igikoresho" #, fuzzy #~ msgid "weird file" #~ msgstr "IDOSIYE" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "Idosiye OYA" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "Idosiye OYA" #, fuzzy #~ msgid "Memory allocation failure" #~ msgstr "Byanze" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "Idosiye OYA" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_CLASS_WRITE.text #, fuzzy #~ msgid "System error" #~ msgstr "Kwandika ikosa" #, fuzzy #~ msgid "Request not canceled" #~ msgstr "Ikintu OYA Byabonetse" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Sisitemu Ikosa" #, fuzzy #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:Ihitamo" #, fuzzy #~ msgid "block size" #~ msgstr "Funga Ingano" #, fuzzy #~ msgid "%s exists but is not a directory" #~ msgstr "%sni OYA a bushyinguro" #, fuzzy #~ msgid "cannot change owner and/or group of %s" #~ msgstr "Guhindura>> Na Cyangwa Itsinda Bya" #, fuzzy #~ msgid "cannot create directory %s" #~ msgstr "Kurema bushyinguro" #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "Kuri bushyinguro" #, fuzzy #~ msgid "cannot change permissions of %s" #~ msgstr "Guhindura>> Uruhushya Bya" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "Kuri Icyabitswe KIGEZWEHO bushyinguro" #, fuzzy #~ msgid "failed to return to initial working directory" #~ msgstr "Byanze Kuri Garuka Kuri bushyinguro" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s:Byanze Kuri Gufungura kugirango" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "Kurema Ihuza" # basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text #, fuzzy #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, fuzzy #~ msgid "iconv function not usable" #~ msgstr "Umumaro OYA" #, fuzzy #~ msgid "iconv function not available" #~ msgstr "Umumaro OYA Bihari" #, fuzzy #~ msgid "character out of range" #~ msgstr "Inyuguti Inyuma Bya Urutonde" #, fuzzy #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "GUHINDURA U Kuri Inyuguti Gushyiraho" #, fuzzy #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "GUHINDURA U Kuri Inyuguti Gushyiraho" #, fuzzy #~ msgid "invalid user" #~ msgstr "Sibyo Ukoresha:" #, fuzzy #~ msgid "invalid group" #~ msgstr "Sibyo Itsinda" #, fuzzy #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "Kubona i Ifashayinjira Itsinda Bya a Bikurikije umubare" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Porogaramu ni Kigenga Na Cyangwa i Bya i Nka Verisiyo 2. Cyangwa ku " #~ "Ihitamo Verisiyo" #, fuzzy #~ msgid "Written by %s.\n" #~ msgstr "ku" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "ku Na" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "ku Na Ibindi" #, fuzzy #~ msgid "string comparison failed" #~ msgstr "Ikurikiranyanyuguti Byanze" #, fuzzy #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Kuri Akazi i" #, fuzzy #~ msgid "The strings compared were %s and %s." #~ msgstr "Ikurikiranyanyuguti Na" ���������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/tr.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001155�12116513225�012016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v�����������C�����]��������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.3.0 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2005-03-14 04:17+0200 Last-Translator: Deniz Akkus Kanca <deniz@arayan.com> Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net> Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.9.1 �Bilinmeyen sistem hatası�bellek tükendi��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/rw.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001026�12116513225�012016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,������<�������P������Q�����Y��� ��� ���������������������Success�Project-Id-Version: mailutils 0.6 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2005-04-04 10:55-0700 Last-Translator: Steven Michael Murphy <murf@e-tools.com> Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net> Language: rw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �Ibyatunganye�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/fi.po����������������������������������������������������������������������������0000644�0000000�0000000�00000050030�12116513224�011616� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Finnish messages for gnulib. # Copyright © 2002, 2003, 2004, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Lauri Nurmi <lanurmi@iki.fi>, 2003, 2004. # Matti Koskimies <matti@apulanta.fi>, 2002. # Jorma Karvonen <karvonen.jorma@gmail.com>, 2009-2011. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-12-10 19:05+0200\n" "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" "Language: 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" #: lib/error.c:188 msgid "Unknown system error" msgstr "Tuntematon järjestelmävirhe" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: valitsin ’--%s’ vaatii argumentin\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: tunnistamaton valitsin ’--%s’\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: tunnistamaton valitsin ’%c%s’\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: epäkelpo valitsin -- ’%c’\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: valitsin vaatii argumentin -- ’%c’\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Onnistui" #: lib/regcomp.c:134 msgid "No match" msgstr "Ei osumaa" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Virheellinen säännöllinen lauseke" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "virheellinen collation-merkkiluokka" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Virheellinen merkkiluokkanimi" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Jälkikenoviiva" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Virheellinen paluuviite" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Pariton [ tai [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "pariton ( tai \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Pariton \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Kohteen \\{\\} virheellinen sisältö" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Virheellinen lukualueen loppu" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Muisti loppui" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Virheellinen edeltävä säännöllinen lauseke" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Ennenaikainen säännöllisen lausekkeen loppu" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Säännöllinen lauseke on liian iso" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Pariton ) tai \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Ei edellistä säännöllistä lauseketta" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "muisti loppui" #~ msgid "invalid argument %s for %s" #~ msgstr "virheellinen argumentti %s kohteelle %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "moniselitteinen argumentti %s kohteelle %s" #~ msgid "Valid arguments are:" #~ msgstr "Kelvolliset argumentit:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s arvo on pienempi tai yhtäsuuri kuin %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT parametri vaatii arvon" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parametrin on oltava positiivinen" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Roskaa kohteessa ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Pitkien valitsimien pakolliset tai valinnaiset argumentit ovat pakollisia " #~ "tai valinnaisia myös lyhyille valitsimille." #~ msgid "Usage:" #~ msgstr "Käyttö:" #~ msgid " or: " #~ msgstr " tai: " #~ msgid " [OPTION...]" #~ msgstr " [VALITSIN...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Lisätietoja saa komennolla ”%s --help” tai ”%s --usage”.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s.\n" #~ msgid "give this help list" #~ msgstr "anna tämä opasteluettelo" #~ msgid "give a short usage message" #~ msgstr "anna tämä lyhyt käyttösanoma" #~ msgid "NAME" #~ msgstr "NIMI" #~ msgid "set the program name" #~ msgstr "aseta ohjelman nimi" #~ msgid "SECS" #~ msgstr "SEKUNTIA" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "odota SEKUNTIA sekuntia (oletus 3600)" #~ msgid "print program version" #~ msgstr "tulosta ohjelman versio" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(OHJELMAVIRHE) Versiota ei tiedetä!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Liian monta argumenttia\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(OHJELMAVIRHE) Valitsimen pitäisi olla tunnistettava!?" #~ msgid "program error" #~ msgstr "ohjelmavirhe" #~ msgid "stack overflow" #~ msgstr "pinon ylivuoto" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "ei voi löytää tilapäistä hakemistoa, yritä asettaa $TMPDIR-" #~ "ympäristömuuttuja" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "ei voida luoda tilapäistä hakemistoa käyttäen mallinnetta ”%s”" #~ msgid "cannot remove temporary file %s" #~ msgstr "ei voida poistaa tilapäistä tiedostoa %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "ei voida poistaa tilapäistä hakemistoa %s" #~ msgid "error closing file" #~ msgstr "virhe suljettaessa tiedostoa" #~ msgid "write error" #~ msgstr "kirjoitusvirhe" #~ msgid "preserving permissions for %s" #~ msgstr "säilytetään oikeudet kohteelle %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "virhe avattaessa tiedostoa ”%s” lukemista varten" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "ei voida avata varmuuskopiotiedostoa ”%s” kirjoittamista varten" #~ msgid "error reading \"%s\"" #~ msgstr "virhe luettaessa tiedostoa ”%s”" #~ msgid "error writing \"%s\"" #~ msgstr "virhe kirjoitettaessa tiedostoa ”%s”" #~ msgid "error after reading \"%s\"" #~ msgstr "virhe luettaessa tiedostoa ”%s”" #~ msgid "fdopen() failed" #~ msgstr "fdopen()-kutsu epäonnistui" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C#-kääntäjää ei löytynyt, yritä asentaa pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "C#-virtuaalikonetta ei löytynyt, yritä asentaa pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s-aliprosessi epäonnistui" #~ msgid "regular empty file" #~ msgstr "tavallinen tyhjä tiedosto" #~ msgid "regular file" #~ msgstr "tavallinen tiedosto" #~ msgid "directory" #~ msgstr "hakemisto" #~ msgid "block special file" #~ msgstr "lohkoerikoistiedosto" #~ msgid "character special file" #~ msgstr "merkkierikoistiedosto" #~ msgid "fifo" #~ msgstr "putkitiedosto" #~ msgid "symbolic link" #~ msgstr "symbolinen linkki" #~ msgid "socket" #~ msgstr "pistoke" #~ msgid "message queue" #~ msgstr "viestijono" #~ msgid "semaphore" #~ msgstr "semafori" #~ msgid "shared memory object" #~ msgstr "jaettu muistiobjekti" #~ msgid "typed memory object" #~ msgstr "tyypitetty muistiobjekti" #~ msgid "weird file" #~ msgstr "outo tiedosto" #~ msgid "Address family for hostname not supported" #~ msgstr "Osoiteperhe tietokonenimelle ei ole tuettu" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tilapäinen virhe nimiratkaisussa" #~ msgid "Bad value for ai_flags" #~ msgstr "Väärä arvo kohteelle ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Korjaamaton virhe nimiratkaisussa" #~ msgid "ai_family not supported" #~ msgstr "ai_family ei ole tuettu" #~ msgid "Memory allocation failure" #~ msgstr "Muistinvarausvirhe" #~ msgid "No address associated with hostname" #~ msgstr "Tietokonenimeen ei ole liitetty osoitetta" #~ msgid "Name or service not known" #~ msgstr "Nimeä tai palvelua ei tunneta" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname ei ole tuettu kohteelle ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ei ole tuettu" #~ msgid "System error" #~ msgstr "Järjestelmävirhe" #~ msgid "Argument buffer too small" #~ msgstr "Argumenttipuskuri on liian suuri" #~ msgid "Processing request in progress" #~ msgstr "Prosessointipyyntö käsittelyssä" #~ msgid "Request canceled" #~ msgstr "Pyyntö peruttu" #~ msgid "Request not canceled" #~ msgstr "Pyyntöä ei ole peruttu" #~ msgid "All requests done" #~ msgstr "Kaikki pyynnöt suoritettu" #~ msgid "Interrupted by a signal" #~ msgstr "Signaalin keskeyttämä" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametrimerkkijono ei ole oikein koodattu" #~ msgid "Unknown error" #~ msgstr "Tuntematon virhe" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "virheellinen source_version-argumentti kohteelle compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "virheellinen target_version-argumentti kohteelle compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "kohteen ”%s” luominen epäonnistui" #~ msgid "error while writing \"%s\" file" #~ msgstr "virhe kirjoitettaessa tiedostoa ”%s”" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Java-kääntäjää ei löytynyt, yritä asentaa gcj tai aseta $JAVAC-" #~ "ympäristömuuttuja" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Java-virtuaalikonetta ei löytynyt, yritä asentaa gij tai aseta $JAVA-" #~ "ympäristömuuttuja" #~ msgid "%s subprocess I/O error" #~ msgstr "%s-aliprosessisiirräntävirhe" #~ msgid "cannot change permissions of %s" #~ msgstr "kohteen %s oikeuksien muuttaminen ei onnistu" #~ msgid "cannot create directory %s" #~ msgstr "hakemiston %s luominen ei onnistu" #~ msgid "unable to record current working directory" #~ msgstr "ei kyetä tallentaman nykyistä työhakemistoa" #~ msgid "failed to return to initial working directory" #~ msgstr "alkuperäiseen työhakemistoon palaaminen epäonnistui" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Kohteen /dev/zero avaaminen lukemista varten epäonnistui" #~ msgid "creation of reading thread failed" #~ msgstr "lukemissäikeen luominen epäonnistui" # nonblocking I/O on synonyymi termille asynchronous I/O #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "ei voi asettaa tahdistamatonta siirräntää aliprosessille %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "viestintä aliprosessin %s kanssa epäonnistui" #~ msgid "write to %s subprocess failed" #~ msgstr "kirjoittaminen aliprosessiin %s epäonnistui" #~ msgid "read from %s subprocess failed" #~ msgstr "lukeminen aliprosessista %s epäonnistui" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "aliprosessi %s päättyi poistumiskoodilla %d" #~ msgid "creation of threads failed" #~ msgstr "säikeiden luominen epäonnistui" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s-aliprosessi päättyi poistumiskoodilla %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "”" #~ msgid "'" #~ msgstr "”" # Kaikkihan muistavat kääntää nämä ja vastaavat juuri näin. Ei pelkkä kK. #~ msgid "^[yY]" #~ msgstr "^[kKyY]" #~ msgid "^[nN]" #~ msgstr "^[eEnN]" #~ msgid "setting permissions for %s" #~ msgstr "asetetaan oikeudet kohteelle %s" #~ msgid "Hangup" #~ msgstr "Yhteyden katkaisu" #~ msgid "Interrupt" #~ msgstr "Keskeytys" #~ msgid "Quit" #~ msgstr "Poistu" #~ msgid "Illegal instruction" #~ msgstr "Virheellinen käsky" #~ msgid "Trace/breakpoint trap" #~ msgstr "Jäljitys/keskeytyspistekeskeytys" #~ msgid "Aborted" #~ msgstr "Keskeytetty" #~ msgid "Floating point exception" #~ msgstr "Liukulukupoikkeus" #~ msgid "Killed" #~ msgstr "Sammutettu" #~ msgid "Bus error" #~ msgstr "Väylävirhe" #~ msgid "Segmentation fault" #~ msgstr "Osiinjakamisvirhe" #~ msgid "Broken pipe" #~ msgstr "Rikkoutunut putki" #~ msgid "Alarm clock" #~ msgstr "Hälytyskello" #~ msgid "Terminated" #~ msgstr "Päättynyt" #~ msgid "Urgent I/O condition" #~ msgstr "Kiireellinen siirräntätila" #~ msgid "Stopped (signal)" #~ msgstr "Pysäytetty (signaali)" #~ msgid "Stopped" #~ msgstr "Pysäytetty" #~ msgid "Continued" #~ msgstr "Jatkettu" #~ msgid "Child exited" #~ msgstr "Lapsiprosessi poistunut" #~ msgid "Stopped (tty input)" #~ msgstr "Pysäytetty (tty-syöte)" #~ msgid "Stopped (tty output)" #~ msgstr "Pysäytetty (tty-tuloste)" #~ msgid "I/O possible" #~ msgstr "Siirräntä mahdollinen" #~ msgid "CPU time limit exceeded" #~ msgstr "Suoritinaikaraja ylitetty" #~ msgid "File size limit exceeded" #~ msgstr "Tiedostonkokoraja ylitetty" #~ msgid "Virtual timer expired" #~ msgstr "Virtuaaliajastin päättynyt" #~ msgid "Profiling timer expired" #~ msgstr "Profilointiajastin päättynyt" #~ msgid "Window changed" #~ msgstr "Ikkuna vaihtunut" #~ msgid "User defined signal 1" #~ msgstr "Käyttäjän määrittelemä signaali 1" #~ msgid "User defined signal 2" #~ msgstr "Käyttäjän määrittelemä signaali 2" #~ msgid "EMT trap" #~ msgstr "EMT-keskeytys" #~ msgid "Bad system call" #~ msgstr "Väärä järjestelmäkutsu" #~ msgid "Stack fault" #~ msgstr "Pinovirhe" #~ msgid "Information request" #~ msgstr "Tietopyyntö" #~ msgid "Power failure" #~ msgstr "Teholähdevika" #~ msgid "Resource lost" #~ msgstr "Resurssi kadonnut" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "virhe kirjoitettaessa suljettuun putkeen tai pistokkeeseen" #~ msgid "cannot create pipe" #~ msgstr "ei voida luoda putkea" #~ msgid "Real-time signal %d" #~ msgstr "Tosiaikasignaali %d" #~ msgid "Unknown signal %d" #~ msgstr "Tuntematon signaali %d" #~ msgid "iconv function not usable" #~ msgstr "iconv-funktio ei ole käyttökelpoinen" #~ msgid "iconv function not available" #~ msgstr "iconv-funktio ei ole saatavilla" #~ msgid "character out of range" #~ msgstr "merkki sallitun välin ulkopuolella" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "merkin U+%04X muunnos paikalliseen merkistöön ei onnistu" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "merkin U+%04X muunnos paikalliseen merkistöön ei onnistu: %s" #~ msgid "invalid user" #~ msgstr "virheellinen käyttäjä" #~ msgid "invalid group" #~ msgstr "virheellinen ryhmä" #~ msgid "invalid spec" #~ msgstr "virheellinen määrittely" #~ msgid "unable to display error message" #~ msgstr "ei kyetä näyttämään virheilmoitusta" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Pakkaaja: %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Pakkaaja: %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Lisenssi GPLv3+: GNU GPL versio 3 tai myöhäisempi <http://gnu.org/" #~ "licenses/gpl.html>.\n" #~ "Tämä on vapaa ohjelmisto: voit vapaasti muuttaa sitä tai jakaa sitä " #~ "edelleen.\n" #~ "Ohjelmalle EI OLE TAKUUTA siinä laajuudessa mitä laki sen sallii.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Kirjoittanut %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Kirjoittaneet %s ja %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Kirjoittaneet %s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s, %s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s, %s, %s,\n" #~ "%s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Kirjoittaneet %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, %s ja muut.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Lähetä ilmoitukset ohjelmistovioista (englanniksi) osoitteeseen %s\n" #~ "Lähetä ilmoitukset käännösvirheistä osoitteeseen <translation-team-" #~ "fi@lists.sourceforge.net>\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "" #~ "Lähetä %s ilmoitukset ohjelmistovioista (englanniksi) osoitteeseen %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s kotisivu: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s kotisivu: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Yleinen opaste GNU-ohjelmiston käyttämiseen: <http://www.gnu.org/gethelp/" #~ ">\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle epäonnistui" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ei voi palauttaa fd %d: dup2 epäonnistui" #~ msgid "%s subprocess" #~ msgstr "%s-aliprosessi" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-aliprosessi sai sammuttavan signaalin %d" #~ msgid "stdin" #~ msgstr "vakiosyöte" #~ msgid "stdout" #~ msgstr "vakiotuloste" #~ msgid "stderr" #~ msgstr "vakiovirhe" #~ msgid "unknown stream" #~ msgstr "tuntematon merkkivirta" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "kohteen %s avaaminen uudelleen tilassa %s epäonnistui" #~ msgid "string comparison failed" #~ msgstr "merkkijonovertailu epäonnistui" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Aseta LC_ALL='C' ongelman kiertämiseksi." #~ msgid "The strings compared were %s and %s." #~ msgstr "Vertaillut merkkijonot olivat %s ja %s." #~ msgid "cannot perform formatted output" #~ msgstr "muotoiltua tulostetta ei voitu suorittaa" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "virheellinen %s%s-argumentti ”%s”" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "virheellinen jälkiliite kohteen %s%s argumentissa ”%s”" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s argumentti ”%s” on liian iso" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ru.po����������������������������������������������������������������������������0000644�0000000�0000000�00000060375�12116513224�011663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of gnulib-2.0.0.3462.e9796.ru.po to Russian # Copyright (C) 2005, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Sergey Poznyakoff <gray@gnu.org>, 2003,2004,2005. # Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-22 21:05+0400\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@mx.ru>\n" "Language: ru\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" "X-Generator: Lokalize 1.0\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Неизвестная системная ошибка" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: двусмысленный параметр «%s»; возможные варианты:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: для параметра «--%s» аргумент не разрешён\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: для параметра «%c%s» аргумент не разрешён\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: для параметра «--%s» требуется аргумент\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: нераспознанный параметр «--%s»\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: нераспознанный параметр «%c%s»\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: неправильный параметр -- «%c»\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: для параметра требуется аргумент -- «%c»\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: двусмысленный параметр «-W %s»\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: у параметра «-W %s» не может быть аргумента\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: для параметра «-W %s» требуется аргумент\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Успешно" #: lib/regcomp.c:134 msgid "No match" msgstr "Нет совпадений" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Неверное регулярное выражение" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Неверный символ сравнения" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Неверное имя класса символов" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Конечная обратная косая черта" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Неверная обратная ссылка" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Непарная [ или [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Непарная ( или \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Непарная \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Недопустимое содержимое в \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Неверный конец диапазона" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Закончилась память" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Недопустимое предшествующее регулярное выражение" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Преждевременное завершение регулярного выражения" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Слишком большое регулярное выражение" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Непарная ) или \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Отсутствует предыдущее регулярное выражение" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "закончилась память" #~ msgid "invalid argument %s for %s" #~ msgstr "неверный аргумент %s для %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "неоднозначный аргумент %s для %s" #~ msgid "Valid arguments are:" #~ msgstr "Верные аргументы:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: значение %s меньше или равно %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: параметр ARGP_HELP_FMT требует значения" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: значение параметра ARGP_HELP_FMT должно быть положительным" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: неизвестный параметр ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Мусор в ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Обязательные или необязательные аргументы к длинным именам параметров " #~ "остаются таковыми и к соответствующим коротким параметрам." #~ msgid "Usage:" #~ msgstr "Использование:" #~ msgid " or: " #~ msgstr " или: " #~ msgid " [OPTION...]" #~ msgstr " [ПАРАМЕТР...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Попробуйте «%s --help» или «%s --usage» для получения более подробного " #~ "описания.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Об ошибках сообщай по адресу %s.\n" #~ msgid "give this help list" #~ msgstr "показать эту справку" #~ msgid "give a short usage message" #~ msgstr "показать короткую справку по использованию" #~ msgid "NAME" #~ msgstr "ИМЯ" #~ msgid "set the program name" #~ msgstr "задать имя программы" #~ msgid "SECS" #~ msgstr "СЕКУНД" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "остановиться на заданное число СЕКУНД (по умолчанию 3600)" #~ msgid "print program version" #~ msgstr "показать номер версии программы" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ОШИБКА ПРОГРАММЫ) Версия неизвестна!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: слишком много аргументов\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ОШИБКА ПРОГРАММЫ) Параметр должен был быть распознан!?" #~ msgid "program error" #~ msgstr "программная ошибка" #~ msgid "stack overflow" #~ msgstr "переполнение стека" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "не удалось найти временный каталог, попробуйте задать $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "не удалось создать временный каталог с помощью шаблона «%s»" #~ msgid "cannot remove temporary file %s" #~ msgstr "не удалось удалить временный файл %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "не удалось удалить временный каталог %s" #~ msgid "error closing file" #~ msgstr "ошибка закрытия файла" #~ msgid "write error" #~ msgstr "ошибка записи" #~ msgid "preserving permissions for %s" #~ msgstr "сохраняются права доступа для %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "ошибка при открытии «%s» для чтения" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "не удалось открыть файл резервной копии «%s» для записи" #~ msgid "error reading \"%s\"" #~ msgstr "ошибка чтения «%s»" #~ msgid "error writing \"%s\"" #~ msgstr "ошибка записи «%s»" #~ msgid "error after reading \"%s\"" #~ msgstr "ошибка после чтения «%s»" #~ msgid "fdopen() failed" #~ msgstr "ошибка при выполнении fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Не найден компилятор C#, попробуйте установить pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Не найдена виртуальная машина C#, попробуйте установить pnet" #~ msgid "%s subprocess failed" #~ msgstr "подпроцесс %s завершился с ошибкой" #~ msgid "regular empty file" #~ msgstr "пустой обычный файл" #~ msgid "regular file" #~ msgstr "обычный файл" #~ msgid "directory" #~ msgstr "каталог" #~ msgid "block special file" #~ msgstr "блочный специальный файл" #~ msgid "character special file" #~ msgstr "символьный специальный файл" #~ msgid "fifo" #~ msgstr "файл-очередь" #~ msgid "symbolic link" #~ msgstr "символьная ссылка" #~ msgid "socket" #~ msgstr "сокет" #~ msgid "message queue" #~ msgstr "очередь сообщений" #~ msgid "semaphore" #~ msgstr "семафор" #~ msgid "shared memory object" #~ msgstr "объект общей памяти" #~ msgid "typed memory object" #~ msgstr "объект типизированной памяти" #~ msgid "weird file" #~ msgstr "странный файл" #~ msgid "Address family for hostname not supported" #~ msgstr "Адресное семейство не поддерживается для имени узла" #~ msgid "Temporary failure in name resolution" #~ msgstr "Временная ошибка при определении имени" #~ msgid "Bad value for ai_flags" #~ msgstr "Неверное значение для ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Невосстановимая ошибка при определении имени" #~ msgid "ai_family not supported" #~ msgstr "ai_family не поддерживается" #~ msgid "Memory allocation failure" #~ msgstr "Ошибка при выделении памяти" #~ msgid "No address associated with hostname" #~ msgstr "С именем узла не связано ни одного адреса" #~ msgid "Name or service not known" #~ msgstr "Неизвестное имя или служба" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname не поддерживается для ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype не поддерживается" #~ msgid "System error" #~ msgstr "Системная ошибка" #~ msgid "Argument buffer too small" #~ msgstr "Слишком маленький буфер, указанный в аргументе" #~ msgid "Processing request in progress" #~ msgstr "Выполняется обработка запроса" #~ msgid "Request canceled" #~ msgstr "Запрос отменён" #~ msgid "Request not canceled" #~ msgstr "Запрос не отменён" #~ msgid "All requests done" #~ msgstr "Все запросы выполнены" #~ msgid "Interrupted by a signal" #~ msgstr "Прервано по сигналу" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Строковый параметр неправильно закодирован" #~ msgid "Unknown error" #~ msgstr "Неизвестная ошибка" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "неверный аргумент source_version для compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "неверный аргумент target_version для compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "не удалось создать «%s»" #~ msgid "error while writing \"%s\" file" #~ msgstr "ошибка записи в файл «%s»" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Не найден компилятор Java, попробуйте установить gcj или задать $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Не найдена виртуальная машина Java, попробуйте установить gcj или задать " #~ "$JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "ошибка вв/вывода подпроцесса %s" #~ msgid "cannot change permissions of %s" #~ msgstr "невозможно изменить права доступа %s" #~ msgid "cannot create directory %s" #~ msgstr "невозможно создать каталог %s" #~ msgid "unable to record current working directory" #~ msgstr "не удалось запомнить текущий рабочий каталог" #~ msgid "failed to return to initial working directory" #~ msgstr "не удалось вернуться в первоначальный рабочий каталог" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Не удалось открыть /dev/zero на чтение" #~ msgid "creation of reading thread failed" #~ msgstr "не удалось создать нить для чтения" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "не удалось настроить неблокированный ввод-вывод в подпроцессе %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "не удалось связаться с подпроцессом %s" #~ msgid "write to %s subprocess failed" #~ msgstr "не удалось записать в подпроцесс %s" #~ msgid "read from %s subprocess failed" #~ msgstr "не удалось прочитать из подпроцесса %s" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "подпроцесс %s завершился с кодом выхода %d" #~ msgid "creation of threads failed" #~ msgstr "не удалось создать нити" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "подпроцесс %s завершился с кодом выхода %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Френсис Пинард (Franc,ois Pinard)" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #~ msgid "^[yY]" #~ msgstr "^[ДдYy]" #~ msgid "^[nN]" #~ msgstr "^[НнNn]" #~ msgid "setting permissions for %s" #~ msgstr "задание прав доступа для %s" #~ msgid "Hangup" #~ msgstr "Обрыв терминальной линии" #~ msgid "Interrupt" #~ msgstr "Прерывание" #~ msgid "Quit" #~ msgstr "Аварийное прерывание" #~ msgid "Illegal instruction" #~ msgstr "Недопустимая инструкция" #~ msgid "Trace/breakpoint trap" #~ msgstr "Прерывание на контрольной точке" #~ msgid "Aborted" #~ msgstr "Прервано" #~ msgid "Floating point exception" #~ msgstr "Ошибка операции с плавающей точкой" #~ msgid "Killed" #~ msgstr "Уничтожение" #~ msgid "Bus error" #~ msgstr "Ошибка шины" #~ msgid "Segmentation fault" #~ msgstr "Нарушение сегментирования" #~ msgid "Broken pipe" #~ msgstr "Обрыв канала" #~ msgid "Alarm clock" #~ msgstr "Сигнал по таймеру" #~ msgid "Terminated" #~ msgstr "Завершение" #~ msgid "Urgent I/O condition" #~ msgstr "Срочная операция ввода-вывода" #~ msgid "Stopped (signal)" #~ msgstr "Останов (сигнал)" #~ msgid "Stopped" #~ msgstr "Останов" #~ msgid "Continued" #~ msgstr "Возобновление" #~ msgid "Child exited" #~ msgstr "Потомок завершил работу" #~ msgid "Stopped (tty input)" #~ msgstr "Останов (ввод с терминала)" #~ msgid "Stopped (tty output)" #~ msgstr "Останов (вывод с терминала)" #~ msgid "I/O possible" #~ msgstr "Возможен ввод-вывод" #~ msgid "CPU time limit exceeded" #~ msgstr "Превышен предел по процессорному времени" #~ msgid "File size limit exceeded" #~ msgstr "Превышен предел размера файла" #~ msgid "Virtual timer expired" #~ msgstr "Виртуальное время истекло" #~ msgid "Profiling timer expired" #~ msgstr "Время профилирования истекло" #~ msgid "Window changed" #~ msgstr "Окно изменено" #~ msgid "User defined signal 1" #~ msgstr "Определяемый пользователем сигнал 1" #~ msgid "User defined signal 2" #~ msgstr "Определяемый пользователем сигнал 2" #~ msgid "EMT trap" #~ msgstr "Ловушка EMT" #~ msgid "Bad system call" #~ msgstr "Неправильный системный вызов" #~ msgid "Stack fault" #~ msgstr "Ошибка работы со стеком" #~ msgid "Information request" #~ msgstr "Запрос информации" #~ msgid "Power failure" #~ msgstr "Отказ питания" #~ msgid "Resource lost" #~ msgstr "Ресурс потерян" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "ошибка записи в закрытый канал или сокет" #~ msgid "cannot create pipe" #~ msgstr "не удалось создать канал" #~ msgid "Real-time signal %d" #~ msgstr "Сигнал реального времени %d" #~ msgid "Unknown signal %d" #~ msgstr "Неизвестный сигнал %d" #~ msgid "iconv function not usable" #~ msgstr "функция iconv неприменима" #~ msgid "iconv function not available" #~ msgstr "функция iconv недоступна" #~ msgid "character out of range" #~ msgstr "символ вне допустимого диапазона" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "невозможно преобразовать U+%04X в локальную кодировку" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "невозможно преобразовать U+%04X в локальную кодировку: %s" #~ msgid "invalid user" #~ msgstr "неверный пользователь" #~ msgid "invalid group" #~ msgstr "неверная группа" #~ msgid "invalid spec" #~ msgstr "неверный spec" #~ msgid "unable to display error message" #~ msgstr "невозможно показать сообщение об ошибке" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Упакован %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Упакован %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "Это свободное ПО: вы можете продавать и распространять его.\n" #~ "Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Автор программы: %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Авторы программы: %s и %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Авторы программы: %s, %s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s\n" #~ "и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s,\n" #~ "%s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s,\n" #~ "%s, %s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s,\n" #~ "%s, %s, %s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s и %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Авторы программы: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s и другие.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Об ошибках сообщайте по адресу: %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Об ошибках в %s сообщайте по адресу: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Домашняя страница %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Домашняя страница %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "Справка по работе с ПО GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle завершилась неудачно" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "не удалось восстановить fd %d: dup2 завершилась неудачно" #~ msgid "%s subprocess" #~ msgstr "подпроцесс %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "подпроцесс %s получил сигнал завершения %d" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "неизвестный поток" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "не удалось повторно открыть %s в режиме %s" #~ msgid "string comparison failed" #~ msgstr "сравнение строк завершилось неудачно" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Чтобы обойти эту проблему, установите LC_ALL='C'." #~ msgid "The strings compared were %s and %s." #~ msgstr "Сравнивались строки %s %s." #~ msgid "cannot perform formatted output" #~ msgstr "невозможно выполнить форматированный вывод" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "неверный аргумент %s%s для «%s»" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "неверный суффикс %s%s в аргументе «%s»" #~ msgid "%s%s argument `%s' too large" #~ msgstr "значение %s%s аргумента «%s» слишком велико" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/gl.po����������������������������������������������������������������������������0000644�0000000�0000000�00000037350�12116513224�011634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Galician translation of gnulib. # This file is distributed under the same license as the gnulib package. # Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. # Copyright (C) 2012 Leandro Regueiro. # # Jacobo Tarrio <jtarrio@trasno.net>, 2000, 2001, 2002. # Leandro Regueiro <leandro.regueiro@gmail.com>, 2012. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en http://www.trasno.net # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-11-11 13:26+0200\n" "Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n" "Language-Team: Galician <proxecto@trasno.net>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Erro do sistema descoñecido" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: a opción «%s» é ambigua; as posibilidades son:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: a opción «--%s» non permite ningún argumento\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: a opción «%c%s» non permite ningún argumento\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: a opción «--%s» require un argumento\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opción «--%s» non recoñecida\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opción «%c%s» non recoñecida\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: opción incorrecta -- «%c»\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: a opción require un argumento -- «%c»\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: a opción «-W %s» é ambigua\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: a opción «-W %s» non permite ningún argumento\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: a opción «-W %s» require un argumento\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Éxito" #: lib/regcomp.c:134 msgid "No match" msgstr "Sen coincidencias" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Expresión regular non válida" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Carácter de ordenación incorrecto" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Nome da clase de caracteres incorrecto" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Barra invertida ao final" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ ou [^ sen parella" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( ou \\( sen parella" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ sen parella" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Contido de \\{\\} non válido" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Fin de intervalo non válido" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Memoria esgotada" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Expresión regular precedente non válida" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Fin prematura da expresión regular" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Expresión regular grande de máis" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") ou \\) sen parella" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Non hai ningunha expresión regular anterior" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria esgotada" #~ msgid "invalid argument %s for %s" #~ msgstr "argumento incorrecto %s para %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argumento %s ambiguo para %s" #~ msgid "Valid arguments are:" #~ msgstr "Os argumentos válidos son:" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Os argumentos obrigatorios ou opcionais das opcións longas son tamén " #~ "obrigatorios ou opcionais para calquera opción curta que se corresponda." #~ msgid "Usage:" #~ msgstr "Uso:" #~ msgid " or: " #~ msgstr " ou: " #~ msgid " [OPTION...]" #~ msgstr " [OPCIÓN...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Execute «%s --help» ou «%s --usage» para obter máis información.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Envíe os informes de fallo a %s.\n" #~ msgid "give this help list" #~ msgstr "devolve esta lista de axuda" #~ msgid "give a short usage message" #~ msgstr "devolve unha mensaxe curta sobre o uso" #~ msgid "NAME" #~ msgstr "NOME" #~ msgid "set the program name" #~ msgstr "define o nome do programa" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "print program version" #~ msgstr "mostra a versión do programa" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Demasiados argumentos\n" #~ msgid "program error" #~ msgstr "erro do programa" #~ msgid "stack overflow" #~ msgstr "desbordamento da pila" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "non é posíbel crear un directorio temporal empregando o patrón «%s»" #~ msgid "cannot remove temporary file %s" #~ msgstr "non é posíbel retirar o ficheiro temporal %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "non é posíbel retirar o directorio temporal %s" #~ msgid "error closing file" #~ msgstr "produciuse un erro ao pechar o ficheiro" #~ msgid "write error" #~ msgstr "erro de escritura" #~ msgid "preserving permissions for %s" #~ msgstr "conservando os permisos para %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "produciuse un erro ao abrir «%s» para lectura" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "" #~ "non é posíbel abrir o ficheiro de copia de seguridade «%s» para escribir" #~ msgid "error reading \"%s\"" #~ msgstr "produciuse un erro ao ler «%s»" #~ msgid "error writing \"%s\"" #~ msgstr "produciuse un erro ao escribir «%s»" #~ msgid "error after reading \"%s\"" #~ msgstr "produciuse un erro despois de ler «%s»" #~ msgid "fdopen() failed" #~ msgstr "fdopen() fallou" #~ msgid "regular empty file" #~ msgstr "ficheiro normal baleiro" #~ msgid "regular file" #~ msgstr "ficheiro normal" #~ msgid "directory" #~ msgstr "directorio" #~ msgid "block special file" #~ msgstr "ficheiro especial de bloque" #~ msgid "character special file" #~ msgstr "ficheiro especial de carácter" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "ligazón simbólica" #~ msgid "message queue" #~ msgstr "cola de mensaxes" #~ msgid "semaphore" #~ msgstr "semáforo" #~ msgid "shared memory object" #~ msgstr "obxecto de memoria compartida" #~ msgid "weird file" #~ msgstr "ficheiro estraño" #~ msgid "ai_family not supported" #~ msgstr "ai_family non admitido" #~ msgid "Name or service not known" #~ msgstr "Nome ou servizo descoñecido" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype non admitido" #~ msgid "System error" #~ msgstr "Erro do sistema" #~ msgid "Request canceled" #~ msgstr "Solicitude cancelada" #~ msgid "Request not canceled" #~ msgstr "Solicitude non cancelada" #~ msgid "Unknown error" #~ msgstr "Erro descoñecido" #~ msgid "failed to create \"%s\"" #~ msgstr "produciuse un erro ao crear «%s»" #~ msgid "error while writing \"%s\" file" #~ msgstr "produciuse un erro ao escribir o ficheiro «%s»" #~ msgid "cannot change permissions of %s" #~ msgstr "non foi posíbel cambiar os permisos de %s" #~ msgid "cannot create directory %s" #~ msgstr "non foi posíbel crear o directorio %s" #~ msgid "unable to record current working directory" #~ msgstr "non foi posíbel gravar o directorio de traballo actual" #~ msgid "failed to return to initial working directory" #~ msgstr "non foi posíbel volver ao directorio de traballo inicial" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Produciuse un erro ao abrir /dev/zero para ler" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #~ msgid "^[yY]" #~ msgstr "^[sSyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "definindo os permisos para %s" #~ msgid "Quit" #~ msgstr "Saír" #~ msgid "Illegal instruction" #~ msgstr "Instrución inaceptábel" #~ msgid "Aborted" #~ msgstr "Interrompido" #~ msgid "Floating point exception" #~ msgstr "Excepción de coma flotante" #~ msgid "Killed" #~ msgstr "Matado" #~ msgid "Bus error" #~ msgstr "Erro de bus" #~ msgid "Broken pipe" #~ msgstr "Canalización danada" #~ msgid "Alarm clock" #~ msgstr "Reloxo de alarma" #~ msgid "Terminated" #~ msgstr "Terminado" #~ msgid "Stopped" #~ msgstr "Detido" #~ msgid "Continued" #~ msgstr "Continuado" #~ msgid "Child exited" #~ msgstr "O proceso fillo saíu" #~ msgid "Stopped (tty input)" #~ msgstr "Detido (entrada pola terminal)" #~ msgid "Stopped (tty output)" #~ msgstr "Detido (saída pola terminal)" #~ msgid "I/O possible" #~ msgstr "A E/S é posíbel" #~ msgid "CPU time limit exceeded" #~ msgstr "Excedeuse o límite de tempo de CPU" #~ msgid "File size limit exceeded" #~ msgstr "Excedeuse o límite de tamaño do ficheiro" #~ msgid "Virtual timer expired" #~ msgstr "Temporizador virtual esgotado" #~ msgid "User defined signal 1" #~ msgstr "Sinal 1 definido polo usuario" #~ msgid "User defined signal 2" #~ msgstr "Sinal 2 definido polo usuario" #~ msgid "Bad system call" #~ msgstr "Chamada ao sistema errónea" #~ msgid "Stack fault" #~ msgstr "Fallo de pila" #~ msgid "Information request" #~ msgstr "Solicitude de información" #~ msgid "Power failure" #~ msgstr "Fallo de subministración eléctrica" #~ msgid "Resource lost" #~ msgstr "Recurso perdido" #~ msgid "cannot create pipe" #~ msgstr "non é posíbel crear a canalización" #~ msgid "Unknown signal %d" #~ msgstr "Sinal %d descoñecido" #~ msgid "iconv function not usable" #~ msgstr "a función iconv non é utilizábel" #~ msgid "iconv function not available" #~ msgstr "a función iconv non está dispoñíbel" #~ msgid "character out of range" #~ msgstr "carácter fóra de intervalo" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "non é posíbel converter U+%04X ao xogo de caracteres local" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "non é posíbel converter U+%04X ao xogo de caracteres local: %s" #~ msgid "invalid user" #~ msgstr "usuario incorrecto" #~ msgid "invalid group" #~ msgstr "grupo incorrecto" #~ msgid "unable to display error message" #~ msgstr "non é posíbel mostrar a mensaxe de erro" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Empaquetado por %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Empaquetado por %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licenza GPL3v+: GNU GPL versión3 ou posterior <http://gnu.org/licenses/" #~ "gpl.html>\n" #~ "Isto é software libre: pode modificalo e redistribuílo.\n" #~ "Non hai NINGUNHA GARANTÍA, ata onde o permita a lei.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Escrito por %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Escrito por %s e %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Escrito por %s, %s e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, e outros.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Envíe os informes de fallo a: %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Envíe os informes de fallo en %s a %s.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Páxina web de %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Páxina web de %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "Axuda xeral ao usar software GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle fallou" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "non foi posíbel restaurar o fd %d: dup2 fallou" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "fluxo descoñecido" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "produciuse un erro ao volver abrir %s en modo %s" #~ msgid "string comparison failed" #~ msgstr "produciuse un erro ao comparar as cadeas" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Defina LC_ALL='C' para paliar o problema." #~ msgid "The strings compared were %s and %s." #~ msgstr "As cadeas que se compararon foron %s e %s." #~ msgid "invalid %s%s argument `%s'" #~ msgstr "o argumento «%s» de %s%s é incorrecto" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "sufixo incorrecto %s%s no argumento «%s»" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opción incorrecta -- %c\n" #~ msgid "block size" #~ msgstr "tamaño de bloque" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe pero non é un directorio" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "non se pode cambia-lo propietario e/ou grupo de %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "non se pode cambiar ao directorio %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "non se pode obte-lo grupo de login dun UID numérico" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Este programa é software libre; pode redistribuílo e/ou modificalo baixo\n" #~ "os termos da Licencia Pública Xeral de GNU tal como a publicou a Free\n" #~ "Software Foundation; xa ben a versión 2 ou (á súa elección) calquera\n" #~ "versión posterior.\n" #~ "\n" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/wdiff-gnulib.pot�����������������������������������������������������������������0000644�0000000�0000000�00000005773�12116513224�013777� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: GNU wdiff 1.2.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" �����wdiff-1.2.1/lib/po/af.po����������������������������������������������������������������������������0000644�0000000�0000000�00000024550�12116513224�011616� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coreutils-5.2.1.af.po. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # Petri Jooste <rkwjpj@puknet.puk.ac.za>, 2004. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.2.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2004-03-17 11:58+0200\n" "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n" "Language-Team: Afrikaans <i18n@af.org.za>\n" "Language: af\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Onbekende stelselfout" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: opsie `%s' is dubbelsinnig\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opsie `--%s' laat nie 'n parameter toe nie\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opsie `%c%s' laat nie 'n parameter toe nie\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: opsie `%s' benodig 'n parameter\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: onbekende opsie `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: onbekende opsie `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ongeldige opsie -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opsie benodig 'n parameter -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opsie `-W %s' is dubbelsinnig\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opsie `-W %s' laat nie 'n parameter toe nie\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: opsie `%s' benodig 'n parameter\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: ongeldige relmatige uitdrukking: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "ongeldige karakterklas `%s'" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "ongeldige karakterklas `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: ongeldige relmatige uitdrukking: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "geheue uitgeput" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: ongeldige relmatige uitdrukking: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "fout in soektog met relmatige uitdrukking" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: ongeldige relmatige uitdrukking: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "fout in soektog met relmatige uitdrukking" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "geheue uitgeput" #~ msgid "invalid argument %s for %s" #~ msgstr "ongeldige parameter %s vir %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "dubbelsinnige parameter %s vir %s" #~ msgid "Valid arguments are:" #~ msgstr "Geldige parameters is soos volg:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Verpligte parameters vir langformaat opsies is ook verpligtend vir " #~ "kortformaat opsies.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Gebruik so: %s [OPSIE]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Probeer `%s --help' vir meer inligting.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Rapporteer foute aan <%s>.\n" #~ msgid "NAME" #~ msgstr "NAAM" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "te veel parameters\n" #, fuzzy #~ msgid "program error" #~ msgstr "leesfout" #~ msgid "write error" #~ msgstr "skryffout" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "kan nie %s oopmaak om te lees nie" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "kan nie %s oopmaak om te lees nie" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "fout met die les van %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "fout met die skryf na %s" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "fout met die les van %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "'open' het gefaal" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: seek het misluk" #~ msgid "regular empty file" #~ msgstr "gewone le ler" #~ msgid "regular file" #~ msgstr "gewone ler" #~ msgid "directory" #~ msgstr "lergids" #~ msgid "block special file" #~ msgstr "spesiale blokler" #~ msgid "character special file" #~ msgstr "spesiale karakterler" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "simboliese skakel" #~ msgid "socket" #~ msgstr "sok" #~ msgid "message queue" #~ msgstr "boodskapwagtou" #~ msgid "semaphore" #~ msgstr "semafoor" #~ msgid "shared memory object" #~ msgstr "gedeeldegeheue-objek" #, fuzzy #~ msgid "typed memory object" #~ msgstr "gedeeldegeheue-objek" #~ msgid "weird file" #~ msgstr "vreemde ler" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo-lers word nie ondersteun nie" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo-lers word nie ondersteun nie" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo-lers word nie ondersteun nie" #, fuzzy #~ msgid "System error" #~ msgstr "skryffout" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Onbekende stelselfout" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: onwettige opsie -- %c\n" #~ msgid "block size" #~ msgstr "blokgrootte" #~ msgid "%s exists but is not a directory" #~ msgstr "%s bestaan maar is nie 'n lergids nie" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "kan nie die eienaar en/of groep van %s verander nie" #~ msgid "cannot create directory %s" #~ msgstr "Kan nie lergids %s skep nie." #~ msgid "cannot chdir to directory %s" #~ msgstr "kan nie chdir doen om na gids %s te gaan nie" #~ msgid "cannot change permissions of %s" #~ msgstr "kan nie toegangsregte van %s verander nie" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "kon nie na aanvanklike werkgids terugkeer nie" #~ msgid "failed to return to initial working directory" #~ msgstr "kon nie na aanvanklike werkgids terugkeer nie" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "magtigings vir %s kon nie behou word nie" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "kan nie die skakel %s skep nie" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[jJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "iconv-funksie onbruikbaar" #~ msgid "iconv function not available" #~ msgstr "iconv-funksie is nie beskikbaar nie" #~ msgid "character out of range" #~ msgstr "karakter is buite die grense" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan nie U+%04X omskakel na 'n plaaslike karakterstel nie" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan nie U+%04X omskakel na 'n plaaslike karakterstel nie: %s" #~ msgid "invalid user" #~ msgstr "ongeldige gebruiker" #~ msgid "invalid group" #~ msgstr "ongeldige groep " #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "kan nie die aantekengroep van 'n numeriese UID verkry nie" # TRANSLATORS: %s denotes an author name. # TRANSLATORS: %s denotes an author name. #~ msgid "Written by %s.\n" #~ msgstr "Geskryf deur %s.\n" # TRANSLATORS: Each %s denotes an author name. # TRANSLATORS: Each %s denotes an author name. #~ msgid "Written by %s and %s.\n" #~ msgstr "Geskryf deur %s en %s.\n" # TRANSLATORS: Each %s denotes an author name. #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Geskryf deur %s, %s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s \n" #~ "en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s, \n" #~ "%s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s, \n" #~ "%s, %s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s, \n" #~ "%s, %s, %s en %s.\n" # TRANSLATORS: Each %s denotes an author name. # You can use line breaks, estimating that each author name occupies # ca. 16 screen columns and that a screen line has ca. 80 columns. #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s, \n" #~ "%s, %s, %s, %s\n" #~ "en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s, \n" #~ "%s, %s, %s, %s,\n" #~ "%s en %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Geskryf deur %s, %s, %s, \n" #~ "%s, %s, %s, %s\n" #~ "%s, %s en ander.\n" #~ msgid "string comparison failed" #~ msgstr "stringvergelyking het gefaal" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Stel LC_ALL='C' om die probleem te systap" #~ msgid "The strings compared were %s and %s." #~ msgstr "Die stringe wat vergelyk is, is %s en %s." ��������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/da.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000004750�12116513225�011761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)����������������,�����,�����-����� ���5��(���V��������������������������������$���'�����L�����^�����y������������#����������������������� �����!�����3�����E�� ���W�����d����u�������'���-��'���U��(���}��!�����&�����������������������6�����N�����f��%���~����������������� ����� �����(��� �����@ �����Z �����c ����� ����� ����� ����� �� ��� ����� ������������������������� ���������������������������� ����������������������������������� ����������������� ����������������������������� ����%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '--%s' doesn't allow an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-01-20 22:11+0100 Last-Translator: Keld Simonsen <keld@keldix.com> Language-Team: Danish <dansk@dansk-gruppen.dk> Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: ugyldig flag -- '%c' �%s: flaget '%c%s' tager intet argument �%s: flaget '--%s' tager intet argument �%s: flaget '-W %s' tager intet argument �%s: flaget '-W %s' er flertydigt �%s: flaget krver et argument -- '%c' �%s: ukendt flag '%c%s' �%s: ukendt flag '--%s' �Ugyldig bagudreference�Ugyldigt tegnklassenavn�Ugyldigt sorteringstegn�Ugyldigt indhold i \{\}�Fejlagtigt foregende regulrt udtryk�Ugyldigt intervalslut�Fejlagtigt regulrt udtryk�Hukommelse opbrugt�Ingen trffer�Intet foregende regulrt udtryk�For tidlig afslutning af regulrt udtryk�For stort regulrt udtryk�Lykkedes�Afsluttende baglns skrstreg�Ukendt systemfejl�Ensomt ( eller \(�Ensomt ) eller \)�Ensomt [ eller [^�Ensomt \\{�hukommelsen opbrugt�������������������������wdiff-1.2.1/lib/po/bg.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001156�12116513225�011762� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v��������0�����$���I��������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.90 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2005-10-12 21:41+0300 Last-Translator: Anton Zinoviev <zinoviev@debian.org> Language-Team: Bulgarian <dict@fsa-bg.org> Language: bg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �Непозната системна грешка�паметта е изчерпана�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ja.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000006303�12116513225�011763� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��%�����F�����E���F��F�����4�����G��� ��,���P ��5���} ��7��� ��4��� ��4��� �����U ��!���q ����� ����� ��!��� ����� ����� ��$���' �����L ��'���_ ��*��� ��!��� �� ��� ��!��� ����� ��!���" ��!���D ��!���f ����� ��$��� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-09-02 18:39+0900 Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com> Language-Team: Japanese <translation-team-ja@lists.sourceforge.net> Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; �%s: 無効なオプション -- '%c' �%s: オプション '%c%s' は引数を取ることができません �%s: オプション '%s' は曖昧です:次のものが可能です:�%s: オプション '--%s' は引数を取ることができません �%s: オプション '--%s' は引数が必要です �%s: オプション '-W %s' は引数を取ることができません �%s: オプション '-W %s' は曖昧です �%s: オプション '-W %s' は引数が必要です �%s: オプションには引数が必要です -- '%c' �%s: オプション '%c%s' を認識できません �%s: オプション '--%s' を認識できません �無効な前方参照です�無効な文字クラス名です�無効な照合文字です�\{\} の中身が無効です�無効な前方正規表現です�無効な範囲終了です�無効な正規表現です�メモリを使い果たしました�一致しません�以前に正規表現がありません�正規表現が途中で終了しました�正規表現が大きすぎます�成功です�終端のバックスラッシュ�不明なシステムエラー�( または \( が不一致です�) または \) が不一致です�[ または [^ が不一致です�\{ が不一致です�メモリを使い果たしました������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/pt.po����������������������������������������������������������������������������0000644�0000000�0000000�00000015740�12116513224�011654� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Portuguese translation of the "sh-utils" messages # Copyright (C) 1996 Free Software Foundation, Inc. # Antnio Joo Serras Rendas <arendas@mail.telepac.pt>, 1996 # msgid "" msgstr "" "Project-Id-Version: sh-utils 1.12i\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 1996-11-08 20:03+0100\n" "Last-Translator: Antnio Joo Serras Rendas <arendas@mail.telepac.pt>\n" "Language-Team: Portugus <pt@li.org>\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: lib/error.c:188 #, fuzzy msgid "Unknown system error" msgstr "operador binrio desconhecido" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "demasiados argumentos\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "opo invlida `%s'" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "opo invlida `%s'" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "opo invlida `%s'" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "demasiados argumentos\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "demasiados argumentos\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "opo invlida `%s'" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "data invlida `%s'" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "data invlida `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "opo invlida `%s'" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "memria virtual esgotada" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "opo invlida `%s'" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "opo invlida `%s'" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "opo invlida `%s'" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "opo invlida `%s'" #: lib/xalloc-die.c:34 #, fuzzy msgid "memory exhausted" msgstr "memria virtual esgotada" #, fuzzy #~ msgid "invalid argument %s for %s" #~ msgstr "argumento invlido `%s'" #, fuzzy #~ msgid "ambiguous argument %s for %s" #~ msgstr "falta um argumento a `%s'" #, fuzzy #~ msgid "Valid arguments are:" #~ msgstr "argumento invlido `%s'" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Utilizao: %s [OPO]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Tente `%s --help' para mais informao.\n" #, fuzzy #~ msgid "Print program version" #~ msgstr "erro de leitura" #, fuzzy #~ msgid "program error" #~ msgstr "erro de leitura" #~ msgid "write error" #~ msgstr "erro na escrita" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "no consigo mover `%s' para `%s'" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "no consigo mover `%s' para `%s'" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "%s: apagar directoria `%s'? " #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "%s: apagar directoria `%s'? " #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "%s: apagar directoria `%s'? " #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "ficheiros especiais de tipo bloco no suportados" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "opo invlida `%s'" #, fuzzy #~ msgid "regular file" #~ msgstr "`%s' no um ficheiro normal" #, fuzzy #~ msgid "directory" #~ msgstr "`%s' no uma directoria" #, fuzzy #~ msgid "block special file" #~ msgstr "ficheiros especiais de tipo bloco no suportados" #, fuzzy #~ msgid "character special file" #~ msgstr "ficheiros especiais de tipo caracter no suportados" #, fuzzy #~ msgid "symbolic link" #~ msgstr "no consigo ler ligao (link) simblica `%s'" #, fuzzy #~ msgid "weird file" #~ msgstr "`%s' no um ficheiro normal" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "ficheiros \"fifo\" no suportados" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "ficheiros \"fifo\" no suportados" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "ficheiros \"fifo\" no suportados" #, fuzzy #~ msgid "System error" #~ msgstr "erro na escrita" #, fuzzy #~ msgid "Unknown error" #~ msgstr "operador binrio desconhecido" #, fuzzy #~ msgid "%s: illegal option -- %c\n" #~ msgstr "opo invlida `%s'" #, fuzzy #~ msgid "block size" #~ msgstr "tipo de ordenao" #, fuzzy #~ msgid "%s exists but is not a directory" #~ msgstr "`%s' no uma directoria" #, fuzzy #~ msgid "cannot change owner and/or group of %s" #~ msgstr "aviso: no consigo mudar para a directoria %s" #, fuzzy #~ msgid "cannot create directory %s" #~ msgstr "no consigo obter a directoria actual" #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "aviso: no consigo mudar para a directoria %s" #, fuzzy #~ msgid "cannot change permissions of %s" #~ msgstr "aviso: no consigo mudar para a directoria %s" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "no consigo obter a directoria actual" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "aviso: no consigo mudar para a directoria %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "no consigo obter a directoria actual" #, fuzzy #~ msgid "character out of range" #~ msgstr "ficheiros especiais de tipo caracter no suportados" #, fuzzy #~ msgid "invalid user" #~ msgstr "\\%c: caracter de escape invlido" #, fuzzy #~ msgid "invalid group" #~ msgstr "opo invlida `%s'" #, fuzzy #~ msgid "The strings compared were %s and %s." #~ msgstr "no consigo %s `%s' para `%s'" ��������������������������������wdiff-1.2.1/lib/po/LINGUAS��������������������������������������������������������������������������0000644�0000000�0000000�00000000226�12116370307�011712� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Set of available languages. af be bg ca cs da de el eo es et eu fi fr ga gl hu it ja ko ms nb nl pl pt pt_BR ro ru rw sk sl sv tr uk vi zh_CN zh_TW ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/zh_TW.po�������������������������������������������������������������������������0000644�0000000�0000000�00000025106�12116513225�012262� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# traditional Chinese translation of coreutils. # Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc. # # # Merged from textutils, sh-utils and fileutils translation: # # Yip Chi Lap <clyip@cs.hku.hk>, 1998. # # Yuan-Chung Cheng <platin@ms.ccafps.khc.edu.tw>, 1998. # # Abel Cheung <abelcheung@gmail.com>, 2002. # # Pofeng Lee <pofeng@linux.org.tw>, 1998, 2002. # # Abel Cheung <abelcheung@gmail.com>, 2005. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.3.0\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2005-07-02 04:13+0800\n" "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n" "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "不明的系統錯誤" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s:選項‘%s’不明確\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s:選項‘--%s’不可配合參數使用\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s:選項‘%c%s’不可配合參數使用\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s:選項‘%s’需要參數\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s:無法識別的選項‘--%s’\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s:無法識別的選項‘%c%s’\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s:無效的選項 ─ %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s:選項需要參數 ─ %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s:選項‘-W %s’不明確\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s:選項‘-W %s’不可配合參數使用\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s:選項‘%s’需要參數\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s:無效的正規表示式:%s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "無效的字元種類‘%s’" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "無效的字元種類‘%s’" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 #, fuzzy msgid "Invalid back reference" msgstr "無效的類型‘%s’" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "無效的類型‘%s’" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "記憶體耗盡" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s:無效的正規表示式:%s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "在正規運算式搜尋時發生錯誤" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s:無效的正規表示式:%s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "在正規運算式搜尋時發生錯誤" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "記憶體耗盡" #~ msgid "invalid argument %s for %s" #~ msgstr "%2$s的參數%1$s無效" #~ msgid "ambiguous argument %s for %s" #~ msgstr "%2$s的參數%1$s不明確" #~ msgid "Valid arguments are:" #~ msgstr "有效的參數為:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "長選項必須用的參數在使用短選項時也是必須的。\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "用法:%s [選項] [檔案]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "請嘗試執行‘%s --help’來獲取更多資訊。\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "請向 <%s> 回報錯誤。\n" #~ msgid "NAME" #~ msgstr "名稱" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "%s:找不到正確格式的 %s 總和檢查值" #, fuzzy #~ msgid "program error" #~ msgstr "讀取時發生錯誤" #~ msgid "write error" #~ msgstr "寫入時發生錯誤" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "無法開啟 %s 來讀取資料" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "無法開啟%s來讀取資料" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "讀取 %s 時發生錯誤" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "寫入 %s 時發生錯誤" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "讀取 %s 時發生錯誤" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "開啟時發生錯誤" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "關閉時發生錯誤" #~ msgid "regular empty file" #~ msgstr "普通空白檔案" #~ msgid "regular file" #~ msgstr "普通檔案" #~ msgid "directory" #~ msgstr "目錄" #~ msgid "block special file" #~ msgstr "區塊特殊檔案" #~ msgid "character special file" #~ msgstr "字元特殊檔案" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "符號連結" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "訊息佇列" #~ msgid "semaphore" #~ msgstr "semaphore" #~ msgid "shared memory object" #~ msgstr "共用記憶體物件" #, fuzzy #~ msgid "typed memory object" #~ msgstr "共用記憶體物件" #~ msgid "weird file" #~ msgstr "不正常的檔案" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "不支援 FIFO 檔案" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "不支援 FIFO 檔案" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "不支援 FIFO 檔案" #, fuzzy #~ msgid "System error" #~ msgstr "寫入時發生錯誤" #, fuzzy #~ msgid "Unknown error" #~ msgstr "不明的系統錯誤" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:不合法的選項 ─ %c\n" #, fuzzy #~ msgid "block size" #~ msgstr "區塊特殊檔案" #~ msgid "%s exists but is not a directory" #~ msgstr "%s已存在但不是目錄" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "無法更改%s的擁有者和/或所屬群組" #~ msgid "cannot create directory %s" #~ msgstr "無法建立目錄%s" #~ msgid "cannot chdir to directory %s" #~ msgstr "無法進入%s目錄" #~ msgid "cannot change permissions of %s" #~ msgstr "無法更改%s的權限" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "無法建立目錄%s" #, fuzzy #~ msgid "failed to return to initial working directory" #~ msgstr "無法建立目錄%s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s:無法開啟來寫入資料" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "無法建立 %s 鏈結" #~ msgid "`" #~ msgstr "‘" #~ msgid "'" #~ msgstr "’" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "iconv 功能無法使用" #~ msgid "iconv function not available" #~ msgstr "iconv 功能不存在" #~ msgid "character out of range" #~ msgstr "字元值超出可接受的範圍以外" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "無法將 U+%04X 轉換至使用者的字元集" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "無法將 U+%04X 轉換至使用者的字元集:%s" #~ msgid "invalid user" #~ msgstr "無效的使用者" #~ msgid "invalid group" #~ msgstr "無效的群組" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "無法取得 UID 數值所代表的登入群組" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "本程式是自由軟體;你可以根據 Free Software Foundation 所公佈的 GNU\n" #~ "General Public License 第二版或(自由選擇)較新的版本中的條款去重新\n" #~ "散佈及/或修改本軟體。\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "由 %s 編寫。\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "由 %s 和 %s 編寫。\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "由 %s, %s 和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "由 %s, %s, %s\n" #~ "和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "由 %s, %s, %s,\n" #~ "%s 和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "由 %s, %s, %s,\n" #~ "%s, %s 和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "由 %s, %s, %s, %s,\n" #~ "%s, %s 和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "由 %s, %s, %s, %s,\n" #~ "%s, %s, %s 和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "由 %s, %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "和 %s 編寫。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "由 %s, %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "和 %s 等等編寫。\n" #~ msgid "string comparison failed" #~ msgstr "字串比較出現錯誤" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "請設定 LC_ALL='C' 避免問題出現。" #~ msgid "The strings compared were %s and %s." #~ msgstr "要比較的字串為%s及%s。" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/de.po����������������������������������������������������������������������������0000644�0000000�0000000�00000052066�12116513224�011623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# German translation of gnulib messages. # Copyright © 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Karl Eichwalder <ke@suse.de>, 2001-2002. # Lutz Behnke <lutz.behnke@gmx.de>, 1996, 1997, 1998, 1999, 2000, 2001. # Michael Schmidt <michael@guug.de>, 1996, 1997, 1998, 1999, 2000. # Michael Piefel <piefel@informatik.hu-berlin.de>, 2001, 2002, 2003, 2009. # Kai Wasserbäch <debian@carbon-project.org>, 2009. # Arun Persaud <arun@nubati.net>, 2012 # # TAB: spell it out („Tabulatoren“). -ke- # Don't use obscure abbreviations, please. -ke- # No hyphenation, please. -ke- # # space: Leerzeichen oder Leerschritt # # Check: # idle - untätig # idle: untätig, ruhig, „idle“, Leerlauf # user idle time: Untätigkeitszeit des Benutzers, Ruhezeit, Idle-Time, # Benutzer im Leerlauf # digit - Zahl, Ziffer, Nummer, Stelle # logged in - angemeldet, eingeloggt # requested - gewünscht? # # Some comments on translations used in oder to ensure persistence: # # symbolic links: symbolische Verknüpfungen # hard links: harte Verknüpfungen # backup: Sicherung # mount: einhängen # msgid "" msgstr "" "Project-Id-Version: GNU gnulib-3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-06-03 12:41-0700\n" "Last-Translator: Arun Persaud <arun@nubati.net>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language: de\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" #: lib/error.c:188 msgid "Unknown system error" msgstr "Unbekannter Systemfehler" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: Option »%s« ist mehrdeutig; Möglichkeiten:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: Option »--%s« erlaubt kein Argument\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: Option »%c%s« erlaubt kein Argument\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: Option »--%s« erfordert ein Argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: unbekannte Option »--%s«\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: unbekannte Option »%c%s«\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ungültige Option -- »%c«\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: Option erfordert ein Argument -- »%c«\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: Option »-W %s« ist mehrdeutig\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: Option »-W %s« erlaubt kein Argument\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: Option »-W %s« erfordert ein Argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Erfolg" #: lib/regcomp.c:134 msgid "No match" msgstr "Keine Übereinstimmung" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "ungültiger regulärer Ausdruck" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Ungültige Zeichenklasse" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Ungültiger Zeichenklassenname" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "abschließender Backslash" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Ungültige Rückreferenz" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Keine Übereinstimmung für [ oder [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Keine Übereinstimmung für ( oder \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Keine Übereinstimmung für \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Ungültiger Inhalt in \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Ungültiges Bereichsende" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Speicher ausgeschöpft" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "ungültiger vorhergehender regulärer Ausdruck" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Vorzeitiges Ende des regulären Ausdrucks" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Der reguläre Ausdruck ist zu groß" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Keine Übereinstimmung für ) oder \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Kein vorhergehender regulärer Ausdruck" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "Speicher ausgeschöpft" #~ msgid "invalid argument %s for %s" #~ msgstr "ungültiges Argument %s für %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "mehrdeutiges Argument %s für %s" #~ msgid "Valid arguments are:" #~ msgstr "Gültige Argumente sind:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: Der Wert %s ist kleiner oder gleich %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT Parameter benötigt einen Wert" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT Parameter muss positiv sein" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Unbekannter ARGP_HELP_FMT Parameter" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Müll in ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Erforderliche oder optionale Argumente für lange Optionen sind auch für " #~ "kurze erforderlich bzw. optional." #~ msgid "Usage:" #~ msgstr "Aufruf:" #~ msgid " or: " #~ msgstr " oder: " #~ msgid " [OPTION...]" #~ msgstr " [OPTIONEN] " #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "»%s --help« oder »%s --usage« liefert weitere Informationen.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" #~ msgid "give this help list" #~ msgstr "zeigt diese Hilfeliste" #~ msgid "give a short usage message" #~ msgstr "zeigt eine Kurzfassung des Aufrufs" #~ msgid "NAME" #~ msgstr "NAME" #~ msgid "set the program name" #~ msgstr "den Programmnamen setzen" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "warte für SEK Sekunden (Standardwert 3600)" #~ msgid "print program version" #~ msgstr "zeige Programmversion an" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMM FEHLER) Keine Version bekannt!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: zu viele Argumente\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMM FEHLER) Option hätte erkannt werden müssen!?" #~ msgid "program error" #~ msgstr "Programmfehler" #~ msgid "stack overflow" #~ msgstr "Stacküberlauf" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "kann kein temporäres Verzeichnis finden, versuchen Sie, $TMPDIR zu setzen" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kann temporäres Verzeichnis mit der Schablone „%s“ nicht anlegen" #~ msgid "cannot remove temporary file %s" #~ msgstr "kann temporäre Datei %s nicht entfernen" #~ msgid "cannot remove temporary directory %s" #~ msgstr "kann temporäres Verzeichnis %s nicht entfernen" #~ msgid "error closing file" #~ msgstr "Fehler beim Schließen der Datei" #~ msgid "write error" #~ msgstr "Schreibfehler" #~ msgid "preserving permissions for %s" #~ msgstr "erhalte Zugriffsrechte von %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "Fehler beim Versuch, „%s“ zum Lesen zu öffnen" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "kann Sicherungsdatei „%s“ nicht zum Schreiben öffnen" #~ msgid "error reading \"%s\"" #~ msgstr "Fehler beim Lesen von „%s“" #~ msgid "error writing \"%s\"" #~ msgstr "Fehler beim Schreiben von „%s“" #~ msgid "error after reading \"%s\"" #~ msgstr "Fehler nach dem Lesen von „%s“" #~ msgid "fdopen() failed" #~ msgstr "Fehler bei fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C#-Compiler nicht gefunden, versuchen Sie, pnet zu installieren" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "C#-VM nicht gefunden, versuchen Sie, pnet zu installieren" #~ msgid "%s subprocess failed" #~ msgstr "%s: Unterprozess fehlgeschlagen" #~ msgid "regular empty file" #~ msgstr "reguläre leere Datei" #~ msgid "regular file" #~ msgstr "reguläre Datei" #~ msgid "directory" #~ msgstr "Verzeichnis" #~ msgid "block special file" #~ msgstr "blockorientierte Spezialdatei" #~ msgid "character special file" #~ msgstr "zeichenorientierte Spezialdatei" #~ msgid "fifo" #~ msgstr "FIFO" #~ msgid "symbolic link" #~ msgstr "symbolische Verknüpfung" #~ msgid "socket" #~ msgstr "Socket" #~ msgid "message queue" #~ msgstr "Nachrichtenwarteschlange" #~ msgid "semaphore" #~ msgstr "Semaphor" #~ msgid "shared memory object" #~ msgstr "Objekt gemeinsamen Speichers" #~ msgid "typed memory object" #~ msgstr "Objekt getypten Speichers" #~ msgid "weird file" #~ msgstr "merkwürdige Datei" #~ msgid "Address family for hostname not supported" #~ msgstr "Adressfamilie für Hostnamen nicht unterstützt" #~ msgid "Temporary failure in name resolution" #~ msgstr "Temporäre Störung der Namensauflösung" #~ msgid "Bad value for ai_flags" #~ msgstr "Ungültiger Wert für ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nicht zu umgehende Störung der Namensauflösung" #~ msgid "ai_family not supported" #~ msgstr "ai_family nicht unterstützt" #~ msgid "Memory allocation failure" #~ msgstr "Speicherallokationsfehler" #~ msgid "No address associated with hostname" #~ msgstr "Keine Adresse mit Hostnamen verbunden" #~ msgid "Name or service not known" #~ msgstr "Name oder Service unbekannt" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname nicht unterstützt für ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype nicht unterstützt" #~ msgid "System error" #~ msgstr "Systemfehler" #~ msgid "Argument buffer too small" #~ msgstr "Argumentpuffer zu klein" #~ msgid "Processing request in progress" #~ msgstr "Verarbeitungsanfrage in Bearbeitung" #~ msgid "Request canceled" #~ msgstr "Anfrage abgebrochen" #~ msgid "Request not canceled" #~ msgstr "Anfrage nicht abgebrochen" #~ msgid "All requests done" #~ msgstr "Alle Anfragen erledigt" #~ msgid "Interrupted by a signal" #~ msgstr "Durch Signal unterbrochen" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parameterzeichenkette nicht korrekt kodiert" #~ msgid "Unknown error" #~ msgstr "Unbekannter Fehler" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ungültiges Argument source_version für compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ungültiges Argument target_version für compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "konnte „%s“ nicht erzeugen" #~ msgid "error while writing \"%s\" file" #~ msgstr "Fehler beim Schreiben von der Datei „%s“" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Java-Compiler nicht gefunden, versuchen Sie, gcj zu installieren oder " #~ "setzen Sie $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Java-VM nicht gefunden, versuchen Sie, gij zu installieren oder setzen " #~ "Sie $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "%s-Unterprozess-E/A-Fehler" #~ msgid "cannot change permissions of %s" #~ msgstr "kann Zugriffsrechte von %s nicht ändern" #~ msgid "cannot create directory %s" #~ msgstr "kann Verzeichnis %s nicht anlegen" #~ msgid "unable to record current working directory" #~ msgstr "aktuelles Arbeitsverzeichnisses kann nicht aufgezeichnet werden" #~ msgid "failed to return to initial working directory" #~ msgstr "" #~ "es konnte nicht ins ursprüngliche Arbeitsverzeichnis zurückgekehrt werden" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Konnte /dev/zero nicht zum Lesen öffnen" #~ msgid "creation of reading thread failed" #~ msgstr "Erstellen des Lese-Threads fehlgeschlagen" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "" #~ "Nicht-blockierendes I/O zu Teilprozess %s kann nicht hergestellt werden" #~ msgid "communication with %s subprocess failed" #~ msgstr "Kommunikation mit Teilprozess %s fehlgeschlagen" #~ msgid "write to %s subprocess failed" #~ msgstr "Schreiben zu Teilprozess %s fehlgeschlagen" #~ msgid "read from %s subprocess failed" #~ msgstr "Lesen von Teilprozess %s fehlgeschlagen" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "Teilprozess %s beendet mit Exitcode %d" #~ msgid "creation of threads failed" #~ msgstr "Erstellen von Threads fehlgeschlagen" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "Teilprozess %s beendet mit Exitcode %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "“" #~ msgid "^[yY]" #~ msgstr "^[jJyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "setze Zugriffsrechte von %s" #~ msgid "Hangup" #~ msgstr "Aufgehängt" #~ msgid "Interrupt" #~ msgstr "Unterbrechung" #~ msgid "Quit" #~ msgstr "Beendet" #~ msgid "Illegal instruction" #~ msgstr "Ungültige Anweisung" #~ msgid "Trace/breakpoint trap" #~ msgstr "Trace-/Breakpoint-Falle" #~ msgid "Aborted" #~ msgstr "Abgebrochen" #~ msgid "Floating point exception" #~ msgstr "Fließkomma-Ausnahme" #~ msgid "Killed" #~ msgstr "Getötet" #~ msgid "Bus error" #~ msgstr "Busfehler" #~ msgid "Segmentation fault" #~ msgstr "Speicheraufteilungsfehler" #~ msgid "Broken pipe" #~ msgstr "Unterbrochene Weiterleitung" #~ msgid "Alarm clock" #~ msgstr "Alarmuhr" #~ msgid "Terminated" #~ msgstr "Terminiert" #~ msgid "Urgent I/O condition" #~ msgstr "Dringende I/O-Bedingung" #~ msgid "Stopped (signal)" #~ msgstr "Gestoppt (Signal)" #~ msgid "Stopped" #~ msgstr "Gestoppt" #~ msgid "Continued" #~ msgstr "Fortgesetzt" #~ msgid "Child exited" #~ msgstr "Kind verlassen" #~ msgid "Stopped (tty input)" #~ msgstr "Gestoppt (tty-Eingabe)" #~ msgid "Stopped (tty output)" #~ msgstr "Gestoppt (tty-Ausgabe)" #~ msgid "I/O possible" #~ msgstr "I/O möglich" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU-Zeitbegrenzung überschritten" #~ msgid "File size limit exceeded" #~ msgstr "Dateigrößenbegrenzung überschritten" #~ msgid "Virtual timer expired" #~ msgstr "Virtueller Zeitgeber abgelaufen" #~ msgid "Profiling timer expired" #~ msgstr "Zeitmesser zur Leistungsmessung abgelaufen" #~ msgid "Window changed" #~ msgstr "Fenster geändert" #~ msgid "User defined signal 1" #~ msgstr "Benutzerdefiniertes Signal 1" #~ msgid "User defined signal 2" #~ msgstr "Benutzerdefiniertes Signal 2" #~ msgid "EMT trap" #~ msgstr "EMT-Falle" #~ msgid "Bad system call" #~ msgstr "Fehlerhafter Systemaufruf" #~ msgid "Stack fault" #~ msgstr "Stapelfehler" #~ msgid "Information request" #~ msgstr "Informationsanfrage" #~ msgid "Power failure" #~ msgstr "Stromausfall" #~ msgid "Resource lost" #~ msgstr "Ressource verloren" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "Fehler beim Schreiben in geschlossene Pipe oder Socket" #~ msgid "cannot create pipe" #~ msgstr "kann Pipe nicht erzeugen" #~ msgid "Real-time signal %d" #~ msgstr "Echtzeitsignal %d" #~ msgid "Unknown signal %d" #~ msgstr "Unbekanntes Signal %d" #~ msgid "iconv function not usable" #~ msgstr "iconv-Funktion nicht benutzbar" #~ msgid "iconv function not available" #~ msgstr "iconv-Funktion nicht verfügbar" #~ msgid "character out of range" #~ msgstr "Zeichen außerhalb erlaubter Grenzen" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kann U+%04X nicht in lokalen Zeichensatz konvertieren" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kann U+%04X nicht in lokalen Zeichensatz konvertieren: %s" #~ msgid "invalid user" #~ msgstr "ungültiger Benutzer" #~ msgid "invalid group" #~ msgstr "ungültige Gruppe" #~ msgid "invalid spec" #~ msgstr "ungültige Spec" #~ msgid "unable to display error message" #~ msgstr "kann Fehlermeldung nicht anzeigen" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Paket erstellt von %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Paket erstellt von %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "Dies ist freie Software: Sie können sie ändern und weitergeben.\n" #~ "Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Geschrieben von %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Geschrieben von %s und %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Geschrieben von %s, %s und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s\n" #~ "und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s,\n" #~ "%s und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s,\n" #~ "%s, %s und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s,\n" #~ "%s, %s, %s und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s und %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Geschrieben von %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s und anderen.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Melden Sie Fehler im Program (auf Englisch, mit LC_ALL=C) an <%s>.\n" #~ "Melden Sie Fehler in der Übersetzung an <translation-team-de@lists." #~ "sourceforge.net>.\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Melden Sie %s-Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s Homepage: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Heimatseite von %s: <http://www.gnu.org/software/%s/>.\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Allgemeine Hilfe zur Benutzung von GNU-Software: <http://www.gnu.org/" #~ "gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle fehlgeschlagen" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "Kann Fd %d nicht wiederherstellen: dup2 fehlgeschlagen" #~ msgid "%s subprocess" #~ msgstr "%s-Unterprozess" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-Unterprozess bekam tödliches Signal %d" #~ msgid "stdin" #~ msgstr "Standardeingabe (stdin)" #~ msgid "stdout" #~ msgstr "Standardausgabe (stdout)" #~ msgid "stderr" #~ msgstr "Standardfehlerausgabe (stderr)" #~ msgid "unknown stream" #~ msgstr "Unbekannter Datenstrom" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "Erneutes Öffnen von %s mit Mode %s fehlgeschlagen" #~ msgid "string comparison failed" #~ msgstr "Zeichenkettenvergleich fehlgeschlagen" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Setzen Sie LC_ALL=C, um das Problem zu umgehen." #~ msgid "The strings compared were %s and %s." #~ msgstr "Die verglichenen Zeichenketten waren %s und %s." #~ msgid "cannot perform formatted output" #~ msgstr "kann keine formatierte Ausgabe durchführen" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "ungültiges %s%s-Argument „%s“" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "ungültiger Suffix in %s%s-Argument „%s“" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s-Argument „%s“ zu groß" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ungültige Option -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" #~ "Melden Sie Übersetzungsfehler an <translation-team-de@lists.sourceforge." #~ "net>\n" #~ msgid "block size" #~ msgstr "Blockgröße" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/en@quot.header�������������������������������������������������������������������0000644�0000000�0000000�00000002263�11744500575�013465� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ru.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000007423�12116513225�012023� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��8�����N���W��\�����N��� ��K���R ��P��� ��:��� ��L���* ��L���w ��;��� ��;���� ��.���< ��5���k ��0��� ��5��� ��]��� ��.���f ��8��� ��#��� ����� ��S��� ��]���b ��E��� �������7�����6���M����������������������#����������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-22 21:05+0400 Last-Translator: Yuri Kozlov <yuray@komyakino.ru> Language-Team: Russian <gnu@mx.ru> Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: Lokalize 1.0 �%s: неправильный параметр -- «%c» �%s: для параметра «%c%s» аргумент не разрешён �%s: двусмысленный параметр «%s»; возможные варианты:�%s: для параметра «--%s» аргумент не разрешён �%s: для параметра «--%s» требуется аргумент �%s: у параметра «-W %s» не может быть аргумента �%s: двусмысленный параметр «-W %s» �%s: для параметра «-W %s» требуется аргумент �%s: для параметра требуется аргумент -- «%c» �%s: нераспознанный параметр «%c%s» �%s: нераспознанный параметр «--%s» �Неверная обратная ссылка�Неверное имя класса символов�Неверный символ сравнения�Недопустимое содержимое в \{\}�Недопустимое предшествующее регулярное выражение�Неверный конец диапазона�Неверное регулярное выражение�Закончилась память�Нет совпадений�Отсутствует предыдущее регулярное выражение�Преждевременное завершение регулярного выражения�Слишком большое регулярное выражение�Успешно�Конечная обратная косая черта�Неизвестная системная ошибка�Непарная ( или \(�Непарная ) или \)�Непарная [ или [^�Непарная \{�закончилась память����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/eu.po����������������������������������������������������������������������������0000644�0000000�0000000�00000023362�12116513224�011641� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of coreutils-5.2.1.po to Euskara # Basque translation of 5.2.1. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the Coreutils-5.2.1 package. # Mikel Olasagasti <hey_neken@mundurat.net>, 2004. # msgid "" msgstr "" "Project-Id-Version: coreutils-5.2.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2005-01-04 20:27+0100\n" "Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n" "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Sistema-errore ezezaguna" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: '%s' aukera anbiguoa da\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: '--%s' aukerak ez du argumenturik onartzen\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: '%c%s' aukerak ez du argumenturik onartzen\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: '%s' aukerak argumentu bat behar du\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: '--%s' aukera ezezaguna\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: '%c%s' aukera ezezaguna\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: -- %c aukera baliogabea\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: aukerak --%c argumentu bat behar du\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: '-W %s' aukera anbiguoa da\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: '-W.%s' aukerak ez du argumenturik onartzen\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: '%s' aukerak argumentu bat behar du\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "baliogabea" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "baliogabea" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "baliogabea" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "baliogabea" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "memoria agortuta" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "baliogabea" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "in bilatu" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "baliogabea" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "in bilatu" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria agortuta" #~ msgid "invalid argument %s for %s" #~ msgstr "%s baliogabeko argumentua da %s-(r)entzat" #~ msgid "ambiguous argument %s for %s" #~ msgstr "%s argumentu anbiguoa da %s-(r)entzat" #~ msgid "Valid arguments are:" #~ msgstr "Baliozko argumentuak hauek dira:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Beharrezkoak diren argumentuak aukera luzeetan, beharrezkoak dira aukera " #~ "txikietan ere.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Erabilera: %s [AUKERA]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Saiatu `%s --help' erabiltzen informazio gehiagorako.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Programa-erroreen berri emateko idatzi hona: <%s>.\n" #~ msgid "NAME" #~ msgstr "IZENA" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "e" #, fuzzy #~ msgid "program error" #~ msgstr "irakurketa errorea" #~ msgid "write error" #~ msgstr "idazketa errorea" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "errepikatu arte" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "errepikatu arte" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "errorea %s irakurtzen" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "errorea %s idazten" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "errorea %s irakurtzen" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "irekitzeak huts egin du" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "baliogabea" #~ msgid "regular empty file" #~ msgstr "fitxategi erregular hutsa" #~ msgid "regular file" #~ msgstr "Espresio erregularra" #~ msgid "directory" #~ msgstr "direktorioa" #, fuzzy #~ msgid "block special file" #~ msgstr "bloke tamainua" #, fuzzy #~ msgid "character special file" #~ msgstr "offset karakterea zero da" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "esteka sinbolikoa" #~ msgid "socket" #~ msgstr "socket-a" #~ msgid "message queue" #~ msgstr "Bidali ilara" #~ msgid "semaphore" #~ msgstr "semaforoa" #~ msgid "shared memory object" #~ msgstr "memoria partekatuaren objektua" #, fuzzy #~ msgid "typed memory object" #~ msgstr "memoria partekatuaren objektua" #~ msgid "weird file" #~ msgstr "fitxategi arraroa" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo fitxategiek ez dute euskarririk" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo fitxategiek ez dute euskarririk" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo fitxategiek ez dute euskarririk" #, fuzzy #~ msgid "System error" #~ msgstr "idazketa errorea" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Sistema-errore ezezaguna" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: -- %c aukera ilegala\n" #~ msgid "block size" #~ msgstr "bloke tamainua" #~ msgid "%s exists but is not a directory" #~ msgstr "%s badago baina ez da direktorio bat" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "ezin da %s-(r)en jabetza eta/edo taldea aldatu" #~ msgid "cannot create directory %s" #~ msgstr "ezin da %s direktorioa sortu" #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "ezin da %s direktoriora aldatu" #~ msgid "cannot change permissions of %s" #~ msgstr "ezin da %s-(r)en baimenak aldatu" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "Inprimatu Fitxategi-izena - e e" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "baimenak errepikatu arte" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "ezin da %s esteka sortu" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[bB]" #~ msgid "^[nN]" #~ msgstr "^[eE]" #~ msgid "character out of range" #~ msgstr "karakterea barrutitik kanpora" #~ msgid "invalid user" #~ msgstr "baliogabeko erabiltzailea" #~ msgid "invalid group" #~ msgstr "baliogabeko taldea" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "ezin da UID zenbaki baten saio taldea lortu" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "programa da eta edo - Orokorra Publikoa Lizentzia bider Libre Softwarea " #~ "edo e e" #~ msgid "Written by %s.\n" #~ msgstr "%s-k idatzia.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "%s-k eta %s-k idatzia.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "%s, %s eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "%s eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "%s, %s eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "%s, %s, %s, eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "%s, %s, %s, %s,%s, eta %s-k idatzia.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "%s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s,eta beste batzuk idatzia.\n" #~ msgid "string comparison failed" #~ msgstr "kate konparaketak huts egin du" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Ezarri LC_ALL='C' arazo hau une batez konpontzeko" #~ msgid "The strings compared were %s and %s." #~ msgstr "Alderatutako bi kateak %s eta %s izan dira." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/Makevars�������������������������������������������������������������������������0000644�0000000�0000000�00000005712�12116370307�012366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <http://www.gnu.org/licenses/>. # # 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. # # Generated by gnulib-tool. # Usually the message domain is the same as the package name. # But here it has a '-gnulib' suffix. DOMAIN = wdiff-gnulib # These two variables depend on the location of this directory. subdir = lib/po top_builddir = ../.. # These options get passed to xgettext. XGETTEXT_OPTIONS = \ --keyword=_ --flag=_:1:pass-c-format \ --keyword=N_ --flag=N_:1:pass-c-format \ --keyword='proper_name:1,"This is a proper name. See the gettext manual, section Names."' \ --keyword='proper_name_utf8:1,"This is a proper name. See the gettext manual, section Names."' \ --flag=error:3:c-format --flag=error_at_line:5:c-format # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. gnulib is copyrighted by the FSF. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = bug-gnulib@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = no ������������������������������������������������������wdiff-1.2.1/lib/po/eo.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005456�12116513225�012004� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������.�����.�����.���.��+���]��/�����(�����,�����,��� �����< �����\ �����| ����� ����� ����� ����� ����� ����� �����0 �����G �����X �����s ����� ����� ����� ����� ����� ����� ����� �� ��� ����� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2013-02-06 15:17-0300 Last-Translator: Felipe Castro <fefcas@gmail.com> Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net> Language: eo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit �%s: malvalida modifilo -- '%c' �%s: la modifilo '%c%s' ne permesas argumenton �%s: la modifilo '%s' estas plursenca; eblecoj:�%s: la modifilo '--%s' ne permesas argumenton �%s: la modifilo '--%s' postulas argumenton �%s: la modifilo '-W %s' ne permesas argumenton �%s: la modifilo '-W %s' estas plursenca �%s: la modifilo '-W %s' postulas argumenton �%s: la modifilo postulas argumenton -- '%c' �%s: nerekonata modifilo '%c%s' �%s: nerekonata modifilo '--%s' �Malvalida retroreferenco�Malvalida signa klasnomo�Malvalida ordodifina signo�Malvalida enhavo de \{\}�Malvalida antaŭa regulesprimo�Malvalida intervalofino�Malvalida regulesprimo�Memoro estas plenigita�Neniu kongruaĵo�Neniu antaŭa regulesprimo�Tro frua fino de regulesprimo�Regulesprimo tro grandas�Sukceso�Vosta retroklino�Nekonata sistem-eraro�Senpara ( aŭ \(�Senpara ) aŭ \)�Senpara [ aŭ [^�Senpara \{�memoro estas plenigita�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/nb.po����������������������������������������������������������������������������0000644�0000000�0000000�00000021756�12116513224�011634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Norwegian messages for GNU textutils (bokml dialect) # Copyright (C) 1996 Free Software Foundation, Inc. # Eivind Tagseth <eivindt@multinet.no>, 1996, 1997, 1999. # msgid "" msgstr "" "Project-Id-Version: GNU textutils 2.0.20\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2002-01-27 21:35+0100\n" "Last-Translator: Eivind Tagseth <eivindt@multinet.no>\n" "Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Ukjent systemfeil" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: flagget %s er flertydig\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: flagget --%s trenger et argument\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: flagget %c%s trenger et argument\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: flagget %s trenger et argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: ukjent flagg --%s\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: ukjent flagg %c%s\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ukjent flagg -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: flagget trenger et argument -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: flagget -W %s er flertydig\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: flagget -W %s tillater ikke et argument\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: flagget %s trenger et argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: ugyldig regulrt uttrykk: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "ugyldig tegn-klasse %s" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "ugyldig tegn-klasse %s" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: ugyldig regulrt uttrykk: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "virtuelt minne oppbrukt" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: ugyldig regulrt uttrykk: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "feil i sk med regulrt uttrykk" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: ugyldig regulrt uttrykk: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "feil i sk med regulrt uttrykk" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "virtuelt minne oppbrukt" #~ msgid "invalid argument %s for %s" #~ msgstr "ugyldig argument %s for %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "flertydig argument %s for %s" #~ msgid "Valid arguments are:" #~ msgstr "Gyldige argument er:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Obligatoriske argmenter til lange flagg er obligatoriske ogs for korte.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Bruk: %s [FLAGG] [FIL]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Prv med %s --help for mer informasjon.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Rapportr feil til <bug-textutils@gnu.org>." #, fuzzy #~ msgid "Print program version" #~ msgstr "lesefeil" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "for mange argumenter" #, fuzzy #~ msgid "program error" #~ msgstr "lesefeil" #~ msgid "write error" #~ msgstr "feil ved skriving" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "feil ved lesing av %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "feil ved skriving til %s" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "feil ved lesing av %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "pning av fil feilet" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: ugyldig mnster" #, fuzzy #~ msgid "regular empty file" #~ msgstr "feil ved lesing" #, fuzzy #~ msgid "regular file" #~ msgstr "feil ved lesing" #, fuzzy #~ msgid "directory" #~ msgstr "%s eksisterer men er ikke en katalog" #, fuzzy #~ msgid "block special file" #~ msgstr "blokkstrrelse" #, fuzzy #~ msgid "character special file" #~ msgstr "tegn-posisjon er null" #, fuzzy #~ msgid "symbolic link" #~ msgstr "kan ikke utfre ioctl p %s" #, fuzzy #~ msgid "weird file" #~ msgstr "feil ved lesing" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "blokkstrrelse" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "blokkstrrelse" #, fuzzy #~ msgid "System error" #~ msgstr "feil ved skriving" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Ukjent systemfeil" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ukjent flagg -- %c\n" #~ msgid "block size" #~ msgstr "blokkstrrelse" #~ msgid "%s exists but is not a directory" #~ msgstr "%s eksisterer men er ikke en katalog" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "kan ikke endre eier og/eller gruppe for %s" #~ msgid "cannot create directory %s" #~ msgstr "kan ikke opprette katalog %s" #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "kan ikke skifte til katalog, %s" #~ msgid "cannot change permissions of %s" #~ msgstr "kan ikke endre rettigheter til %s" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "kan ikke opprette katalog %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "kan ikke endre rettigheter til %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "kan ikke opprette katalog %s" #~ msgid "`" #~ msgstr "" #~ msgid "'" #~ msgstr "" #, fuzzy #~ msgid "^[yY]" #~ msgstr "^[jJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, fuzzy #~ msgid "iconv function not usable" #~ msgstr "kan ikke skrive ut U+%04X: iconv-funksjonen er ikke brukbar" #, fuzzy #~ msgid "iconv function not available" #~ msgstr "kan ikke skrive ut U+%04X: iconv-funksjon er ikke tilgjengelig" #, fuzzy #~ msgid "character out of range" #~ msgstr "U+%04X: tegn utenfor tillatte verdier" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnsett" #, fuzzy #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnsett" #~ msgid "invalid user" #~ msgstr "ugyldig bruker" #~ msgid "invalid group" #~ msgstr "ugyldig gruppe" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "kan ikke finne login-gruppen til en numerisk bruker-ID" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Dette programmet er fri programvare. Du kan redistribueret det og/eller\n" #~ "modifisere det under betingelsene gitt av GNU General Public License som\n" #~ "distribuert av Free Software Foundation; enten versjon 2, eller (om du " #~ "vil)\n" #~ "en hvilken som helst senere versjon.\n" #~ msgid "Written by %s.\n" #~ msgstr "Skrevet av %s.\n" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "Skrevet av %s.\n" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Skrevet av %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Skrevet av %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Skrevet av %s.\n" #~ msgid "string comparison failed" #~ msgstr "strengsammenligning feilet" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Sett LC_ALL='C' for omg problemet." #~ msgid "The strings compared were %s and %s." #~ msgstr "Strengene som ble sammenlignet var %s og %s." ������������������wdiff-1.2.1/lib/po/sl.po����������������������������������������������������������������������������0000644�0000000�0000000�00000051205�12116513224�011643� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNUlib. # Copyright (C) 2005, 2007, 2009, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Primož Peterlin <primozz.peterlin@gmail.com>, 2005, 2007, 2009, 2012. # $Id: gnulib-3.0.0.6062.a6b16.sl.po,v 1.5 2012/05/20 11:08:36 peterlin Exp $ # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-05-20 13:08+0200\n" "Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Neznana sistemska napaka" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: izbira »%s« je dvoumna; možnosti:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: izbira »--%s« zahteva argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: neprepoznana izbira »--%s«\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: neprepoznana izbira »%c%s«\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: neveljavna izbira -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: izbira zahteva argument -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: izbira »-W %s« je dvoumna\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: izbira »-W %s« zahteva argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Uspešno" #: lib/regcomp.c:134 msgid "No match" msgstr "Brez zadetkov" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Neveljaven regularni izraz" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Neveljaven razvrščevalni znak" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Neveljavno ime razreda znakov" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Zaključna obratna poševnica" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Neveljaven povratni sklic" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Uklepaj [ ali [^ brez para" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Uklepaj ( ali \\( brez para" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Uklepaj \\{ brez para" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Neveljavna vsebina \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Neveljaven konec razpona" # ! INEXACT #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Pomnilnik izčrpan" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Neveljaven predhodni regularni izraz" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Predčasen zaključek regularnega izraza" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Regularni izraz je preobsežen" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Zaklepaj ) ali \\) brez para" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Prejšnjega regularnega izraza ni" # ! INEXACT #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "zmanjkalo pomnilnika" #~ msgid "invalid argument %s for %s" #~ msgstr "neveljavni argument %s za %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "dvoumni argument %s za %s" #~ msgid "Valid arguments are:" #~ msgstr "Veljavni argumenti so:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: vrednost %s je manjša ali enaka %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT parameter zahteva vrednost" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parameter mora biti pozitiven" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Neznan parameter ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Smetje v ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumenti, navedeni kot obvezni ali neobvezni pri dolgi obliki izbire, so " #~ "obvezni ali neobvezni tudi pri vseh odgovarjajočih kratkih oblikah." #~ msgid "Usage:" #~ msgstr "Uporaba:" #~ msgid " or: " #~ msgstr " ali: " #~ msgid " [OPTION...]" #~ msgstr " [IZBIRA...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Poskusite »%s --help« ali »%s --usage« za izčrpnejša navodila.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Poročila o napakah: %s\n" #~ msgid "give this help list" #~ msgstr "poda ta seznam pomoči" #~ msgid "give a short usage message" #~ msgstr "poda kratka navodila" #~ msgid "NAME" #~ msgstr "IME" #~ msgid "set the program name" #~ msgstr "nastavi ime programa" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "zastane za SEK sekund (privzeto 3600)" #~ msgid "print program version" #~ msgstr "izpiše različico programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMSKA NAPAKA) Različice ni moč ugotoviti?!" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Preveč argumentov\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMSKA NAPAKA) Izbire bi morali prepoznati?!" #~ msgid "program error" #~ msgstr "napaka v programu" #~ msgid "stack overflow" #~ msgstr "prekoračitev sklada" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "začasnega imenika ni moč najti, poskusite nastaviti $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "začasnega imenika z uporabo šablone \"%s\" ni mogoče ustvariti" #~ msgid "cannot remove temporary file %s" #~ msgstr "začasne datoteke v %s ni mogoče odstraniti" #~ msgid "cannot remove temporary directory %s" #~ msgstr "začasnega imenika %s ni mogoče odstraniti" #~ msgid "error closing file" #~ msgstr "napaka pri zapiranju datoteke" #~ msgid "write error" #~ msgstr "napaka pri pisanju" #~ msgid "preserving permissions for %s" #~ msgstr "ohranjena dovoljenja za %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "napaka pri odpiranju datoteke \"%s\" za branje" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "varnostne kopije \"%s\" ni mogoče odpreti za pisanje" #~ msgid "error reading \"%s\"" #~ msgstr "napaka pri branju \"%s\"" #~ msgid "error writing \"%s\"" #~ msgstr "napaka pri pisanju na \"%s\"" #~ msgid "error after reading \"%s\"" #~ msgstr "napaka po branju \"%s\"" #~ msgid "fdopen() failed" #~ msgstr "klic fdopen() ni uspel" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "prevajalnika za C# ni najti, namestite pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "virtualnega stroja C# ni najti, namestite pnet" #~ msgid "%s subprocess failed" #~ msgstr "podproces %s ni uspel" #~ msgid "regular empty file" #~ msgstr "navadna prazna datoteka" #~ msgid "regular file" #~ msgstr "navadna datoteka" #~ msgid "directory" #~ msgstr "imenik" #~ msgid "block special file" #~ msgstr "bločna enota" #~ msgid "character special file" #~ msgstr "znakovna enota" #~ msgid "fifo" #~ msgstr "FIFO" # ! INEXACT #~ msgid "symbolic link" #~ msgstr "simbolna povezava" #~ msgid "socket" #~ msgstr "vtičnica" #~ msgid "message queue" #~ msgstr "vrsta sporočil" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "deljen pomnilniški predmet" #~ msgid "typed memory object" #~ msgstr "tipiziran pomnilniški predmet" #~ msgid "weird file" #~ msgstr "čudna datoteka" #~ msgid "Address family for hostname not supported" #~ msgstr "Družina naslovov za ime gostitelja ni podprta" #~ msgid "Temporary failure in name resolution" #~ msgstr "Razreševanje imena začasno ni uspelo" #~ msgid "Bad value for ai_flags" #~ msgstr "Slaba vrednost ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nepopravljiv neuspeh pri razreševanju imena" #~ msgid "ai_family not supported" #~ msgstr "ai_family ni podprt" #~ msgid "Memory allocation failure" #~ msgstr "Dodelitev pomnilnika ni uspela" #~ msgid "No address associated with hostname" #~ msgstr "Z imenom gostitelja ni povezan noben naslov" #~ msgid "Name or service not known" #~ msgstr "Ime ali storitev ni poznana" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname ni podprt za ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ni podprt" #~ msgid "System error" #~ msgstr "Sistemska napaka" #~ msgid "Argument buffer too small" #~ msgstr "Medpomnilnik za argumente premajhen" #~ msgid "Processing request in progress" #~ msgstr "Obdelava zahtevka v teku" #~ msgid "Request canceled" #~ msgstr "Zahtevek preklican" #~ msgid "Request not canceled" #~ msgstr "Zahtevek ni preklican" #~ msgid "All requests done" #~ msgstr "Vsi zahtevki obdelani" #~ msgid "Interrupted by a signal" #~ msgstr "Prekinjeno s signalom" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametrični niz nepravilno kodiran" #~ msgid "Unknown error" #~ msgstr "Neznana napaka" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "neveljaven argument source_version za compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "neveljaven argument target_version za compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "ni mogoče ustvariti \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "napaka pri pisanju na datoteko \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "prevajalnika za Javo ni najti, nastavite $JAVAC ali namestite gcj" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "virtualnega stroja za Javo ni najti, nastavite $JAVA ali namestite gij" #~ msgid "%s subprocess I/O error" #~ msgstr "V/I napaka podprocesa %s" #~ msgid "cannot change permissions of %s" #~ msgstr "dovoljenj %s ni mogoče spremeniti" #~ msgid "cannot create directory %s" #~ msgstr "imenika %s ni mogoče ustvariti" #~ msgid "unable to record current working directory" #~ msgstr "ni mogoče zabeležiti trenutnega delovnega imenika" #~ msgid "failed to return to initial working directory" #~ msgstr "vrnitev v začetni delovni imenik ni uspela" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Datoteke /dev/null ni uspelo odpreti za branje" #~ msgid "creation of reading thread failed" #~ msgstr "niti za pisanje ni bilo mogoče ustvariti" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "neblokiranega V/I za podproces %s ni mogoče nastaviti" #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikacija s podprocesom %s ni uspela" #~ msgid "write to %s subprocess failed" #~ msgstr "pisanje na podproces %s ni uspelo" #~ msgid "read from %s subprocess failed" #~ msgstr "branje s podprocesa %s ni uspelo" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "podproces %s se je zaključil z izhodno kodo %d" #~ msgid "creation of threads failed" #~ msgstr "ustvarjanje niti ni uspelo" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s podproces se je zaključil z izhodno kodo %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "»" #~ msgid "'" #~ msgstr "«" #~ msgid "^[yY]" #~ msgstr "^[jJdD]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "nastavljena dovoljenja za %s" #~ msgid "Hangup" #~ msgstr "Odklop" #~ msgid "Interrupt" #~ msgstr "Prekinitev" #~ msgid "Quit" #~ msgstr "Končanje" #~ msgid "Illegal instruction" #~ msgstr "Nedovoljen ukaz" #~ msgid "Trace/breakpoint trap" #~ msgstr "Past" #~ msgid "Aborted" #~ msgstr "Prekinjen" #~ msgid "Floating point exception" #~ msgstr "Prekoračitev plavajoče vejice" #~ msgid "Killed" #~ msgstr "Pobit" #~ msgid "Bus error" #~ msgstr "Napaka vodila" #~ msgid "Segmentation fault" #~ msgstr "Napaka segmentacije" #~ msgid "Broken pipe" #~ msgstr "Prekinjen cevovod" #~ msgid "Alarm clock" #~ msgstr "Budilka" #~ msgid "Terminated" #~ msgstr "Zaključen" #~ msgid "Urgent I/O condition" #~ msgstr "Nujno V/I stanje" #~ msgid "Stopped (signal)" #~ msgstr "Ustavljen (signal)" #~ msgid "Stopped" #~ msgstr "Ustavljen" #~ msgid "Continued" #~ msgstr "Nadaljevan" #~ msgid "Child exited" #~ msgstr "Izhod nasledniškega procesa" #~ msgid "Stopped (tty input)" #~ msgstr "Ustavljen (vhod TTY)" #~ msgid "Stopped (tty output)" #~ msgstr "Ustavljen (izhod TTY)" #~ msgid "I/O possible" #~ msgstr "Mogoč V/I" #~ msgid "CPU time limit exceeded" #~ msgstr "Presežena omejitev procesorskega časa" #~ msgid "File size limit exceeded" #~ msgstr "Presežena omejitev dolžine datoteke" #~ msgid "Virtual timer expired" #~ msgstr "Iztek virtualne štoparice" #~ msgid "Profiling timer expired" #~ msgstr "Iztek profilirne štoparice" #~ msgid "Window changed" #~ msgstr "Zamenjano okno" #~ msgid "User defined signal 1" #~ msgstr "Uporabniški signal 1" #~ msgid "User defined signal 2" #~ msgstr "Uporabniški signal 2" #~ msgid "EMT trap" #~ msgstr "Past EMT" #~ msgid "Bad system call" #~ msgstr "Slab sistemski klic" #~ msgid "Stack fault" #~ msgstr "Napaka sklada" #~ msgid "Information request" #~ msgstr "Informacijski zahtevek" #~ msgid "Power failure" #~ msgstr "Izpad toka" #~ msgid "Resource lost" #~ msgstr "Vir izgubljen" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "napaka pri pisanju na zaprt cevovod ali vtič" #~ msgid "cannot create pipe" #~ msgstr "ni mogoče ustvariti cevovoda" #~ msgid "Real-time signal %d" #~ msgstr "Realnočasovni signal %d" #~ msgid "Unknown signal %d" #~ msgstr "Neznani signal %d" #~ msgid "iconv function not usable" #~ msgstr "funkcija iconv ne deluje" #~ msgid "iconv function not available" #~ msgstr "funkcija iconv ni na voljo" #~ msgid "character out of range" #~ msgstr "koda znaka izven obsega" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "znaka s kodo U+%04X ni mogoče pretvoriti v lokalni nabor znakov" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "znaka s kodo U+%04X ni moč pretvoriti v lokalni nabor znakov: %s" #~ msgid "invalid user" #~ msgstr "neveljavno uporabniško ime" #~ msgid "invalid group" #~ msgstr "neveljavno ime skupine" #~ msgid "invalid spec" #~ msgstr "neveljavna specifikacija" #~ msgid "unable to display error message" #~ msgstr "sporočila o napaki ni mogoče prikazati" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Priprava paketa: %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Priprava paketa: %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "GPLv3+: GNU GPL, 3. izdaja ali poznejša <http://www.gnu.org/licenses/gpl." #~ "html>\n" #~ "To je prosto programje; lahko ga redistribuirate in/ali spreminjate.\n" #~ "Za izdelek ni NOBENEGA JAMSTVA, do z zakonom dovoljene meje.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Avtor(ica): %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Avtorja: %s in %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Avtorji: %s, %s in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s\n" #~ "in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s,\n" #~ "%s in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s,\n" #~ "%s, %s in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s,\n" #~ "%s, %s, %s in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s in %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Avtorji: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s in drugi.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Poročila o napakah: %s\n" #~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge." #~ "net>.\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "" #~ "Napake v programu %s sporočite na: %s\n" #~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge." #~ "net>.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Domača stran %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Spletna stran %s: <http://www.gnu.org/software/%s/>.\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Splošna pomoč za rabo programja GNU: <http://www.gnu.org/gethelp/>.\n" #~ msgid "_open_osfhandle failed" #~ msgstr "klic _open_osfhandle ni uspel" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ni mogoče obnoviti fd %d: klic dup2 ni uspel" #~ msgid "%s subprocess" #~ msgstr "podproces %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "podproces %s je prejel terminalni signal %d" #~ msgid "stdin" #~ msgstr "standardni vhod" #~ msgid "stdout" #~ msgstr "standardni izhod" #~ msgid "stderr" #~ msgstr "standardna izhod za napake" #~ msgid "unknown stream" #~ msgstr "neznani tok" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "ponovno odpiranje %s v načinu %s ni uspelo" #~ msgid "string comparison failed" #~ msgstr "primerjanje nizov ni uspelo" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Nastavite LC_ALL='C', da bi odpravili težavo." #~ msgid "The strings compared were %s and %s." #~ msgstr "Primerjana niza sta bila %s in %s." #~ msgid "cannot perform formatted output" #~ msgstr "oblikovanega izpisa ni mogoče izvesti" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "neveljavni %s%s argument »%s«" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "neveljavna pripona pri %s%s argumentu »%s«" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s: argument »%s« je prevelik" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: nedovoljena izbira -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Napake v programu sporočite na %s.\n" #~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge." #~ "net>.\n" #~ msgid "block size" #~ msgstr "velikost bloka" #~ msgid "%s exists but is not a directory" #~ msgstr "%s obstaja, vendar ni imenik" # ! INEXACT #~ msgid "cannot change owner and/or group of %s" #~ msgstr "lastnika in/ali skupine %s ni mogoče spremeniti" #~ msgid "cannot chdir to directory %s" #~ msgstr "dostop do imenika %s ni mogoč" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "imena skupine, ki pripada številčnemu UID, ni mogoče ugotoviti" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Ta program je prosta programska oprema; lahko ga redistribuirate in/ali\n" #~ "spreminjate po pogojih, določenih v »GNU General Public License«, \n" #~ "<http://www.gnu.org/licenses/gpl.html>. Za izdelek ni NOBENEGA JAMSTVA, " #~ "do\n" #~ "z zakonom dovoljene meje.\n" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ko.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001055�12116513225�012001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v���~���������������������������������Unknown system error�memory exhausted�Project-Id-Version: GNU textutils 2.0.22 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2002-07-22 20:02+0900 Last-Translator: Changwoo Ryu <cwryu@debian.org> Language-Team: Korean <translation-team-ko@lists.sourceforge.net> Language: ko MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Transfer-Encoding: 8bit � ý �޸𸮰 ٴڳ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/remove-potcdate.sin��������������������������������������������������������������0000644�0000000�0000000�00000000660�11744500575�014510� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ��������������������������������������������������������������������������������wdiff-1.2.1/lib/po/be.po����������������������������������������������������������������������������0000644�0000000�0000000�00000025555�12116513224�011624� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) 2002, 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the coreutils package. # Ales Nyakhaychyk <nab@mail.by>, 2002, 2003. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.0.91\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2003-10-30 01:10+0200\n" "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n" "Language-Team: Belarusian <i18n@mova.org>\n" "Language: be\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" "X-Generator: KBabel 1.0.2\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Невядомая сыстэмная памылка" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: выбар `%s' неадназначны\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: выбар `--%s' не дазваляе довад\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: выбар `%c%s' не дазваляе довад\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: выбар `%s' патрабуе довад\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: нераспазнаны выбар `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: нераспазнаны выбар `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: нерэчаісны выбар -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: выбар патрабуе довад -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: выбар `-W %s' неадназначыны\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: выбар `-W %s' не дазваляе довад\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: выбар `%s' патрабуе довад\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: нерэчаісны звычайны выраз: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "нерэчаісны знак %s у радку рэжыму %s" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "нерэчаісны знак %s у радку рэжыму %s" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: нерэчаісны звычайны выраз: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "памяць вычарпана" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: нерэчаісны звычайны выраз: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "памылка ў пошуку звычайнага выразу" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: нерэчаісны звычайны выраз: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "памылка ў пошуку звычайнага выразу" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "памяць вычарпана" #~ msgid "invalid argument %s for %s" #~ msgstr "нерэчаісны довад %s для %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "неадназначны довад %s для %s" #~ msgid "Valid arguments are:" #~ msgstr "Рэчаісныя довады:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Довады, абавязковыя для доўгіх выбараў, абавязковыя й для кароткіх.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Выкарыстаньне: %s [ВЫБАР]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Паспрабуйце \"%s --help\" для больш падрабязных зьвестак.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Паведамляйце пра памылкі на <%s>.\n" #~ msgid "NAME" #~ msgstr "НАЗВА" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "зашмат довадаў\n" #, fuzzy #~ msgid "program error" #~ msgstr "памылка чытаньня" #~ msgid "write error" #~ msgstr "памылка запісу" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "немагыма адчыніць %s для чытаньня" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "немагыма адчыніць %s для чытаньня" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "памылка чытаньня %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "памылка запісу %s" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "памылка чытаньня %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "памылка адкрыцьця" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: збой seek" #~ msgid "regular empty file" #~ msgstr "звычайны парожні файл" #~ msgid "regular file" #~ msgstr "звычайны файл" #~ msgid "directory" #~ msgstr "тэчка" #~ msgid "block special file" #~ msgstr "асаблівы кавалкавы файл" #~ msgid "character special file" #~ msgstr "асаблівы знакавы файл" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "знакавае лучыва" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "чарга паведамленьняў" #~ msgid "semaphore" #~ msgstr "сэмафор" #~ msgid "shared memory object" #~ msgstr "абьект з агульнай памяцьцю" #, fuzzy #~ msgid "typed memory object" #~ msgstr "абьект з агульнай памяцьцю" #~ msgid "weird file" #~ msgstr "лёсавы файл" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo файлы непадтрымліваюцца" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo файлы непадтрымліваюцца" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo файлы непадтрымліваюцца" #, fuzzy #~ msgid "System error" #~ msgstr "памылка запісу" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Невядомая сыстэмная памылка" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: недапушчальны выраб -- %c\n" #~ msgid "block size" #~ msgstr "памер кавалку" #~ msgid "%s exists but is not a directory" #~ msgstr "%s існуе, але гэта ня тэчка" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "немагчыма зьмяніць уладальніка й/ці групу %s" #~ msgid "cannot create directory %s" #~ msgstr "немагчыма стварыць тэчку %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "немагчыма перайсьці да тэчкі %s" #~ msgid "cannot change permissions of %s" #~ msgstr "немагчыма зьмяніць правы %s" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "немагчыма вярнуцца ў пачатковую працоўную тэчку" #~ msgid "failed to return to initial working directory" #~ msgstr "немагчыма вярнуцца ў пачатковую працоўную тэчку" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "збой пры захаваньні правоў для %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "немагчыма стварыць лучыва %s" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[тТ]" #~ msgid "^[nN]" #~ msgstr "^[нН]" #~ msgid "iconv function not usable" #~ msgstr "функцыя iconv непрыгодна для выкарыстаньня" #~ msgid "iconv function not available" #~ msgstr "недаступна функцыя iconv" #~ msgid "character out of range" #~ msgstr "знак па за дапушчальнымі межамі" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "немагчыма пераўтварыць U+%04X у мясцовы набор знакаў" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "немагчыма пераўтварыць U+%04X у мясцовы набор знакаў: %s" #~ msgid "invalid user" #~ msgstr "нерэчаісны карыстальнік" #~ msgid "invalid group" #~ msgstr "нерэчаісная група" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "немагчыма атрымаць уліковую групу лічбавага UID" #~ msgid "Written by %s.\n" #~ msgstr "Стваральнік %s.\n" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "Стваральнік %s.\n" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Стваральнік %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Стваральнік %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Стваральнік %s.\n" #~ msgid "string comparison failed" #~ msgstr "памылка параўнаньня радку" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Усталюйце LC_ALL='C' каб працаваць без пытаньняў." #~ msgid "The strings compared were %s and %s." #~ msgstr "Радкі былі параўнаны тут %s і тут %s." ���������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/sl.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005721�12116513225�012012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������+���<��(���h��+�����%�����,����� ��� ��&���1 ��$���X ��!���} ��!��� ����� ����� ����� ����� ��$���1 �����V �����o ����� �� ��� ��!��� ��(��� ����� ����� ����� �����< �����U �����p ����� ����� ����� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-05-20 13:08+0200 Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com> Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net> Language: sl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); �%s: neveljavna izbira -- '%c' �%s: izbira »%c%s« ne dovoljuje argumenta �%s: izbira »%s« je dvoumna; možnosti:�%s: izbira »--%s« ne dovoljuje argumenta �%s: izbira »--%s« zahteva argument �%s: izbira »-W %s« ne dovoljuje argumenta �%s: izbira »-W %s« je dvoumna �%s: izbira »-W %s« zahteva argument �%s: izbira zahteva argument -- '%c' �%s: neprepoznana izbira »%c%s« �%s: neprepoznana izbira »--%s« �Neveljaven povratni sklic�Neveljavno ime razreda znakov�Neveljaven razvrščevalni znak�Neveljavna vsebina \{\}�Neveljaven predhodni regularni izraz�Neveljaven konec razpona�Neveljaven regularni izraz�Pomnilnik izčrpan�Brez zadetkov�Prejšnjega regularnega izraza ni�Predčasen zaključek regularnega izraza�Regularni izraz je preobsežen�Uspešno�Zaključna obratna poševnica�Neznana sistemska napaka�Uklepaj ( ali \( brez para�Zaklepaj ) ali \) brez para�Uklepaj [ ali [^ brez para�Uklepaj \{ brez para�zmanjkalo pomnilnika������������������������������������������������wdiff-1.2.1/lib/po/tr.po����������������������������������������������������������������������������0000644�0000000�0000000�00000026121�12116513224�011651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of coreutils-5.3.0.tr.po to Turkish # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Ali Devin Sezer <Ali_Sezer@brown.edu>, 2002. # Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, 2002. # Onur Tolga ŞEHİTOĞLU <onur@lcsl.metu.edu.tr>, 1998. # Deniz Akkus Kanca <deniz@arayan.com>, 2001,2003, 2004. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.3.0\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2005-03-14 04:17+0200\n" "Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" "Language: tr\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-Generator: KBabel 1.9.1\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Bilinmeyen sistem hatası" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: `%s' seçeneği belirsiz\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: `--%s' seçeneği argümansız kullanılır\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: seçenek `%c%s' argümansız kullanılır\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: `--%s' seçeneği bilinmiyor\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: `%c%s' seçeneği bilinmiyor\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: geçersiz seçenek -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: seçenek bir argümanla kullanılır -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: `-W %s' seçeneği belirsiz\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' seçeneği argümansız kullanılır\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: geçersiz düzenli ifade(regular expression): %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "geçersiz karakter sınıfı `%s'" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "geçersiz karakter sınıfı `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 #, fuzzy msgid "Invalid back reference" msgstr "Geçersiz sayfa aralığı `%s'" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "Geçersiz sayfa aralığı `%s'" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "bellek tükendi" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: geçersiz düzenli ifade(regular expression): %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "düzenli ifade (regular expression) aramasında hata oluştu" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: geçersiz düzenli ifade(regular expression): %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "düzenli ifade (regular expression) aramasında hata oluştu" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "bellek tükendi" #~ msgid "invalid argument %s for %s" #~ msgstr "%s argümanı `%s' için geçersiz" #~ msgid "ambiguous argument %s for %s" #~ msgstr "%s argümanı `%s' için belirsiz" #~ msgid "Valid arguments are:" #~ msgstr "Geçerli argümanlar:" # #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de " #~ "zorunludur.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Kullanım: %s [SEÇENEK]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Daha fazla bilgi için `%s --help' yazın.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Yazılım hatalarını <%s> adresine,\n" #~ "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildirin.\n" #~ msgid "NAME" #~ msgstr "İSİM" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: çok fazla sağlama satırı" #, fuzzy #~ msgid "program error" #~ msgstr "okuma hatası" #~ msgid "write error" #~ msgstr "yazma hatası" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "%s okumak için açılamadı" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "%s yazmak için açılamadı" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "%s'i okunurken hata" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "%s'e yazarken hata" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "%s'i okunurken hata" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "açma işlemi başarısız" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: arama (seek) başarısız" # #~ msgid "regular empty file" #~ msgstr "normal boş dosya" # #~ msgid "regular file" #~ msgstr "normal dosya" #~ msgid "directory" #~ msgstr "dizin" # #~ msgid "block special file" #~ msgstr "blok özel dosyası" # #~ msgid "character special file" #~ msgstr "karakter özel dosyası" # #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "sembolik bağ" #~ msgid "socket" #~ msgstr "soket" #~ msgid "message queue" #~ msgstr "ileti kuyruğu" #~ msgid "semaphore" #~ msgstr "semafor" # #~ msgid "shared memory object" #~ msgstr "paylaşımlı bellek nesnesi" # #~ msgid "typed memory object" #~ msgstr "türlenmiş bellek nesnesi" # #~ msgid "weird file" #~ msgstr "garip dosya" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo dosyaları desteklenmiyor" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo dosyaları desteklenmiyor" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo dosyaları desteklenmiyor" #, fuzzy #~ msgid "System error" #~ msgstr "yazma hatası" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Bilinmeyen sistem hatası" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: kuraldışı seçenek -- %c\n" #~ msgid "block size" #~ msgstr "blok uzunluğu" #~ msgid "%s exists but is not a directory" #~ msgstr "%s var ama bir dizin değil" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "%s'in sahibi ve/veya grubu değiştirilemiyor" #~ msgid "cannot create directory %s" #~ msgstr "%s dizini oluşturulamıyor" #~ msgid "cannot chdir to directory %s" #~ msgstr "%s dizinine geçilemedi" #~ msgid "cannot change permissions of %s" #~ msgstr "%s'in erişim izinleri değiştirilemiyor" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "openat: çalışılan dizini kaydedemedi" #~ msgid "failed to return to initial working directory" #~ msgstr "başlangıç çalışma dizinine geri dönülemedi" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s: yazmak için açılamadı" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "%s bağı oluşturulamadı" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[eE]" #~ msgid "^[nN]" #~ msgstr "^[hH]" # #~ msgid "iconv function not usable" #~ msgstr "iconv işlevi kullanılabilir değil" #~ msgid "iconv function not available" #~ msgstr "iconv işlevi yok" #~ msgid "character out of range" #~ msgstr "karakter kapsamdışı" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X yerel karakter kümesine dönüştürülemiyor" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X yerel karakter kümesine dönüştürülemiyor: %s" #~ msgid "invalid user" #~ msgstr "kullanıcı geçersiz" #~ msgid "invalid group" #~ msgstr "grup geçersiz" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "bir sayısal kullanıcı-kimliğin grubu alınamıyor" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Bu, bir serbest yazılımdır; Free Software Foundation tarafından " #~ "yayınlanan\n" #~ "GNU Genel Kamu Lisansı, 2. sürüm (veya sizin seçiminize bağlı olarak) " #~ "daha üst \n" #~ "sürüm koşulları altında değişiklik yapabilir ve/veya yeniden " #~ "dağıtabilirsiniz. \n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "%s tarafından yazıldı.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "%s ve %s tarafından yazıldı.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "%s, %s ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "%s, %s, %s \n" #~ "ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s, %s \n" #~ "ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s, %s, \n" #~ "%s ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s, %s, \n" #~ "%s, %s ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "%s, %s, %s, \n" #~ "%s, %s, %s, \n" #~ "%s ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "%s, %s, %s, \n" #~ "%s, %s, %s, \n" #~ "%s, %s ve %s tarafından yazıldı.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "%s, %s, %s, \n" #~ "%s, %s, %s, \n" #~ "%s, %s, %s ve başkaları tarafından yazıldı.\n" # #~ msgid "string comparison failed" #~ msgstr "dizge karşılaştırması başarısız" # #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Problemi devre dışı bırakmak için LC_ALL='C' tanımlayın." #~ msgid "The strings compared were %s and %s." #~ msgstr "Karşılaştırılan dizgeler %s ve %s idi." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/pl.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005677�12116513225�012021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������-���/��2���]��-�����%�����.�����'��� ��&���; ��&���b ����� ����� ����� ����� ����� ����� ��,���* �����W �����o ����� ����� ��(��� ��*��� ����� �����$ �����+ �����? �����Y �����o ����� ����� ����� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-22 12:41+0200 Last-Translator: Jakub Bogusz <qboosh@pld-linux.org> Language-Team: Polish <translation-team-pl@lists.sourceforge.net> Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; �%s: błędna opcja -- '%c' �%s: opcja '%c%s' nie może mieć argumentów �%s: opcja '%s' jest niejednoznaczna; możliwości:�%s: opcja '--%s' nie może mieć argumentów �%s: opcja '--%s' musi mieć argument �%s: opcja '-W %s' nie może mieć argumentów �%s: opcja '-W %s' jest niejednoznaczna �%s: opcja '-W %s' musi mieć argument �%s: opcja musi mieć argument -- '%c' �%s: nieznana opcja '%c%s' �%s: nieznana opcja '--%s' �Błędne odniesienie wstecz�Błędna nazwa klasy znaków�Błędny znak sortowany�Błędna zawartość \{\}�Błędne poprzedzające wyrażenie regularne�Błędny koniec zakresu�Błędne wyrażenie regularne�Pamięć wyczerpana�Nic nie pasuje�Brak poprzedniego wyrażenia regularnego�Przedwczesny koniec wyrażenia regularnego�Wyrażenie regularne zbyt duże�Sukces�Kończący znak `\'�Nieznany błąd systemowy�Niesparowane ( lub \(�Niesparowane ) lub \)�Niesparowane [ lub [^�Niesparowane \{�pamięć wyczerpana������������������������������������������������������������������wdiff-1.2.1/lib/po/es.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005653�12116513225�012007� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������-�����.�����-���D��/���r��.�����"�����0�����0���% ��%���V ��%���| ��!��� ��&��� ��#��� ����� ��'���+ �����S �����j ����� ����� ��$��� ��(��� ��#��� ����� �����! �����: �����W �����i �����{ �� ��� ����� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-24 11:23-0500 Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx> Language-Team: Spanish <es@li.org> Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: opción inválida -- '%c' �%s: la opción '%c%s' no admite un argumento �%s: la opción '%s' es ambigua; posibilidades:�%s: la opción '--%s' no admite un argumento �%s: la opción '--%s' requiere de un argumento �%s: la opción '-W %s' no admite un argumento �%s: la opción '-W %s' es ambigua �%s: la opción '-W %s' requiere de un argumento �%s: la opción requiere de un argumento -- '%c' �%s: no se reconoce la opción '%c%s' �%s: no se reconoce la opción '--%s' �Referencia hacia atrás inválida�Nombre de clase de carácter inválido�Carácter de ordenamiento inválido�Contenido inválido de \{\}�Expresión regular precedente inválida�Fin de rango inválido�Expresión regular inválida�Memoria agotada�Sin coincidencia�No hay una expresión regular previa�Final prematuro de la expresión regular�Expresión regular demasiado grande�Éxito�Barra invertida sobrante�Error desconocido de sistema�( o \( sin pareja�) o \) sin pareja�[ o [^ sin pareja�\{ sin pareja�memoria agotada��������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ro.po����������������������������������������������������������������������������0000644�0000000�0000000�00000016676�12116513224�011662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mesajele n limba romn pentru pachetul mailutils. # Copyright (C) 2003 Free Software Foundation, Inc. # Eugen Hoanca <eugenh@urban-grafx.ro>, 2003. # msgid "" msgstr "" "Project-Id-Version: mailutils 0.4\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2003-12-10 08:55+0200\n" "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n" "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: lib/error.c:188 #, fuzzy msgid "Unknown system error" msgstr "tip de mesaj necunoscut" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: opiunea `%s' este ambigu\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opiunea `--%s' nu permite argumente\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opiunea `%c%s' nu permite argumente\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: opiunea `%s' necesit un argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opiune necunoscut `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opiune necunoscut `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: opiune invalid -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opiunea necesit un argument -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opiune `-W %s' este ambigu\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opiune `-W %s' nu permite argumente\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: opiunea `%s' necesit un argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Succes" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "Nu exist fiier anterior" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 #, fuzzy msgid "Invalid back reference" msgstr "Numr invalid" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "Tip de dat invalid" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Memorie plin" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "Nu exist fiier anterior" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "Nu exist fiier anterior" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "Nu exist fiier anterior" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "Nu exist fiier anterior" #: lib/xalloc-die.c:34 #, fuzzy msgid "memory exhausted" msgstr "Memorie plin" #, fuzzy #~ msgid "invalid argument %s for %s" #~ msgstr "nume etichet(tag) invalid `%s' pentru `%s'" #, fuzzy #~ msgid "ambiguous argument %s for %s" #~ msgstr "lipsete argumentul pentru %s" #, fuzzy #~ msgid "Valid arguments are:" #~ msgstr "argumentele if valide sunt: s | r | t" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: parametrul ARGP_HELP_FMT necesit o valoare" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Parametru ARGP_HELP_FMT necunoscut" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Gunoi(garbage) n ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumentele obligatorii sau opionale pentru opiunile lungi sunt de " #~ "asemenea obligatorii sau opionale pentru toate opiunile scurte " #~ "corespunztoare." #~ msgid "Usage:" #~ msgstr "Folosire:" #~ msgid " or: " #~ msgstr " sau: " #~ msgid " [OPTION...]" #~ msgstr " [OPIUNE...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "ncercai `%s --help' sau `%s --usage' pentru mai multe informaii.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Raportai bug-urile la %s.\n" #~ msgid "Give this help list" #~ msgstr "Afieaz aceast list de ajutor" #~ msgid "Give a short usage message" #~ msgstr "Afieaz un mesaj de folosire scurt" #~ msgid "NAME" #~ msgstr "NUME" #~ msgid "Set the program name" #~ msgstr "Seteaz numele programului" #, fuzzy #~ msgid "SECS" #~ msgstr "SECUNDE" #~ msgid "Hang for SECS seconds (default 3600)" #~ msgstr "ntrerupe(hang) pentru SECS secunde (implicit 3600)" #~ msgid "Print program version" #~ msgstr "Afieaz versiunea programului" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(EROARE DE PROGRAM) Nici o versiune cunoscut!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Prea multe argumente\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(EROARE DE PROGRAM) Opiunea ar fi trebuit recunoscut!?" #, fuzzy #~ msgid "program error" #~ msgstr "eroare de interval(range)" #, fuzzy #~ msgid "stack overflow" #~ msgstr "subrulare(underflow) a stivei(stack)" #, fuzzy #~ msgid "write error" #~ msgstr "eroare regex" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "nu se poate deschide fiierul de ieire(output) \"%s\": %s" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "eroare la cititrea din fiierul de intrare(input): %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "eroare n scrierea n mailbox: %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "fork euat" #, fuzzy #~ msgid "message queue" #~ msgstr "%d mesaj" #, fuzzy #~ msgid "Memory allocation failure" #~ msgstr "Operaiune euat" #, fuzzy #~ msgid "System error" #~ msgstr "eroare regex" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Escape necunoscut %s" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opiune ilegal -- %c\n" #, fuzzy #~ msgid "cannot change owner and/or group of %s" #~ msgstr "nu se poate trece n uid %lu: %m" #, fuzzy #~ msgid "cannot create directory %s" #~ msgstr "nu se poate crea iterator: %s" #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "nu se poate crea iterator: %s" #, fuzzy #~ msgid "cannot change permissions of %s" #~ msgstr "Permisiuni greite la %s. Setai 0600." #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "nu se poate crea mailerul \"%s\"" #, fuzzy #~ msgid "invalid user" #~ msgstr "Numr invalid" #, fuzzy #~ msgid "invalid group" #~ msgstr "Deschide grup" #, fuzzy #~ msgid "string comparison failed" #~ msgstr "Autentificare euat" ������������������������������������������������������������������wdiff-1.2.1/lib/po/ca.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001122�12116513225�011746� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v��������-��� �����8��������������������Unknown system error�memory exhausted�Project-Id-Version: mailutils 0.6.90 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2005-05-21 04:10+0200 Last-Translator: Jordi Mallach <jordi@gnu.org> Language-Team: Catalan <ca@dodds.net> Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n!=1; �S'ha produït un error desconegut del sistema�la memòria s'ha exhaurit�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ga.po����������������������������������������������������������������������������0000644�0000000�0000000�00000042036�12116513224�011616� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Irish translations for gnulib. # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Kevin Patrick Scannell <scannell@SLU.EDU>, 2005, 2007. # msgid "" msgstr "" "Project-Id-Version: gnulib 1.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2007-07-20 12:24-0600\n" "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :" "(n>6 && n<11) ? 3 : 4;\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Earrid chrais anaithnid" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: T an rogha `%s' dbhroch\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: n cheadatear argint i ndiaidh na rogha `--%s'\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: n cheadatear argint i ndiaidh na rogha `%c%s'\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: t argint de dhth i ndiaidh na rogha `%s'\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: rogha anaithnid `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: rogha anaithnid `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: rogha neamhbhail -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: t argint de dhth i ndiaidh na rogha -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: T an rogha `-W %s' dbhroch\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: n cheadatear argint i ndiaidh na rogha `-W %s'\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: t argint de dhth i ndiaidh na rogha `%s'\n" #: lib/regcomp.c:131 msgid "Success" msgstr "D'irigh leis" #: lib/regcomp.c:134 msgid "No match" msgstr "Gan mheaitseil" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Slonn ionadaochta neamhbhail" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Carachtar neamhbhail comhordaithe" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Ainm neamhbhail ar aicme charachtar" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Clslais chun deiridh" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Cltagairt neamhbhail" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ n [^ corr" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( n \\( corr" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ corr" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "bhar neamhbhail idir \\{ agus \\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Deireadh raoin neamhbhail" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Cuimhne dithe" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Is neamhbhail an slonn ionadaochta roimhe seo" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Deireadh le slonn ionadaochta gan choinne" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Slonn ionadaochta rmhr" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") n \\) corr" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Nl aon slonn ionadaochta roimhe seo" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "cuimhne dithe" #~ msgid "invalid argument %s for %s" #~ msgstr "argint neamhbhail %s chun %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argint dhbhroch %s chun %s" #~ msgid "Valid arguments are:" #~ msgstr "Na hargint bail:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: luach %s nos l n n cothrom le %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: luach de dhth ar pharaimadar ARGP_HELP_FMT" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: luach deimhneach de dhth ar pharaimadar ARGP_HELP_FMT" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Paraimadar anaithnid ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Truflais i ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Is riachtanach/roghnach le rogha ghearr aon argint at riachtanach/" #~ "roghnach leis an rogha fhada." #~ msgid "Usage:" #~ msgstr "sid:" #~ msgid " or: " #~ msgstr " n: " #~ msgid " [OPTION...]" #~ msgstr " [ROGHA...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Bain triail as `%s --help' n `%s --usage' chun tuilleadh eolais a " #~ "fhil.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Seol tuairisc fabhtanna chuig %s.\n" #~ msgid "give this help list" #~ msgstr "taispein an chabhair seo" #~ msgid "give a short usage message" #~ msgstr "tabhair teachtaireacht bheag side" #~ msgid "NAME" #~ msgstr "AINM" #~ msgid "set the program name" #~ msgstr "socraigh ainm an chlir" #~ msgid "SECS" #~ msgstr "SOIC" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "dan moill SOIC soicind (ramhshocr: 3600)" #~ msgid "print program version" #~ msgstr "taispein leagan an chlir" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(EARRID CHLIR) Leagan anaithnid!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: An iomarca argint\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(EARRID CHLIR) Ba chir an rogha a aithint!?" #~ msgid "program error" #~ msgstr "earrid chlir" #~ msgid "stack overflow" #~ msgstr "cruach thar maoil" #, fuzzy #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "n fidir comhadlann %s a chruth" #, fuzzy #~ msgid "cannot remove temporary file %s" #~ msgstr "n fidir comhadlann %s a chruth" #, fuzzy #~ msgid "cannot remove temporary directory %s" #~ msgstr "n fidir comhadlann %s a chruth" #, fuzzy #~ msgid "error closing file" #~ msgstr "earrid agus comhad \"%s\" scrobh" #~ msgid "write error" #~ msgstr "earrid sa scrobh" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "earrid agus \"%s\" oscailt chun a lamh" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "n fidir comhad cltaca \"%s\" a oscailt chun scrobh ann" #~ msgid "error reading \"%s\"" #~ msgstr "earrid agus \"%s\" lamh" #~ msgid "error writing \"%s\"" #~ msgstr "earrid agus \"%s\" scrobh" #~ msgid "error after reading \"%s\"" #~ msgstr "earrid tar is \"%s\" lamh" #~ msgid "fdopen() failed" #~ msgstr "theip ar fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Tiomsaitheoir C# gan aimsi, bain triail as pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Meaisn foril C# gan aimsi, bain triail as pnet" #~ msgid "%s subprocess failed" #~ msgstr "theip ar fhophriseas %s" #~ msgid "regular empty file" #~ msgstr "gnthchomhad folamh" #~ msgid "regular file" #~ msgstr "gnthchomhad" #~ msgid "directory" #~ msgstr "comhadlann" #~ msgid "block special file" #~ msgstr "comhad speisialta den chinel `bloc'" #~ msgid "character special file" #~ msgstr "comhad speisialta den chinel `carachtar'" # `TITA' ?! -KPS #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "nasc siombalach" #~ msgid "socket" #~ msgstr "soicad" #~ msgid "message queue" #~ msgstr "ci teachtaireachta" #~ msgid "semaphore" #~ msgstr "samafr" # FARF --KPS #~ msgid "shared memory object" #~ msgstr "comhad comhchuimhne" #~ msgid "typed memory object" #~ msgstr "comhad cuimhne le cinel" #~ msgid "weird file" #~ msgstr "comhad aisteach" #~ msgid "Address family for hostname not supported" #~ msgstr "Aicme sheolta d'stainm gan tacaocht" #~ msgid "Temporary failure in name resolution" #~ msgstr "Teip shealadach ar riteach na n-ainmneacha" #~ msgid "Bad value for ai_flags" #~ msgstr "Luach neamhbhail do 'ai_flags'" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Teip dhocheartaithe ar riteach na n-ainmneacha" #~ msgid "ai_family not supported" #~ msgstr "n thacatear le 'ai_family'" #~ msgid "Memory allocation failure" #~ msgstr "Theip ar dhil chuimhne" #~ msgid "No address associated with hostname" #~ msgstr "Nl seoladh ar bith ceangailte leis an stainm" #~ msgid "Name or service not known" #~ msgstr "Ainm n seirbhs anaithnid" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "N thacatear le hainm freastalaithe do 'ai_socktype'" #~ msgid "ai_socktype not supported" #~ msgstr "n thacatear le 'ai_socktype'" #~ msgid "System error" #~ msgstr "Earrid chrais" #~ msgid "Argument buffer too small" #~ msgstr "T an argint mhaolin rbheag" #~ msgid "Processing request in progress" #~ msgstr "Iarratas prisela ar sil" #~ msgid "Request canceled" #~ msgstr "Cealaodh an t-iarratas" #~ msgid "Request not canceled" #~ msgstr "Nor cealaodh an t-iarratas" #~ msgid "All requests done" #~ msgstr "Cuireadh gach iarratas i gcrch" #~ msgid "Interrupted by a signal" #~ msgstr "Idirbhriste ag comhartha" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Nl an teaghrn paraimadair ionchdaithe i gceart" #~ msgid "Unknown error" #~ msgstr "Earrid anaithnid" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: rogha neamhcheadaithe -- %c\n" #, fuzzy #~ msgid "%s subprocess I/O error" #~ msgstr "fophriseas %s" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argint neamhbhail \"source_version\" ar compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argint neamhbhail \"target_version\" ar compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "theip ar chruth \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "earrid agus comhad \"%s\" scrobh" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Tiomsaitheoir Java gan aimsi, bain triail as gcj, n socraigh $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Meaisn foril Java gan aimsi, bain triail as gij, n socraigh $JAVA" #~ msgid "cannot create pipe" #~ msgstr "n fidir popa a chruth" #~ msgid "unable to record current working directory" #~ msgstr "n fidir an chomhadlann oibre a thaifead" #~ msgid "failed to return to initial working directory" #~ msgstr "nl aon fhil ar an chad chomhadlann oibre" #~ msgid "cannot change permissions of %s" #~ msgstr "n fidir na ceadanna de %s a athr" #~ msgid "cannot create directory %s" #~ msgstr "n fidir comhadlann %s a chruth" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Theip ar oscailt /dev/zero chun a lamh" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # allow yes, but also 'i' as in 'is sea' or 's' for 'sea' -- KPS # neither of these letters is near the 'N' on standard keyboard... # #-#-#-#-# sh-utils-2.0.15.ga.po (sh-utils 2.0.15) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # allow yes, but also 'i' as in 'is sea' or 's' for 'sea' -- KPS # neither of these letters is near the 'N' on standard keyboard... # #-#-#-#-# textutils-2.1.ga.po (textutils 2.1) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # allow yes, but also 'i' as in 'is sea' or 's' for 'sea' -- KPS # neither of these letters is near the 'N' on standard keyboard... #~ msgid "^[yY]" #~ msgstr "^[yYiIsS]" # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # fortunately, 'n' for 'no' or 'n hea' - KPS # #-#-#-#-# sh-utils-2.0.15.ga.po (sh-utils 2.0.15) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # fortunately, 'n' for 'no' or 'n hea' - KPS # #-#-#-#-# textutils-2.1.ga.po (textutils 2.1) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # fortunately, 'n' for 'no' or 'n hea' - KPS #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "n fidir an fheidhm iconv a sid" #~ msgid "iconv function not available" #~ msgstr "nl an fheidhm iconv ar fil" #~ msgid "character out of range" #~ msgstr "carachtar as raon" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "n fidir U+%04X a thiont chuig an fhoireann carachtar lognta" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "n fidir U+%04X a thiont chuig an fhoireann carachtar lognta: %s" #~ msgid "invalid user" #~ msgstr "sideoir neamhbhail" #~ msgid "invalid group" #~ msgstr "grpa neamhbhail" #~ msgid "invalid spec" #~ msgstr "sonr neamhbhail" #, fuzzy #~ msgid "preserving permissions for %s" #~ msgstr "n fidir na ceadanna de %s a athr" #~ msgid "string comparison failed" #~ msgstr "theip ar chomparid idir teaghrin" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Cuir LC_ALL='C' ionas gur fidir an fhadhb seo a sheachaint." #~ msgid "The strings compared were %s and %s." #~ msgstr "Rinneadh comparid idir na teaghrin %s agus %s." #~ msgid "(C)" #~ msgstr "" #, fuzzy #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Ceadnas GPLv3+: GNU GPL leagan 3 n nos nua <http://gnu.org/licenses/" #~ "gpl.html>\n" #~ "Is saorbhogearra seo: ceadatear duit a athr agus a athdhileadh.\n" #~ "Nl barnta AR BITH ann, an oiread at ceadaithe de rir dl.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Le %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Le %s agus %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Le %s, %s, agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "%s, agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "%s, %s, agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "%s, %s, %s, agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, agus %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Le %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, agus daoine eile nach iad.\n" #, fuzzy #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "Seol tuairisc fabhtanna chuig %s.\n" #, fuzzy #~ msgid "invalid %s%s argument `%s'" #~ msgstr "argint neamhbhail %s chun %s" #, fuzzy #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "argint neamhbhail %s chun %s" #, fuzzy #~ msgid "setting permissions for %s" #~ msgstr "n fidir na ceadanna de %s a athr" #~ msgid "%s subprocess" #~ msgstr "fophriseas %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "fuair fophriseas %s comhartha marfach %d" #~ msgid "block size" #~ msgstr "mid bloc" #~ msgid "%s exists but is not a directory" #~ msgstr "T %s ann cheana, ach n comhadlann " #~ msgid "cannot change owner and/or group of %s" #~ msgstr "n fidir an t-inir agus/n an grpa de %s a athr" #~ msgid "cannot chdir to directory %s" #~ msgstr "n fidir chdir a dhanamh go dt an chomhadlann %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "nl aon fhil ar an ghrpa don UID uimhriil seo" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Is saorbhogearra seo. Is fidir leat cipeanna a scaipeadh de rir na\n" #~ "gcoinnollacha den GNU General Public License\n" #~ "<http://www.gnu.org/licenses/gpl.html>.\n" #~ "Nl barnta AR BITH ann, an oiread at ceadaithe de rir dl.\n" #~ "\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/quot.sed�������������������������������������������������������������������������0000644�0000000�0000000�00000000231�11744500575�012356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/it.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005730�12116513225�012010� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������.�����.�����.���D��+���s��/�����!�����,�����*��� ��$���I ��$���n ��#��� ��$��� ��"��� ����� ��*��� �����G �����g ����� ����� ��'��� ��(��� ��"���� �����# �����, �����= �����[ �����w ����� ����� ����� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib-3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-22 21:58+0200 Last-Translator: Milo Casagrande <milo@casagrande.name> Language-Team: Italian <tp@lists.linux.it> Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: opzione non valida -- %c �%s: l'opzione "%c%s" non accetta un argomento �%s: l'opzione "%s" è ambigua. Possibilità:�%s: l'opzione "--%s" non accetta un argomento �%s: l'opzione "--%s" richiede un argomento �%s: l'opzione "-W %s" non accetta un argomento �%s: l'opzione "-W %s" è ambigua �%s: l'opzione "-W %s" richiede un argomento �%s: l'opzione richiede un argomento -- %c �%s: opzione "%c%s" non riconosciuta �%s: opzione "--%s" non riconosciuta �Riferimento all'indietro non valido�Nome classe del carattere non valida�Carattere di collazione non valido�Contenuto di \{\} non valido�Espressione regolare precedente non valida�Fine dell'intervallo non valida�Espressione regolare non valida�Memoria esaurita�Nessuna corrispondenza�Nessuna espressione regolare precedente�Fine prematura dell'espressione regolare�Espressione regolare troppo grande�Successo�Backslash finale�Errore di sistema sconosciuto�( o \( senza corrispondenza�) o \) senza corrispondenza�[ o [^ senza corrispondenza�\{ senza corrispondenza�memoria esaurita�����������������������������������������wdiff-1.2.1/lib/po/vi.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000006545�12116513225�012017� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��.���D��8���s��6�����8�����4��� ��9���Q ��+��� ��5��� ��9��� ��,���' ��,���T ��'��� ��&��� ��)��� ��)��� ��7���$ ��'���\ ��*��� ����� �� ��� ��0��� ��/��� ��#���; �� ���_ �����l ����� ��*��� ��*��� ��*��� �����) �����H �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib-3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-03-30 14:47+0700 Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com> Language-Team: Vietnamese <vi-VN@googlegroups.com> Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: LocFactoryEditor 1.8 X-Poedit-Language: Vietnamese X-Poedit-Country: VIET NAM X-Poedit-SourceCharset: utf-8 �%s: tùy chọn không hợp lệ -- « %c » �%s: tùy chọn « %c%s » không cho phép đối số �%s: tùy chọn '%s' chưa rõ ràng; khả năng là:�%s: tùy chọn « --%s » không cho phép đối số �%s: tùy chọn '--%s' yêu cầu một đối số �%s: tùy chọn « -W %s » không cho phép đối số �%s: tùy chọn « -W %s » vẫn mơ hồ �%s: tùy chọn '-W %s' yêu cầu một đối số �%s: tùy chọn yêu cầu một đối số -- « %c » �%s: không nhận ra tùy chọn « %c%s » �%s: không nhận ra tùy chọn « --%s » �Tham chiếu ngược không hợp lệ�Tên loại ký tự không hợp lệ�Ký tự đối chiếu không hợp lệ�Nội dụng « \{\} » không hợp lệ�Biểu thức chính quy đi trước không hợp lệ�Kết thúc phạm vi không hợp lệ�Biểu thức chính quy không hợp lệ�Hết bộ nhớ hoàn toàn�Không khớp�Không có biểu thức chính quy đi trước�Biểu thức chính quy kết thúc quá sớm�Biểu thức chính quy quá lớn�Thành công�Có xuyệc ngược theo sau�Gặp lỗi hệ thống lạ�Chưa khớp ký tự « ( » hay « \( »�Chưa khớp ký tự « ) » hay « \) »�Chưa khớp ký tự « [ » hay « [^ »�Chưa khớp ký tự « \{ »�hết bộ nhớ hoàn toàn������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/sv.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005452�12116513225�012025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�������*�����0�����*���A��,���l��'�����!�����-�����)��� �����; �����U �����o ����� ����� ����� ��)��� ����� ����� �� ���1 �� ���= ��%���J ��#���p ����� ����� ����� ����� ����� ����� ����� �� ��� �� ��� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-08-22 19:16+0200 Last-Translator: Göran Uddeborg <goeran@uddeborg.se> Language-Team: Swedish <tp-sv@listor.tp-sv.se> Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: ogiltig flagga -- "%c" �%s: flaggan ”%c%s” tar inget argument �%s: flaggan ”%s” är tvetydig: möjligheter:�%s: flaggan ”--%s” tar inget argument �%s: flaggan ”--%s” kräver ett argument �%s: flaggan "-W %s" tar inget argument �%s: flaggan "-W %s" är tvetydig �%s: flaggan ”-W %s” kräver ett argument �%s: flaggan kräver ett argument -- "%c" �%s: okänd flagga "%c%s" �%s: okänd flagga "--%s" �Ogiltig bakåtreferens�Ogiltigt teckenklassnamn�Ogiltigt sorteringstecken�Ogiltigt innehåll i \{\}�Felaktigt föregående reguljärt uttryck�Ogiltigt intervallslut�Felaktigt reguljärt uttryck�Minnet slut�Ingen träff�Inget föregående reguljärt uttryck�Förtida slut av reguljärt uttryck�För stort reguljärt uttryck�Lyckades�Avslutande bakstreck�Okänt systemfel�Ensam ( eller \(�Ensam ) eller \)�Ensam [ eller [^�Ensam \\{�minnet slut�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/Makefile.in.in�������������������������������������������������������������������0000644�0000000�0000000�00000040044�12116370307�013341� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu> # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.18 GETTEXT_MACRO_VERSION = 0.18 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # Define $(MKDIR_P). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. # Gnulib provides a backport of autoconf 2.60's AC_PROG_MKDIR_P, # with a fix from autoconf 2.62 for interoperability with automake 1.9.6, # so use $(MKDIR_P) in the rest of this makefile. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. CHECK_MACRO_VERSION = \ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot @$(CHECK_MACRO_VERSION) test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(MKDIR_P) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(MKDIR_P) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install install-dvi install-html install-info install-pdf install-ps: installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(MKDIR_P) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(MKDIR_P) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo 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 stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$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; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # 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: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ja.po����������������������������������������������������������������������������0000644�0000000�0000000�00000056243�12116513224�011626� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Japanese gnulib messages # Copyright (C) 2000, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 2002. # GOTO Masanori <gotom@debian.or.jp>, 2006. # derived from the version by Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp> 1998. # Jun Nishii <jun@flatout.org> 1999. # Daisuke Yamashita <yamad@mb.infoweb.ne.jp> 1999. # Yasuaki Taniguchi <yasuakit@gmail.com>, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-09-02 18:39+0900\n" "Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "不明なシステムエラー" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: オプション '%s' は曖昧です:次のものが可能です:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: オプション '--%s' は引数を取ることができません\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: オプション '%c%s' は引数を取ることができません\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: オプション '--%s' は引数が必要です\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: オプション '--%s' を認識できません\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: オプション '%c%s' を認識できません\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: 無効なオプション -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: オプションには引数が必要です -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: オプション '-W %s' は曖昧です\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: オプション '-W %s' は引数を取ることができません\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: オプション '-W %s' は引数が必要です\n" #: lib/regcomp.c:131 msgid "Success" msgstr "成功です" #: lib/regcomp.c:134 msgid "No match" msgstr "一致しません" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "無効な正規表現です" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "無効な照合文字です" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "無効な文字クラス名です" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "終端のバックスラッシュ" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "無効な前方参照です" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ または [^ が不一致です" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( または \\( が不一致です" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ が不一致です" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "\\{\\} の中身が無効です" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "無効な範囲終了です" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "メモリを使い果たしました" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "無効な前方正規表現です" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "正規表現が途中で終了しました" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "正規表現が大きすぎます" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") または \\) が不一致です" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "以前に正規表現がありません" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "メモリを使い果たしました" #~ msgid "invalid argument %s for %s" #~ msgstr "%2$s に対する引数 %1$s が間違っています" #~ msgid "ambiguous argument %s for %s" #~ msgstr "%2$s に対する引数 %1$s が曖昧です" #~ msgid "Valid arguments are:" #~ msgstr "有効な引数:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s の値は %s の値以下です" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT パラメータには値が必要です" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT パラメータは正の値でなければいけません" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: 不明な ARGP_HELP_FMT パラメータ" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "ARGP_HELP_FMT 中にごみがあります: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "長い形式のオプションで必須または任意の引数は、それに対応する短い形式のオプ" #~ "ションでも同様に必須または任意です。" #~ msgid "Usage:" #~ msgstr "使用法:" #~ msgid " or: " #~ msgstr "または: " #~ msgid " [OPTION...]" #~ msgstr " [OPTION...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "詳細は `%s --help' または `%s --usage' を実行して下さい。\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "バグを発見したら <%s> に報告して下さい。\n" #~ "翻訳に関するバグは<translation-team-ja@lists.sourceforge.net>に報告してく" #~ "ださい。\n" #~ msgid "give this help list" #~ msgstr "このヘルプを表示する" #~ msgid "give a short usage message" #~ msgstr "短い使用方法を表示する" #~ msgid "NAME" #~ msgstr "名前" #~ msgid "set the program name" #~ msgstr "プログラム名を設定する" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "SECS 秒でハング (デフォルト 3600)" #~ msgid "print program version" #~ msgstr "プログラムのバージョンを表示する" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(プログラムエラー) 不明なバージョン!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: 引数が多すぎます\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(プログラムエラー) オプションは認識されているべきです!?" #~ msgid "program error" #~ msgstr "プログラムエラー" #~ msgid "stack overflow" #~ msgstr "スタックオーバーフロー" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "一時ディレクトリを作成できません。 $TMPDIR を設定してみてください" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "テンプレート \"%s\" を使用した一時ディレクトリを作成できません" #~ msgid "cannot remove temporary file %s" #~ msgstr "一時ファイル %s を削除できません" #~ msgid "cannot remove temporary directory %s" #~ msgstr "一時ディレクトリ %s を削除できません" #~ msgid "error closing file" #~ msgstr "ファイルクローズエラー" #~ msgid "write error" #~ msgstr "書き込みエラー" #~ msgid "preserving permissions for %s" #~ msgstr "%s のパーミッションを保存しています" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "\"%s\"を読込むため開いている際にエラーが発生しました" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "書込み用バックアップファイル\"%s\"を開くことができません" #~ msgid "error reading \"%s\"" #~ msgstr "\"%s\"の読込み中にエラーが発生しました" #~ msgid "error writing \"%s\"" #~ msgstr "\"%s\"の書込み中にエラーが発生しました" #~ msgid "error after reading \"%s\"" #~ msgstr "\"%s\"の読込み後にエラーが発生しました" #~ msgid "fdopen() failed" #~ msgstr "fdopen()に失敗しました" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C# コンパイラが見つりません。pnet をインストールしてみてください" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "C# 仮想マシンが見つかりません。pnet をインストールしてみてください" #~ msgid "%s subprocess failed" #~ msgstr "%s サブプロセスが失敗しました" #~ msgid "regular empty file" #~ msgstr "通常の空ファイル" #~ msgid "regular file" #~ msgstr "通常ファイル" #~ msgid "directory" #~ msgstr "ディレクトリ" #~ msgid "block special file" #~ msgstr "ブロックスペシャルファイル" #~ msgid "character special file" #~ msgstr "キャラクタスペシャルファイル" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "シンボリックリンク" #~ msgid "socket" #~ msgstr "ソケット" #~ msgid "message queue" #~ msgstr "メッセージキュー" #~ msgid "semaphore" #~ msgstr "セマフォ" #~ msgid "shared memory object" #~ msgstr "共有メモリオブジェクト" #~ msgid "typed memory object" #~ msgstr "型付メモリオブジェクト" #~ msgid "weird file" #~ msgstr "不明なファイル" #~ msgid "Address family for hostname not supported" #~ msgstr "ホスト名に対する Address family がサポートされていません" #~ msgid "Temporary failure in name resolution" #~ msgstr "名前解決に一時的に失敗しました" #~ msgid "Bad value for ai_flags" #~ msgstr "ai_flags に対する誤った値です" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "名前解決でリカバリできない失敗が発生しました" #~ msgid "ai_family not supported" #~ msgstr "ai_family はサポートされていません" #~ msgid "Memory allocation failure" #~ msgstr "メモリ配置に失敗しました" #~ msgid "No address associated with hostname" #~ msgstr "ホスト名にアドレスが割り当てられていません" #~ msgid "Name or service not known" #~ msgstr "名前またはサービスが不明です" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype に対して Servname がサポートされていません" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype はサポートされていません" #~ msgid "System error" #~ msgstr "システムエラー" #~ msgid "Argument buffer too small" #~ msgstr "引数バッファが小さすぎます" #~ msgid "Processing request in progress" #~ msgstr "要求された処理は実行中です" #~ msgid "Request canceled" #~ msgstr "要求がキャンセルされました" #~ msgid "Request not canceled" #~ msgstr "要求がキャンセルされませんでした" #~ msgid "All requests done" #~ msgstr "すべての要求が完了しました" #~ msgid "Interrupted by a signal" #~ msgstr "シグナル割り込みが発生しました" #~ msgid "Parameter string not correctly encoded" #~ msgstr "パラメーター文字列が正しくエンコードされていません" #~ msgid "Unknown error" #~ msgstr "不明なエラー" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "compile_java_class への source_version 引数が無効です" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "compile_java_class への target_version 引数が無効です" #~ msgid "failed to create \"%s\"" #~ msgstr "\"%s\" の作成に失敗しました" #~ msgid "error while writing \"%s\" file" #~ msgstr "\"%s\" ファイルの書き込み中にエラーが発生しました" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Java コンパイラが見つかりません。 gcj をインストールするか、または $JAVAC " #~ "を設定してみてください" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Java 仮想マシンが見つかりません。 gij をインストールするか、または $JAVA " #~ "を設定してみてください" #~ msgid "%s subprocess I/O error" #~ msgstr "%s サブプロセス I/O エラー" #~ msgid "cannot change permissions of %s" #~ msgstr "%s のパーミッションを変更できません" #~ msgid "cannot create directory %s" #~ msgstr "ディレクトリ %s を作成できません" #~ msgid "unable to record current working directory" #~ msgstr "現在の作業ディレクトリを記録することができません" #~ msgid "failed to return to initial working directory" #~ msgstr "初期作業ディレクトリに戻るのに失敗しました" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "/dev/zeroを読込み用に開けません" #~ msgid "creation of reading thread failed" #~ msgstr "読み込みスレッドの作成に失敗しました" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "%s 子プロセスへ非ブロック I/O を設定できません" #~ msgid "communication with %s subprocess failed" #~ msgstr "%s 子プロセスとの通信に失敗しました" #~ msgid "write to %s subprocess failed" #~ msgstr "%s 子プロセスへの書き込みに失敗しました" #~ msgid "read from %s subprocess failed" #~ msgstr "%s 子プロセスからの読み込みに失敗しました" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "子プロセス %s が終了コード %d で終了しました" #~ msgid "creation of threads failed" #~ msgstr "スレッドの作成に失敗しました" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s 子プロセスが終了コード %d で終了しました" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "%s のパーミッションを設定します" #~ msgid "Hangup" #~ msgstr "Hangup" #~ msgid "Interrupt" #~ msgstr "割り込み" #~ msgid "Quit" #~ msgstr "終了" #~ msgid "Illegal instruction" #~ msgstr "Illegal instruction" #~ msgid "Trace/breakpoint trap" #~ msgstr "Trace/breakpoint trap" #~ msgid "Aborted" #~ msgstr "中止" #~ msgid "Floating point exception" #~ msgstr "浮動小数点例外" #~ msgid "Killed" #~ msgstr "強制終了" #~ msgid "Bus error" #~ msgstr "バスエラー" #~ msgid "Segmentation fault" #~ msgstr "Segmentation fault" #~ msgid "Broken pipe" #~ msgstr "Broken pipe" #~ msgid "Alarm clock" #~ msgstr "Alarm clock" #~ msgid "Terminated" #~ msgstr "Terminated" #~ msgid "Urgent I/O condition" #~ msgstr "緊急 I/O 状態" #~ msgid "Stopped (signal)" #~ msgstr "停止 (シグナル)" #~ msgid "Stopped" #~ msgstr "停止" #~ msgid "Continued" #~ msgstr "継続" #~ msgid "Child exited" #~ msgstr "子プロセス終了" #~ msgid "Stopped (tty input)" #~ msgstr "停止 (tty 入力)" #~ msgid "Stopped (tty output)" #~ msgstr "停止 (tty 出力)" #~ msgid "I/O possible" #~ msgstr "I/O 可能" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU時間制限を超過しました" #~ msgid "File size limit exceeded" #~ msgstr "ファイルサイズ制限を超過しました" #~ msgid "Virtual timer expired" #~ msgstr "仮想タイマーが終了しました" #~ msgid "Profiling timer expired" #~ msgstr "プロファイリングタイマーが終了しました" #~ msgid "Window changed" #~ msgstr "Window が変更されました" #~ msgid "User defined signal 1" #~ msgstr "ユーザー定義シグナル1" #~ msgid "User defined signal 2" #~ msgstr "ユーザー定義シグナル2" #~ msgid "EMT trap" #~ msgstr "EMT トラップ" #~ msgid "Bad system call" #~ msgstr "間違ったシステムコール" #~ msgid "Stack fault" #~ msgstr "スタックエラー" #~ msgid "Information request" #~ msgstr "情報要求" #~ msgid "Power failure" #~ msgstr "電源エラー" #~ msgid "Resource lost" #~ msgstr "リソースが無くなりました" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "閉じたパイプまたはソケットへの書き込みでエラーが発生しました" #~ msgid "cannot create pipe" #~ msgstr "パイプを作成できません" #~ msgid "Real-time signal %d" #~ msgstr "リアルタイムシグナル %d" #~ msgid "Unknown signal %d" #~ msgstr "不明なシグナル %d" #~ msgid "iconv function not usable" #~ msgstr "iconv 関数が使えません" #~ msgid "iconv function not available" #~ msgstr "iconv 関数が有効ではありません" #~ msgid "character out of range" #~ msgstr "範囲外の文字" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X をローカル文字セットに変換できません" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X をローカル文字セットに変換できません: %s " #~ msgid "invalid user" #~ msgstr "無効なユーザ" #~ msgid "invalid group" #~ msgstr "無効なグループ" #~ msgid "invalid spec" #~ msgstr "無効な指定" #~ msgid "unable to display error message" #~ msgstr "エラーメッセージを表示できません" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "パッケージ作成者: %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "パッケージ作成者: %s\n" #~ msgid "(C)" #~ msgstr "(C)" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "ライセンス GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/" #~ "gpl.html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "作者 %s。\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "作者 %s および %s。\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "作者 %s、 %s、および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "%s、および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "%s、 %s、および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "%s、 %s、 %s、および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "%s、 %s、 %s、 %s、\n" #~ "および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "%s、 %s、 %s、 %s、\n" #~ "%s、および %s。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "作者 %s、 %s、 %s、\n" #~ "%s、 %s、 %s、 %s、\n" #~ "%s、 %s、 および他の方々。\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "バグを発見したら <%s> に報告して下さい。\n" #~ "翻訳に関するバグは<translation-team-ja@lists.sourceforge.net>に報告してく" #~ "ださい。\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "%s のバグは <%s> に報告してください。\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s のホームページ: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s のホームページ: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/" #~ ">\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle に失敗しました" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ファイル記述子 (fd) %d をリストアできません: dup2 に失敗しました" #~ msgid "%s subprocess" #~ msgstr "%s 子プロセス" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s 子プロセスが致命的なシグナル %d を受信しました" #~ msgid "stdin" #~ msgstr "標準入力" #~ msgid "stdout" #~ msgstr "標準出力" #~ msgid "stderr" #~ msgstr "標準エラー出力" #~ msgid "unknown stream" #~ msgstr "不明なストリーム" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "%s をモード %s で再度開くことに失敗しました" #~ msgid "string comparison failed" #~ msgstr "文字列の比較に失敗しました" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "問題を回避するために LC_ALL='C' を指定してください." #~ msgid "The strings compared were %s and %s." #~ msgstr "比較した文字列は %s と %s です." #~ msgid "cannot perform formatted output" #~ msgstr "書式設定を行った出力を実行することができません" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "引数 `%3$s' に対して %1$s%2$s が無効です" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "引数 `%3$s' に対して無効な接尾辞 %1$s%2$s です" #~ msgid "%s%s argument `%s' too large" #~ msgstr "引数 `%3$s' に対する %1$s%2$s が大きすぎます" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: 不正なオプション -- %c\n" #~ msgid "block size" #~ msgstr "ブロックサイズ" #~ msgid "%s exists but is not a directory" #~ msgstr "%s は存在しますがディレクトリではありません" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "%s のオーナーとグループを変更できません" #~ msgid "cannot chdir to directory %s" #~ msgstr "ディレクトリ %s に移動できません" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "数字のUIDのログイングループを取得できません" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "本プログラムはフリーソフトウェアです. GNU一般公有使用許諾\n" #~ "<http://www.gnu.org/licenses/gpl.html> で定められた条項の下で本プログラ\n" #~ "ムのコピーを再配布できます. 適切な法が認る限りにおいて全くの無保証です.\n" #~ "\n" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/be.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001314�12116513225�011754� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v��������4���w�������������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.0.91 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2003-10-30 01:10+0200 Last-Translator: Ales Nyakhaychyk <nab@mail.by> Language-Team: Belarusian <i18n@mova.org> Language: be MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: KBabel 1.0.2 �Невядомая сыстэмная памылка�памяць вычарпана���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/uk.po����������������������������������������������������������������������������0000644�0000000�0000000�00000057465�12116513224�011662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Ukrainian messages for gnulib # This file is distributed under the same license as the gnulib package. # Copyright (C) 2010 Free Software Foundation, Inc. # # Sergey Poznyakoff <gray@gnu.org>, 2010. # Yuri Chornoivan <yurchor@ukr.net>, 2011. msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-22 09:50+0300\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n" "Language: uk\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" "X-Generator: Lokalize 1.1\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Невідома системна помилка" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: параметр «%s» є неоднозначним, можливі варіанти:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: параметр '--%s' не може мати аргументу\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: параметр '%c%s' не може мати аргументу\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: для використання параметра «--%s» слід вказати аргумент\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: невідомий параметр '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: невідомий параметр '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: Некоректний параметр -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: параметр вимагає аргументу -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: параметр '-W %s' неоднозначний\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: параметр '-W %s' не може мати аргументу\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: для використання параметра «-W %s» слід вказати аргумент\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Успіх" #: lib/regcomp.c:134 msgid "No match" msgstr "Брак збігів" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Некоректний формальний вираз" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Некоректний об'єднувальний символ" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Некоректна назва класу символів" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Зворотна похила риска наприкінці виразу" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Недійсне зворотнє посилання" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Незакрита [ або [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Незакрита ( або \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Незакрита \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Некоректний вміст \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Некоректний кінець діапазону" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Пам'ять вичерпана" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Некоректний попередній формальний вираз" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Передчасне закінчення формального виразу" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Завеликий формальний вираз" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Неузгоджена ) або \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Не вказано попереднього формального виразу" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "пам'ять вичерпано" #~ msgid "invalid argument %s for %s" #~ msgstr "некоректний аргумент %s для %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "неоднозначний аргумент %s для %s" #~ msgid "Valid arguments are:" #~ msgstr "Дозволені аргументи такі:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: значення %s є менше ніж або дорівнює %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: параметр ARGP_HELP_FMT вимагає значення" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Невідомий параметр ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Хибні дані в ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Аргументи, обов'язкові для довгих ключів, є обов'язковими й для коротких." #~ msgid "Usage:" #~ msgstr "Використання:" #~ msgid " or: " #~ msgstr " чи: " #~ msgid " [OPTION...]" #~ msgstr " [ПАРАМЕТР...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Спробуйте `%s --help' або `%s --usage' для отримання докладнішого опису.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Про помилки звітуйте на <%s>.\n" #~ msgid "give this help list" #~ msgstr "вивести цю довідку" #~ msgid "give a short usage message" #~ msgstr "вивести коротке повідомлення про використання" #~ msgid "NAME" #~ msgstr "НАЗВА" #~ msgid "set the program name" #~ msgstr "встановити назву програми" #~ msgid "SECS" #~ msgstr "СЕКУНДИ" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "зачекати вказану кількість секунд (типово 3600)" #~ msgid "print program version" #~ msgstr "вивести версію програми" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Невідома версія!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: забагато аргументів\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Параметр мала бути розпізнана!?" #~ msgid "program error" #~ msgstr "помилка програми" #~ msgid "stack overflow" #~ msgstr "переповнення стосу" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "не вдається знайти тимчасовий каталог, спробуйте встановити $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "не вдається створити тимчасовий каталог використовуючи шаблон \"%s\"" #~ msgid "cannot remove temporary file %s" #~ msgstr "не вдається усунути тимчасовий файл %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "не вдається усунути тимчасовий каталог %s" #~ msgid "error closing file" #~ msgstr "помилка закриття файлу" #~ msgid "write error" #~ msgstr "помилка запису" #~ msgid "preserving permissions for %s" #~ msgstr "збереження прав доступу до %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "помилка під час відкриття \"%s\" для читання" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "неможливо відкрити резервний файл \"%s\" для запису" #~ msgid "error reading \"%s\"" #~ msgstr "помилка читання \"%s\"" #~ msgid "error writing \"%s\"" #~ msgstr "помилка запису \"%s\"" #~ msgid "error after reading \"%s\"" #~ msgstr "помилка після читання \"%s\"" #~ msgid "fdopen() failed" #~ msgstr "помилка fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "не знайдено компілятора C#, спробуйте встановити pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "не знайдено віртуальної машини C#, спробуйте встановити pnet" #~ msgid "%s subprocess failed" #~ msgstr "нащадок %s зазнав невдачі" #~ msgid "regular empty file" #~ msgstr "звичайний порожній файл" #~ msgid "regular file" #~ msgstr "звичайний файл" #~ msgid "directory" #~ msgstr "каталог" #~ msgid "block special file" #~ msgstr "спеціальний блоковий файл" #~ msgid "character special file" #~ msgstr "спеціальний символьний файл" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "символьне посилання" #~ msgid "socket" #~ msgstr "гніздо" #~ msgid "message queue" #~ msgstr "черга повідомлень" #~ msgid "semaphore" #~ msgstr "семафор" #~ msgid "shared memory object" #~ msgstr "спільний об'єкт пам'яті" #~ msgid "typed memory object" #~ msgstr "типізований об'єкт пам'яті" #~ msgid "weird file" #~ msgstr "дивний файл" #~ msgid "Address family for hostname not supported" #~ msgstr "Родина адрес для назви вузла не підтримується" #~ msgid "Temporary failure in name resolution" #~ msgstr "Тимчасова помилка розв'язування назви вузла" #~ msgid "Bad value for ai_flags" #~ msgstr "Недійсне значення ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Невиправна помилка розв'язування назви вузла" #~ msgid "ai_family not supported" #~ msgstr "ai_family не підтримується" #~ msgid "Memory allocation failure" #~ msgstr "Помилка розподілу пам'яті" #~ msgid "No address associated with hostname" #~ msgstr "З цією назвою вузла не пов’язано жодної адреси" #~ msgid "Name or service not known" #~ msgstr "Невідоме ім'я або служба" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Підтримки назв служб у ai_socktype не передбачено" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype не підтримується" #~ msgid "System error" #~ msgstr "Системна помилка" #~ msgid "Argument buffer too small" #~ msgstr "Замалий буфер для аргументів" #~ msgid "Processing request in progress" #~ msgstr "Виконується обробка запиту" #~ msgid "Request canceled" #~ msgstr "Запит скасовано" #~ msgid "Request not canceled" #~ msgstr "Запит не скасовано" #~ msgid "All requests done" #~ msgstr "Всі запити оброблено" #~ msgid "Interrupted by a signal" #~ msgstr "Переривання сигналом" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Неправильно закодований рядок параметра" #~ msgid "Unknown error" #~ msgstr "Невідома помилка" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "недійсне значення аргументу source_version для compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "недійсне значення аргументу target_version для compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "не вдалося створити \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "помилка запису у файл \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Не знайдено компілятора java, спробуйте встановити gcj або задати " #~ "значення $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Не знайдено віртуальної машини java, спробуйте встановити gij або задати " #~ "значення $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "помилка вводу-виводу нащадка %s" #~ msgid "cannot change permissions of %s" #~ msgstr "не вдається змінити права доступу до %s" #~ msgid "cannot create directory %s" #~ msgstr "не вдається створити каталог %s" #~ msgid "unable to record current working directory" #~ msgstr "не вдається змінити поточний каталог" #~ msgid "failed to return to initial working directory" #~ msgstr "не вдається зберегти поточний каталог" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Не вдалося відкрити /dev/zero для читання" #~ msgid "creation of reading thread failed" #~ msgstr "не вдалося створити потік читання" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "не вдається встановити неблокуючий ввід-вивід з підпроцесом %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "помилка зв'язку з підпроцесом %s" #~ msgid "write to %s subprocess failed" #~ msgstr "помилка запису у підпроцес %s" #~ msgid "read from %s subprocess failed" #~ msgstr "помилка читання з підпроцесу %s" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "підпроцес %s закінчився кодом %d" #~ msgid "creation of threads failed" #~ msgstr "помилка створення потоків" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "підпроцес %s закінчився кодом %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yYтТ]" #~ msgid "^[nN]" #~ msgstr "^[nNнН]" #~ msgid "setting permissions for %s" #~ msgstr "встановлення прав доступу до %s" #~ msgid "Hangup" #~ msgstr "Відбій" #~ msgid "Interrupt" #~ msgstr "Переривання" #~ msgid "Quit" #~ msgstr "Закінчення" #~ msgid "Illegal instruction" #~ msgstr "Недійсна інструкція" #~ msgid "Trace/breakpoint trap" #~ msgstr "Перехоплення трасування/контрольної точки" #~ msgid "Aborted" #~ msgstr "Аварійне завершення" #~ msgid "Floating point exception" #~ msgstr "Виняток операції з рухомою крапкою" #~ msgid "Killed" #~ msgstr "Знищено" #~ msgid "Bus error" #~ msgstr "Помилка шини" #~ msgid "Segmentation fault" #~ msgstr "Помилка сегментації" #~ msgid "Broken pipe" #~ msgstr "Розімкнений конвеєр" #~ msgid "Alarm clock" #~ msgstr "Таймер" #~ msgid "Terminated" #~ msgstr "Закінчено" #~ msgid "Urgent I/O condition" #~ msgstr "Екстрена ситуація вводу-виводу" #~ msgid "Stopped (signal)" #~ msgstr "Припинення (сигнал)" #~ msgid "Stopped" #~ msgstr "Припинення" #~ msgid "Continued" #~ msgstr "Продовження" #~ msgid "Child exited" #~ msgstr "Нащадок завершився" #~ msgid "Stopped (tty input)" #~ msgstr "Припинення (ввід з консолі)" #~ msgid "Stopped (tty output)" #~ msgstr "Припинення (вивід на консоль)" #~ msgid "I/O possible" #~ msgstr "Можливий ввід-вивід" #~ msgid "CPU time limit exceeded" #~ msgstr "Перевищення ліміту часу ЦП" #~ msgid "File size limit exceeded" #~ msgstr "Перевищення ліміту розміру файлів" #~ msgid "Virtual timer expired" #~ msgstr "Відлік віртуального таймера завершено" #~ msgid "Profiling timer expired" #~ msgstr "Відлік таймера профілювання завершено" #~ msgid "Window changed" #~ msgstr "Вікно змінилося" #~ msgid "User defined signal 1" #~ msgstr "Визначений користувачем сигнал 1" #~ msgid "User defined signal 2" #~ msgstr "Визначений користувачем сигнал 2" #~ msgid "EMT trap" #~ msgstr "Пастка EMT" #~ msgid "Bad system call" #~ msgstr "Некоректний системний виклик" #~ msgid "Stack fault" #~ msgstr "Збій стосу" #~ msgid "Information request" #~ msgstr "Запит інформації" #~ msgid "Power failure" #~ msgstr "Аварія живлення" #~ msgid "Resource lost" #~ msgstr "Втрата засобу" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "помилка запису у закритий конвеєр або гніздо" #~ msgid "cannot create pipe" #~ msgstr "не вдається створити конвеєр" #~ msgid "Real-time signal %d" #~ msgstr "Сигнал реального часу %d" #~ msgid "Unknown signal %d" #~ msgstr "Невідомий сигнал %d" #~ msgid "iconv function not usable" #~ msgstr "функція iconv непридатна до вжитку" #~ msgid "iconv function not available" #~ msgstr "функція iconv недоступна" #~ msgid "character out of range" #~ msgstr "символ поза діапазоном" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "не вдається передати U+%04X у локальному зборі знаків" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "не вдається передати U+%04X у локальному зборі знаків: %s" #~ msgid "invalid user" #~ msgstr "Некоректний користувач" #~ msgid "invalid group" #~ msgstr "недійсна група" #~ msgid "invalid spec" #~ msgstr "недійсна специфікація" #~ msgid "unable to display error message" #~ msgstr "не вдається вивести повідомлення про помилку" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Пакет створив %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Пакет створив %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Ліцензія GPLv3+: GNU GPL версії 3 або пізнішої <http://gnu.org/licenses/" #~ "gpl.html>\n" #~ "Це вільне програмне забезпечення: ви можете змінювати та розповсюджувати " #~ "його.\n" #~ "Не надається ЖОДНИХ ГАРАНТІЙ в межах дозволених законодавством.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Автор: %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Автори: %s та %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Автори: %s, %s та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "%s, та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "%s, %s та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "%s, %s, %s та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "%s, %s, %s, %s та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "%s, %s, %s, %s,\n" #~ "%s та %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Автори: %s, %s, %s\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s та інші.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Про помилки звітуйте на %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Про помилки у програмі %s звітуйте на %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "домашня сторінка %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "домашня сторінка %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Загальна допомога щодо використання ПО GNU: <http://www.gnu.org/gethelp/" #~ ">\n" #~ msgid "_open_osfhandle failed" #~ msgstr "помилка _open_osfhandle" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "не вдається відновити дескриптор %d: помилка dup2" #~ msgid "%s subprocess" #~ msgstr "нащадок процесу %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "підпроцес %s отримав фатальний сигнал %d" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "невідомий потік" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "не вдалося відкрити %s у режимі %s" #~ msgid "string comparison failed" #~ msgstr "невдале порівняння рядків" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Встановити LC_ALL='C', щоб уникнути цієї помилки." #~ msgid "The strings compared were %s and %s." #~ msgstr "Порівнювалися рядки: \"%s\" та \"%s\"." #~ msgid "cannot perform formatted output" #~ msgstr "неможливо здійснити форматований вивід" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "некоректний аргумент для %s%s: `%s'" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "некоректний суфікс в аргументі для %s%s: `%s'" #~ msgid "%s%s argument `%s' too large" #~ msgstr "завеликий аргумент для %s%s: `%s'" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/nb.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001056�12116513225�011770� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v���|���������������������������������Unknown system error�memory exhausted�Project-Id-Version: GNU textutils 2.0.20 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2002-01-27 21:35+0100 Last-Translator: Eivind Tagseth <eivindt@multinet.no> Language-Team: Norwegian <i18n-nb@lister.ping.uio.no> Language: nb MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit �Ukjent systemfeil�virtuelt minne oppbrukt�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/it.po����������������������������������������������������������������������������0000644�0000000�0000000�00000054061�12116513224�011644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Italian translation of gnulib # Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Marco d'Itri <md@linux.it>, 1998, 1999. # Giovanni Bortolozzo <borto@dei.unipd.it>, 1998. # Milo Casagrande <milo@casagrande.name>, 2008, 2009, 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: gnulib-3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-22 21:58+0200\n" "Last-Translator: Milo Casagrande <milo@casagrande.name>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Errore di sistema sconosciuto" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: l'opzione \"%s\" è ambigua. Possibilità:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: l'opzione \"--%s\" richiede un argomento\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opzione \"--%s\" non riconosciuta\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opzione \"%c%s\" non riconosciuta\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: opzione non valida -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: l'opzione \"-W %s\" è ambigua\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: l'opzione \"-W %s\" richiede un argomento\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Successo" #: lib/regcomp.c:134 msgid "No match" msgstr "Nessuna corrispondenza" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Espressione regolare non valida" # (ndt) http://en.wikipedia.org/wiki/Collation #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Carattere di collazione non valido" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Nome classe del carattere non valida" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Backslash finale" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Riferimento all'indietro non valido" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ o [^ senza corrispondenza" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( o \\( senza corrispondenza" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ senza corrispondenza" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Contenuto di \\{\\} non valido" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Fine dell'intervallo non valida" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Memoria esaurita" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Espressione regolare precedente non valida" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Fine prematura dell'espressione regolare" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Espressione regolare troppo grande" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") o \\) senza corrispondenza" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Nessuna espressione regolare precedente" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria esaurita" #~ msgid "invalid argument %s for %s" #~ msgstr "argomento %s non valido per %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argomento %s ambiguo per %s" #~ msgid "Valid arguments are:" #~ msgstr "Sono argomenti validi:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: il valore %s è minore o uguale a %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: il parametro ARGP_HELP_FMT richiede un valore" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: il parametro ARGP_HELP_FMT deve essere positivo" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: parametro ARGP_HELP_FMT sconosciuto" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Spazzatura in ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono " #~ "anche per le corrispondenti opzioni brevi." #~ msgid "Usage:" #~ msgstr "Uso:" #~ msgid " or: " #~ msgstr " o: " #~ msgid " [OPTION...]" #~ msgstr " [OPZIONE...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Usare \"%s --help\" o \"%s --usage\" per ulteriori informazioni.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Segnalare i bug a %s.\n" #~ msgid "give this help list" #~ msgstr "Mostra questo aiuto" #~ msgid "give a short usage message" #~ msgstr "Mostra un breve messaggio sull'uso" #~ msgid "NAME" #~ msgstr "NOME" #~ msgid "set the program name" #~ msgstr "Imposta il nome del programma" #~ msgid "SECS" #~ msgstr "SEC" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "Resta in attesa per SEC secondi (predefinito 3600)" #~ msgid "print program version" #~ msgstr "Stampa la versione del programma" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERRORE DEL PROGRAMMA) Nessuna versione conosciuta." #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: troppi argomenti\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "" #~ "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta." #~ msgid "program error" #~ msgstr "errore del programma" #~ msgid "stack overflow" #~ msgstr "overflow dello stack" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "impossibile trovare una directory temporanea, provare a impostare $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "impossibile creare una directory temporanea usando il modello \"%s\"" #~ msgid "cannot remove temporary file %s" #~ msgstr "impossibile rimuovere il file temporaneo %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "impossibile rimuovere la directory temporanea %s" #~ msgid "error closing file" #~ msgstr "errore nel chiudere il file" #~ msgid "write error" #~ msgstr "errore di scrittura" #~ msgid "preserving permissions for %s" #~ msgstr "preservazione dei permessi per %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "errore nell'aprire \"%s\" in lettura" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "impossibile aprire il file di backup \"%s\" in scrittura" #~ msgid "error reading \"%s\"" #~ msgstr "errore nel leggere \"%s\"" #~ msgid "error writing \"%s\"" #~ msgstr "errore nello scrivere \"%s\"" #~ msgid "error after reading \"%s\"" #~ msgstr "errore dopo la lettura di \"%s\"" #~ msgid "fdopen() failed" #~ msgstr "fdopen() non riuscita" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "compilatore C# non trovato, provare a installare pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "macchina virtuale C# non trovata, provare a installare pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s: sottoprocesso non riuscito" #~ msgid "regular empty file" #~ msgstr "file normale vuoto" #~ msgid "regular file" #~ msgstr "file normale" #~ msgid "directory" #~ msgstr "directory" #~ msgid "block special file" #~ msgstr "file speciale a blocchi" #~ msgid "character special file" #~ msgstr "file speciale a caratteri" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "collegamento simbolico" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "coda di messaggi" #~ msgid "semaphore" #~ msgstr "semaforo" #~ msgid "shared memory object" #~ msgstr "oggetto di memoria condivisa" # (ndt) sono accettati: # - suggerimenti # - collegamenti dove si spieghi cosa sia un 'typed memory object' # Ma dove si spieghi VERAMENTE e CONCRETAMENTE cos'è. #~ msgid "typed memory object" #~ msgstr "oggetto di memoria con nome" #~ msgid "weird file" #~ msgstr "file strano" #~ msgid "Address family for hostname not supported" #~ msgstr "Famiglia di indirizzi per il nome host non supportata" #~ msgid "Temporary failure in name resolution" #~ msgstr "Errore temporaneo nella risoluzione del nome" #~ msgid "Bad value for ai_flags" #~ msgstr "Valore per ai_flags errato" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Errore irreversibile nella risoluzione del nome" #~ msgid "ai_family not supported" #~ msgstr "ai_family non supportato" #~ msgid "Memory allocation failure" #~ msgstr "Allocazione memoria non riuscita" #~ msgid "No address associated with hostname" #~ msgstr "Nessun indirizzo associato col nome host" #~ msgid "Name or service not known" #~ msgstr "Nome o servizio sconosciuto" # (ndt) # # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Nome servizio non supportato per ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype non supportato" #~ msgid "System error" #~ msgstr "Errore di sistema" #~ msgid "Argument buffer too small" #~ msgstr "Buffer argomento troppo piccolo" #~ msgid "Processing request in progress" #~ msgstr "Elaborazione richiesta in corso" #~ msgid "Request canceled" #~ msgstr "Richiesta annullata" #~ msgid "Request not canceled" #~ msgstr "Richiesta non annullata" #~ msgid "All requests done" #~ msgstr "Tutte le richieste completate" #~ msgid "Interrupted by a signal" #~ msgstr "Interrotto da un segnale" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Stringa del parametro non codificata correttamente" #~ msgid "Unknown error" #~ msgstr "Errore sconosciuto" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argomento source_version in compile_java_class non valido" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argomento target_version in compile_java_class non valido" #~ msgid "failed to create \"%s\"" #~ msgstr "creazione di \"%s\" non riuscita" #~ msgid "error while writing \"%s\" file" #~ msgstr "errore durante la scrittura del file \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "compilatore Java non trovato, provare a installare gcj o impostare $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "macchina virtuale Java non trovato, provare a installare gij o impostare " #~ "$JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "errore di I/O nel sottoprocesso %s" #~ msgid "cannot change permissions of %s" #~ msgstr "impossibile cambiare i permessi di %s" #~ msgid "cannot create directory %s" #~ msgstr "impossibile creare la directory %s" #~ msgid "unable to record current working directory" #~ msgstr "impossibile registrare la directory di lavoro corrente" #~ msgid "failed to return to initial working directory" #~ msgstr "ritorno alla directory di lavoro iniziale non riuscito" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Apertura di /dev/zero in lettura non riuscita" #~ msgid "creation of reading thread failed" #~ msgstr "creazione del thread di lettura non riuscita" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "impossibile impostare I/O non bloccante sul sottoprocesso di %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "comunicazione col sottoprocesso di %s non riuscita" #~ msgid "write to %s subprocess failed" #~ msgstr "scrittura sul sottoprocesso di %s non riuscita" #~ msgid "read from %s subprocess failed" #~ msgstr "lettura dal sottoprocesso di %s non riuscita" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "sottoprocesso %s terminato con codice d'uscita %d" #~ msgid "creation of threads failed" #~ msgstr "creazione dei thread non riuscita" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "sottoprocesso di %s terminato con codice d'uscita %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Francois Pinard" #~ msgid "`" #~ msgstr "\"" #~ msgid "'" #~ msgstr "\"" #~ msgid "^[yY]" #~ msgstr "^[sSyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "impostazione dei permessi per %s" # (ndt) ho preferito mettere tra parentesi il vero nome della costante del segnale, sono cose abbastanza tecniche e forse con un riferimento reale più comprensibili # # http://en.wikipedia.org/wiki/SIGHUP #~ msgid "Hangup" #~ msgstr "Chiusura" # http://en.wikipedia.org/wiki/SIGINT_(POSIX) #~ msgid "Interrupt" #~ msgstr "Interruzione" # http://en.wikipedia.org/wiki/SIGQUIT #~ msgid "Quit" #~ msgstr "Uscita (con core dump)" # http://en.wikipedia.org/wiki/SIGILL #~ msgid "Illegal instruction" #~ msgstr "Istruzione non consentita" # http://en.wikipedia.org/wiki/Trap_(computing) # http://en.wikipedia.org/wiki/SIGTRAP #~ msgid "Trace/breakpoint trap" #~ msgstr "Rilevato trace/breakpoint" # http://en.wikipedia.org/wiki/SIGABRT #~ msgid "Aborted" #~ msgstr "Annullato" # http://en.wikipedia.org/wiki/SIGFPE #~ msgid "Floating point exception" #~ msgstr "Eccezione in virgola mobile" #~ msgid "Killed" #~ msgstr "Ucciso" # http://en.wikipedia.org/wiki/Bus_error # http://en.wikipedia.org/wiki/SIGBUS #~ msgid "Bus error" #~ msgstr "Errore di bus" # http://en.wikipedia.org/wiki/Segmentation_fault # http://en.wikipedia.org/wiki/SIGSEGV #~ msgid "Segmentation fault" #~ msgstr "Errore di segmentazione" # http://en.wikipedia.org/wiki/SIGPIPE #~ msgid "Broken pipe" #~ msgstr "Pipe interrotta" # (ndt) non so se convenga lasciarlo invariato... ma forse anche le altre... # http://en.wikipedia.org/wiki/SIGALRM #~ msgid "Alarm clock" #~ msgstr "Sveglia" # http://en.wikipedia.org/wiki/SIGTERM #~ msgid "Terminated" #~ msgstr "Terminato" # http://en.wikipedia.org/wiki/SIGURG #~ msgid "Urgent I/O condition" #~ msgstr "Condizione di I/O urgente" # http://en.wikipedia.org/wiki/SIGSTOP #~ msgid "Stopped (signal)" #~ msgstr "Fermato" # http://en.wikipedia.org/wiki/SIGTSTP #~ msgid "Stopped" #~ msgstr "Fermato (da terminale)" # http://en.wikipedia.org/wiki/SIGCONT #~ msgid "Continued" #~ msgstr "Continuato" # http://en.wikipedia.org/wiki/SIGCHLD #~ msgid "Child exited" #~ msgstr "Processo figlio uscito" # http://en.wikipedia.org/wiki/SIGTTIN #~ msgid "Stopped (tty input)" #~ msgstr "Fermato per input tty" # http://en.wikipedia.org/wiki/SIGTTOU #~ msgid "Stopped (tty output)" #~ msgstr "Fermato per output tty" # (ndt) questa pare non sia posix, wikipedia riporta la stessa di SIGABRT #~ msgid "I/O possible" #~ msgstr "I/O consentito" # http://en.wikipedia.org/wiki/SIGXCPU #~ msgid "CPU time limit exceeded" #~ msgstr "Superato il limite di tempo CPU" # http://en.wikipedia.org/wiki/SIGXFSZ #~ msgid "File size limit exceeded" #~ msgstr "Superato il limite di dimensione file" # http://en.wikipedia.org/wiki/SIGVTALRM #~ msgid "Virtual timer expired" #~ msgstr "Timer virtuale terminato" # http://en.wikipedia.org/wiki/SIGPROF #~ msgid "Profiling timer expired" #~ msgstr "Timer di profiling terminato" # http://en.wikipedia.org/wiki/SIGWINCH #~ msgid "Window changed" #~ msgstr "Finestra modificata" # http://en.wikipedia.org/wiki/SIGUSR1 #~ msgid "User defined signal 1" #~ msgstr "Segnale 1 definito dall'utente" #~ msgid "User defined signal 2" #~ msgstr "Segnale 2 definito dall'utente" # http://en.wikipedia.org/wiki/SIGEMT #~ msgid "EMT trap" #~ msgstr "Rilevato EMT" # http://en.wikipedia.org/wiki/SIGSYS #~ msgid "Bad system call" #~ msgstr "Chiamata di sistema errata" # http://en.wikipedia.org/wiki/SIGSTKFLT #~ msgid "Stack fault" #~ msgstr "Errore sullo stack" # http://en.wikipedia.org/wiki/SIGINFO #~ msgid "Information request" #~ msgstr "Richiesta informazioni" # http://en.wikipedia.org/wiki/SIGPWR #~ msgid "Power failure" #~ msgstr "Mancanza alimentazione elettrica" # http://en.wikipedia.org/wiki/SIGLOST #~ msgid "Resource lost" #~ msgstr "Risorsa persa" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "errore nello scrivere su una pipe o un socket chiusi" #~ msgid "cannot create pipe" #~ msgstr "impossibile creare la pipe" #~ msgid "Real-time signal %d" #~ msgstr "Segnale real-time %d" #~ msgid "Unknown signal %d" #~ msgstr "Segnale %d sconosciuto" #~ msgid "iconv function not usable" #~ msgstr "funzione iconv non utilizzabile" #~ msgid "iconv function not available" #~ msgstr "funzione iconv non disponibile" #~ msgid "character out of range" #~ msgstr "carattere fuori dall'intervallo" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "impossibile convertire U+%04X nel set di caratteri locale" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "impossibile convertire U+%04X nel set di caratteri locale: %s" #~ msgid "invalid user" #~ msgstr "utente non valido" #~ msgid "invalid group" #~ msgstr "gruppo non valido" # (ndt) evinta da un commento al codice: # # /* Set U and G to nonzero length strings corresponding to user and # group specifiers or to NULL. If U is not NULL, it is a newly # allocated string. */ # #~ msgid "invalid spec" #~ msgstr "specificatore non valido" #~ msgid "unable to display error message" #~ msgstr "impossibile visualizzare il messaggio di errore" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Pacchetto creato da %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Pacchetto creato da %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/" #~ "gpl.html>.\n" #~ "Questo programma è software libero: siete liberi di modificarlo e " #~ "ridistribuirlo.\n" #~ "Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Scritto da %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Scritto da %s e %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Scritto da %s, %s e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s\n" #~ "e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s,\n" #~ "%s e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s,\n" #~ "%s, %s e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s,\n" #~ "%s, %s, %s e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s e %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Scritto da %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s e altri.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Segnalare i bug a: %s\n" #~ "Segnalare i bug di traduzione a: <tp@lists.linux.it>\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Segnalare i bug di %s a: %s.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Sito web di %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Sito web di %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Aiuto per l'utilizzo di software GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle non riuscita" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "impossibile ripristinare fd %d: dup2 non riuscita" #~ msgid "%s subprocess" #~ msgstr "sottoprocesso %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "il sottoprocesso %s ha ricevuto un segnale %d fatale" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "stream sconosciuto" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "riapertura di %s in modalità %s non riuscita" #~ msgid "string comparison failed" #~ msgstr "confronto delle stringhe non riuscito" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Impostare LC_ALL='C' per aggirare il problema." #~ msgid "The strings compared were %s and %s." #~ msgstr "Le stringhe confrontate erano %s e %s." #~ msgid "cannot perform formatted output" #~ msgstr "impossibile mostrare l'output formattato" # (ndt) # quello che viene sostituito pare sia: # * il primo, hypens (con valore '--') # * il secondo, option # * il terzo, arg # quindi qualche cosa del genere: # invalid --option argument 'arg' # # (altre idee sono benvenute!) #~ msgid "invalid %s%s argument `%s'" #~ msgstr "l'argomento \"%3$s\" di %1$s%2$s non è valido" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "il suffisso nell'argomento \"%3$s\" di %1$s%2$s non è valido" #~ msgid "%s%s argument `%s' too large" #~ msgstr "l'argomento \"%3$s\" di %1$s%2$s è troppo grande" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ca.po����������������������������������������������������������������������������0000644�0000000�0000000�00000031457�12116513224�011617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# GNU Mailutils Catalan translation. # Copyright © 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the mailutils package. # Jordi Mallach <jordi@gnu.org>, 2002, 2003, 2004, 2005. # msgid "" msgstr "" "Project-Id-Version: mailutils 0.6.90\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2005-05-21 04:10+0200\n" "Last-Translator: Jordi Mallach <jordi@gnu.org>\n" "Language-Team: Catalan <ca@dodds.net>\n" "Language: ca\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" #: lib/error.c:188 msgid "Unknown system error" msgstr "S'ha produït un error desconegut del sistema" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: l'opció «%s» és ambigua\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: l'opció «--%s» no accepta arguments\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: l'opció «%c%s» no accepta arguments\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: l'opció «%s» requereix un argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: l'opció «--%s» no es reconeix\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: l'opció «%c%s» no es reconeix\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: l'opció no és vàlida -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: l'opció requereix un argument -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: l'opció «-W %s» és ambigua\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: l'opció «-W %s» no accepta arguments\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: l'opció «%s» requereix un argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: l'expressió regular no és vàlida: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "la classe de caràcters «%s» no és vàlida" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "la classe de caràcters «%s» no és vàlida" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 #, fuzzy msgid "Invalid back reference" msgstr "El número no és vàlid" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 #, fuzzy msgid "Invalid content of \\{\\}" msgstr "L'opció no és vàlida -- %s" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "el rang de pàgines no és vàlid: «%s»" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "la memòria s'ha exhaurit" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: l'expressió regular no és vàlida: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "error en la recerca de l'expressió regular" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: l'expressió regular no és vàlida: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "error en la recerca de l'expressió regular" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "la memòria s'ha exhaurit" # Usa quote() en els 2 args. ivb #~ msgid "invalid argument %s for %s" #~ msgstr "l'argument %s no és vàlid per %s" # Usa quote() en els 2 args. ivb #~ msgid "ambiguous argument %s for %s" #~ msgstr "l'argument %s és ambigu per %s" #~ msgid "Valid arguments are:" #~ msgstr "Els arguments vàlids són:" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: El paràmetre ARGP_HELP_FMT requereix un valor" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: El paràmetre d'ARGP_HELP_FMT és desconegut" # pfft, escombraries... jm #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Hi ha escombraries en ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Els arguments necessaris o opcionals per a les opcions llargues també són " #~ "necessaris o opcionals per a qualsevol opció curta corresponent." #~ msgid "Usage:" #~ msgstr "Forma d'ús:" #~ msgid " or: " #~ msgstr " ó: " #~ msgid " [OPTION...]" #~ msgstr " [OPCIÓ...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Proveu «%s --help» o «%s --usage» per a obtindre més informació.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Informeu dels errors a %s.\n" #~ msgid "Give this help list" #~ msgstr "Mostra aquesta llista d'ajuda" #~ msgid "Give a short usage message" #~ msgstr "Mostra un curt missatge sobre l'ús" #~ msgid "NAME" #~ msgstr "NOM" #~ msgid "Set the program name" #~ msgstr "Estableix el nom del programa" #, fuzzy #~ msgid "SECS" #~ msgstr "SEGONS" #~ msgid "Hang for SECS seconds (default 3600)" #~ msgstr "Penja durant SEGS segons (per defecte 3600)" #~ msgid "Print program version" #~ msgstr "Mostra la versió del programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERROR DEL PROGRAMA) Cap versió coneguda!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Massa arguments\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ERROR DEL PROGRAMA) L'opció s'hauria d'haver reconegut!?" #, fuzzy #~ msgid "program error" #~ msgstr "error de lectura" # "underflow", bonico el paraulo.. jm #, fuzzy #~ msgid "stack overflow" #~ msgstr "pila buida" #~ msgid "write error" #~ msgstr "error d'escriptura" # Usa quote(). ivb #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "no s'ha pogut obrir %s per llegir" # Usa quote(). ivb #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "no s'ha pogut obrir %s per a escriure" # uniq no usa quote(). ivb #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "error en llegir %s" # uniq no usa quote(). ivb #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "error en escriure %s" # uniq no usa quote(). ivb #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "error en llegir %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "no s'ha pogut obrir" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: ha fallat el desplaçament" #~ msgid "regular empty file" #~ msgstr "fitxer ordinari buit" #~ msgid "regular file" #~ msgstr "fitxer ordinari" #~ msgid "directory" #~ msgstr "directori" #~ msgid "block special file" #~ msgstr "fitxer especial de blocs" #~ msgid "character special file" #~ msgstr "fitxer especial de caràcters" #~ msgid "fifo" #~ msgstr "cua FIFO" #~ msgid "symbolic link" #~ msgstr "enllaç simbòlic" #~ msgid "socket" #~ msgstr "connector" #~ msgid "message queue" #~ msgstr "cua de missatges" #~ msgid "semaphore" #~ msgstr "semàfor" #~ msgid "shared memory object" #~ msgstr "objecte de memòria compartida" #~ msgid "typed memory object" #~ msgstr "objecte de memòria amb tipus" #~ msgid "weird file" #~ msgstr "fitxer estrany" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "els fitxers FIFO no són suportats" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "els fitxers FIFO no són suportats" #, fuzzy #~ msgid "Memory allocation failure" #~ msgstr "L'operació ha fallat" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "els fitxers FIFO no són suportats" #, fuzzy #~ msgid "System error" #~ msgstr "error d'escriptura" #, fuzzy #~ msgid "Request not canceled" #~ msgstr "No es troba l'element sol·licitat" #, fuzzy #~ msgid "Unknown error" #~ msgstr "S'ha produït un error desconegut del sistema" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: l'opció és il·legal -- %c\n" # FIXME: xmalloc.h: _STRTOL_ERROR lacks i18n. ivb # Açò quedarà com «invalid mida de bloc `MIDA'» mentre no ho facen. ivb #~ msgid "block size" #~ msgstr "mida de bloc" # Els 4 usen quote(). ivb #~ msgid "%s exists but is not a directory" #~ msgstr "%s existeix però no és un directori" # Els 3 usen quote(). ivb #~ msgid "cannot change owner and/or group of %s" #~ msgstr "no s'ha pogut canviar el propietari o grup de %s" # Els 3 usen quote(). ivb #~ msgid "cannot create directory %s" #~ msgstr "no s'ha pogut crear el directori %s" # Usa quote(). ivb #~ msgid "cannot chdir to directory %s" #~ msgstr "no s'ha pogut canviar al directori %s" # Els 2 usen quote(). ivb #~ msgid "cannot change permissions of %s" #~ msgstr "no s'han pogut canviar els permisos de %s" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "openat: no s'ha pogut registrar el directori de treball actual" #~ msgid "failed to return to initial working directory" #~ msgstr "no s'ha pogut tornar al directori inicial de treball" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s: no s'ha pogut obrir per a escriure" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "No es pot crear la llista" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #~ msgid "^[yY]" #~ msgstr "^[sS]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "la funció iconv() no és útil" #~ msgid "iconv function not available" #~ msgstr "la funció iconv() no es troba disponible" #~ msgid "character out of range" #~ msgstr "el caràcter es troba fora del rang" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "no s'ha pogut convertir U+%04X al joc de caràcters local" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "no s'ha pogut convertir U+%04X al joc de caràcters local: %s" #~ msgid "invalid user" #~ msgstr "l'usuari no és vàlid" #~ msgid "invalid group" #~ msgstr "el grup no és vàlid" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "no s'ha pogut obtenir el grup d'entrada d'un UID numèric" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Aquest és programari lliure; podeu redistribuir-lo i/o modificar-lo sota " #~ "els\n" #~ "termes de la Llicència Pública General GNU tal i com ha estat publicada " #~ "per la\n" #~ "Free Software Foundation; bé sota la versió 2 de la Llicència o bé (si " #~ "ho\n" #~ "preferiu) sota qualsevol versió posterior.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Escrit per %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Escrit per %s i %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Escrit per %s, %s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s\n" #~ "i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s,\n" #~ "%s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s,\n" #~ "%s, %s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s,\n" #~ "%s, %s, %s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Escrit per %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s i d'altres.\n" #~ msgid "string comparison failed" #~ msgstr "ha fallat la comparació de cadenes" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Establiu la variable LC_ALL a «C» per evitar el problema." # Usa quote() en les 2. ivb #~ msgid "The strings compared were %s and %s." #~ msgstr "Les cadenes comparades eren %s i %s." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/zh_TW.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001113�12116513225�012416� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v�����������%�����;��������������������Unknown system error�memory exhausted�Project-Id-Version: coreutils 5.3.0 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2005-07-02 04:13+0800 Last-Translator: Abel Cheung <abelcheung@gmail.com> Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw> Language: zh_TW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=1; plural=0; �不明的系統錯誤�記憶體耗盡������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/de.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000005764�12116513225�011773� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+�� �����*�����1���&��*���X��+�����+�����$�����,���� ��,���- �����Z �����z ����� ����� ����� ����� ��.��� �����5 �����N �����n ����� ��'��� ��)��� ��#��� ����� ����� �����3 ��%���L ��%���r ��%��� ����� ����� �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: GNU gnulib-3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-06-03 12:41-0700 Last-Translator: Arun Persaud <arun@nubati.net> Language-Team: German <translation-team-de@lists.sourceforge.net> Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); �%s: ungültige Option -- »%c« �%s: Option »%c%s« erlaubt kein Argument �%s: Option »%s« ist mehrdeutig; Möglichkeiten:�%s: Option »--%s« erlaubt kein Argument �%s: Option »--%s« erfordert ein Argument �%s: Option »-W %s« erlaubt kein Argument �%s: Option »-W %s« ist mehrdeutig �%s: Option »-W %s« erfordert ein Argument �%s: Option erfordert ein Argument -- »%c« �%s: unbekannte Option »%c%s« �%s: unbekannte Option »--%s« �Ungültige Rückreferenz�Ungültiger Zeichenklassenname�Ungültige Zeichenklasse�Ungültiger Inhalt in \{\}�ungültiger vorhergehender regulärer Ausdruck�Ungültiges Bereichsende�ungültiger regulärer Ausdruck�Speicher ausgeschöpft�Keine Übereinstimmung�Kein vorhergehender regulärer Ausdruck�Vorzeitiges Ende des regulären Ausdrucks�Der reguläre Ausdruck ist zu groß�Erfolg�abschließender Backslash�Unbekannter Systemfehler�Keine Übereinstimmung für ( oder \(�Keine Übereinstimmung für ) oder \)�Keine Übereinstimmung für [ oder [^�Keine Übereinstimmung für \{�Speicher ausgeschöpft�������������wdiff-1.2.1/lib/po/zh_CN.po�������������������������������������������������������������������������0000644�0000000�0000000�00000045601�12116513224�012231� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# simplified Chinese translation of gnulib. # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Yip Chi Lap <clyip@cs.hku.hk>, 1998. # Abel Cheung <maddog@linux.org.hk>, 2002. # Anthony Fok <anthony@thizlinux.com>, 2002. # Funda Wang <fundawang@linux.net.cn>, 2004, 2005. # Ji ZhengYu <zhengyuji@gmail.com>, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2010-02-26 09:54+0800\n" "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "未知的系统错误" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: 选项\"%s\"歧义\n" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: 选项\"--%s\"不要参数\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: 选项\"%c%s\"不要参数\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: 选项\"%s\"必须带参数\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: 无法识别的选项\"--%s\"\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: 无法识别的选项\"%c%s\"\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: 无效选项 -- \"%c\"\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: 选项需要参数 -- \"%c\"\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: 选项\"-W %s\"有歧义\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: 选项\"-W %s\"不要带参数\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: 选项\"%s\"必须带参数\n" #: lib/regcomp.c:131 msgid "Success" msgstr "成功" #: lib/regcomp.c:134 msgid "No match" msgstr "不匹配" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "正则表达式无效" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "无效的重组字符" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "无效的字符类名" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "多余的反斜杠" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "无效的向后索引" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ 或 [^ 不匹配" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( 或 \\( 不匹配" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ 不匹配" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "\\{\\} 的内容无效" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "无效的范围结尾" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "内存用尽" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "前置的正则表达式无效" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "正则表达式结尾过早" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "正则表达式太大" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") 或 \\) 不匹配" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "没有前次正则表达式" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "内存用尽" #~ msgid "invalid argument %s for %s" #~ msgstr "%2$s 的参数 %1$s 无效" #~ msgid "ambiguous argument %s for %s" #~ msgstr "%2$s 的参数 %1$s 有歧义" #~ msgid "Valid arguments are:" #~ msgstr "有效的参数为:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s 的值小于或等于 %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT 参数需要一个值" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT 参数必须为正值" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: 未知的 ARGP_HELP_FMT 参数" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "ARGP_HELP_FMT 中的无效参数: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "选项完整形式所必须用的或是可选的参数,在使用选项缩写形式时也是必须的或是可" #~ "选的。" #~ msgid "Usage:" #~ msgstr "用法:" #~ msgid " or: " #~ msgstr " 或者: " #~ msgid " [OPTION...]" #~ msgstr "[选项...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "请尝试执行“%s --help”或“%s --usage”来获取更多信息。\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "请向 %s 报告错误。\n" #~ msgid "give this help list" #~ msgstr "显示此帮助列表" #~ msgid "give a short usage message" #~ msgstr "显示一份简洁的用法信息" #~ msgid "NAME" #~ msgstr "NAME" #~ msgid "set the program name" #~ msgstr "设定程序名称" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "挂起 SECS 秒(默认 3600 秒)" #~ msgid "print program version" #~ msgstr "打印程序版本" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(程序错误)未知版本!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s:参数太多\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(程序错误)未知的选项!?" #~ msgid "program error" #~ msgstr "程序错误" #~ msgid "stack overflow" #~ msgstr "堆栈溢出" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "无法找到一个临时目录,请尝试设置 $TMPDIR 环境变量" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "无法以模板“%s”创建一个临时目录" #~ msgid "cannot remove temporary file %s" #~ msgstr "无法删除临时文件 %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "无法删除临时目录 %s" #~ msgid "error closing file" #~ msgstr "关闭文件时发生错误" #~ msgid "write error" #~ msgstr "写入错误" #~ msgid "preserving permissions for %s" #~ msgstr "保留 %s 的权限" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "打开“%s”读取数据时发生错误" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "无法打开备份文件“%s”写入数据" #~ msgid "error reading \"%s\"" #~ msgstr "读入“%s”时错误" #~ msgid "error writing \"%s\"" #~ msgstr "写入“%s”时错误" #~ msgid "error after reading \"%s\"" #~ msgstr "读入“%s”后错误" #~ msgid "fdopen() failed" #~ msgstr "fdopen() 错误" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "未找到 C# 编译器,尝试安装 pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "未找到 C# 虚拟机,尝试安装 pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s 子进程错误" #~ msgid "regular empty file" #~ msgstr "一般空文件" #~ msgid "regular file" #~ msgstr "一般文件" #~ msgid "directory" #~ msgstr "目录" #~ msgid "block special file" #~ msgstr "块特殊文件" #~ msgid "character special file" #~ msgstr "字符特殊文件" #~ msgid "fifo" #~ msgstr "先进先出" #~ msgid "symbolic link" #~ msgstr "符号链接" #~ msgid "socket" #~ msgstr "套接字" #~ msgid "message queue" #~ msgstr "消息队列" #~ msgid "semaphore" #~ msgstr "信号量" #~ msgid "shared memory object" #~ msgstr "共享内存对象" #~ msgid "typed memory object" #~ msgstr "标准内存对象" #~ msgid "weird file" #~ msgstr "古怪文件" #~ msgid "Address family for hostname not supported" #~ msgstr "不支持主机名的地址族" #~ msgid "Temporary failure in name resolution" #~ msgstr "名称解析时发生临时错误" #~ msgid "Bad value for ai_flags" #~ msgstr "ai_flags 的值错误" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "名称解析时发生不可恢复的错误" #~ msgid "ai_family not supported" #~ msgstr "不支持 ai_family" #~ msgid "Memory allocation failure" #~ msgstr "内存分配错误" #~ msgid "No address associated with hostname" #~ msgstr "主机名未分配到地址" #~ msgid "Name or service not known" #~ msgstr "未知的名称或服务" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype 不支持的服务名" #~ msgid "ai_socktype not supported" #~ msgstr "不支持 ai_socktype" #~ msgid "System error" #~ msgstr "系统错误" #~ msgid "Argument buffer too small" #~ msgstr "参数缓冲区太小" #~ msgid "Processing request in progress" #~ msgstr "正在处理进程的请求" #~ msgid "Request canceled" #~ msgstr "请求已取消" #~ msgid "Request not canceled" #~ msgstr "请求未取消" #~ msgid "All requests done" #~ msgstr "已处理所有请求" #~ msgid "Interrupted by a signal" #~ msgstr "被一个信号中断" #~ msgid "Parameter string not correctly encoded" #~ msgstr "参数字符串未正确编码" #~ msgid "Unknown error" #~ msgstr "未知错误" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "compile_java_class 的 source_version 参数无效" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "compile_java_class 的 target_version 参数无效" #~ msgid "failed to create \"%s\"" #~ msgstr "无法创建“%s”" #~ msgid "error while writing \"%s\" file" #~ msgstr "正在写入“%s”文件时发生错误" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "未找到 Java 编译器,尝试安装 gcj 或是设置 $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "未找到 Java 虚拟机,尝试安装 gij 或是设置 $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "%s 子进程输入/输出错误" #~ msgid "cannot change permissions of %s" #~ msgstr "无法更改 %s 的权限" #~ msgid "cannot create directory %s" #~ msgstr "无法创建目录 %s" #~ msgid "unable to record current working directory" #~ msgstr "无法记录当前工作的目录" #~ msgid "failed to return to initial working directory" #~ msgstr "返回到初始工作目录失败" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "无法以读方式打开 /dev/zero" #~ msgid "creation of reading thread failed" #~ msgstr "读线程创建错误" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "无法为 %s 子进程设置非阻塞性 I/O" #~ msgid "communication with %s subprocess failed" #~ msgstr "与 %s 子进程通讯错误" #~ msgid "write to %s subprocess failed" #~ msgstr "写入 %s 子进程错误" #~ msgid "read from %s subprocess failed" #~ msgstr "读取 %s 子进程错误" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "子进程 %s 由退出码 %d 终止" #~ msgid "creation of threads failed" #~ msgstr "线程创建失败" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "子进程 %s 由退出码 %d 终止" #~ msgid "cannot create pipe" #~ msgstr "无法创建管道" #~ msgid "`" #~ msgstr "“" #~ msgid "'" #~ msgstr "”" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "设置 %s 的权限" #~ msgid "Hangup" #~ msgstr "挂起" #~ msgid "Interrupt" #~ msgstr "中断" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "Illegal instruction" #~ msgstr "非法指令" #~ msgid "Trace/breakpoint trap" #~ msgstr "跟踪(断点)" #~ msgid "Aborted" #~ msgstr "取消" #~ msgid "Floating point exception" #~ msgstr "浮点溢出" #~ msgid "Killed" #~ msgstr "强行终止" #~ msgid "Bus error" #~ msgstr "总线错误" #~ msgid "Segmentation fault" #~ msgstr "段错误" #~ msgid "Broken pipe" #~ msgstr "管道断开" #~ msgid "Alarm clock" #~ msgstr "时钟警报" #~ msgid "Terminated" #~ msgstr "被终止" #~ msgid "Urgent I/O condition" #~ msgstr "I/O 条件不足" #~ msgid "Stopped (signal)" #~ msgstr "被停止(通过信号)" #~ msgid "Stopped" #~ msgstr "被停止" #~ msgid "Continued" #~ msgstr "继续" #~ msgid "Child exited" #~ msgstr "子进程退出" #~ msgid "Stopped (tty input)" #~ msgstr "被停止(tty 输入)" #~ msgid "Stopped (tty output)" #~ msgstr "被停止(tty 输出)" #~ msgid "I/O possible" #~ msgstr "I/O 可能" #~ msgid "CPU time limit exceeded" #~ msgstr "超出CPU 时间限制" #~ msgid "File size limit exceeded" #~ msgstr "超出文件大小限制" #~ msgid "Virtual timer expired" #~ msgstr "虚拟计时器过期" #, fuzzy #~ msgid "Profiling timer expired" #~ msgstr "数据计时器过期" #~ msgid "Window changed" #~ msgstr "窗口改变" #~ msgid "User defined signal 1" #~ msgstr "用户自定义信号 1" #~ msgid "User defined signal 2" #~ msgstr "用户自定义信号 2" #~ msgid "EMT trap" #~ msgstr "仿真程序陷阱" #~ msgid "Bad system call" #~ msgstr "错误的系统调用" #~ msgid "Stack fault" #~ msgstr "堆栈错误" #~ msgid "Information request" #~ msgstr "信息请求" #~ msgid "Power failure" #~ msgstr "电力问题" #~ msgid "Resource lost" #~ msgstr "资源丢失" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "写入一个已关闭的管道或套接字时发生错误" #~ msgid "Real-time signal %d" #~ msgstr "实时信号 %d" #~ msgid "Unknown signal %d" #~ msgstr "未知信号 %d" #~ msgid "iconv function not usable" #~ msgstr "iconv 函数无法使用" #~ msgid "iconv function not available" #~ msgstr "iconv 函数不存在" #~ msgid "character out of range" #~ msgstr "字符值超出可接受的范围以外" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "无法将 U+%04X 转换至用户的字符集" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "无法将 U+%04X 转换至用户的字符集:%s" #~ msgid "invalid user" #~ msgstr "无效的用户" #~ msgid "invalid group" #~ msgstr "无效的组" #~ msgid "invalid spec" #~ msgstr "无效的 spec" #~ msgid "unable to display error message" #~ msgstr "无法显示错误信息" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "由 %s (%s) 打包\n" #~ msgid "Packaged by %s\n" #~ msgstr "由 %s 打包\n" #~ msgid "(C)" #~ msgstr "(C)" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "授权协议 GPLv3+: GNU GPL 版本 3 或更新版本 <http://gnu.org/licenses/gpl." #~ "html>\n" #~ "这是自由软件:您可以自由的更改并重新发布它。\n" #~ "在法律允许的范围内,没有任何担保。\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "由 %s 编写。\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "由 %s 和 %s 编写。\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "由 %s、%s 和 %s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "由 %s、%s、%s 和\n" #~ "%s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "由 %s、%s、%s、\n" #~ "%s 和 %s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "由 %s、%s、%s、\n" #~ "%s、%s 和 %s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "由 %s、%s、%s、\n" #~ "%s、%s、%s 和 %s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "由 %s、%s、%s、\n" #~ "%s、%s、%s、%s\n" #~ "和 %s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "由 %s、%s、%s、\n" #~ "%s、%s、%s、%s、\n" #~ "%s、和 %s 编写。\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "由 %s、%s、%s、\n" #~ "%s、%s、%s、%s、\n" #~ "%s、%s、和其他人编写。\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "请向 %s 报告错误。向 <i18n-zh@googlegroups.com> 报告翻译错误。\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "将 %s 错误报告给: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s 主页: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s 主页: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "GNU 软件的通用帮助: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle 失败" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "无法恢复文件描述符 %d: dup2 失败" #~ msgid "%s subprocess" #~ msgstr "%s 子进程" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s 子进程获得终结信号 %d" #~ msgid "stdin" #~ msgstr "标准输入" #~ msgid "stdout" #~ msgstr "标准输出" #~ msgid "stderr" #~ msgstr "标准错误输出" #~ msgid "unknown stream" #~ msgstr "未知的流" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "无法以 %2$s 模式重新打开 %1$s" #~ msgid "string comparison failed" #~ msgstr "字符串比较出现错误" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "请设定 LC_ALL='C' 避免问题出现。" #~ msgid "The strings compared were %s and %s." #~ msgstr "要比较的字符串为 %s 和 %s。" #~ msgid "cannot perform formatted output" #~ msgstr "无法执行格式化输出" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "%s%s 参数‘%s’无效" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "%s%s 参数‘%s’的后缀无效" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s 参数‘%s’太长" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:非法选项 -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "请向 <%s> 报告错误。\n" #~ msgid "block size" #~ msgstr "块大小" #~ msgid "%s exists but is not a directory" #~ msgstr "%s 存在但并非目录" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "无法更改 %s 的属主和/或组" #~ msgid "cannot chdir to directory %s" #~ msgstr "无法切换到目录 %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "无法取得 UID 数值所表示的用户的主组" �������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/et.po����������������������������������������������������������������������������0000644�0000000�0000000�00000036266�12116513224�011647� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is distributed under the same license as the gnulib package. # Estonian translations for gnulib # Copyright (C) 2000 Free Software Foundation, Inc. # Toomas Soome <Toomas.Soome@microlink.ee>, 2011. # msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-05-19 15:10+0300\n" "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n" "Language-Team: Estonian <linux-ee@lists.eenet.ee>\n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Tundmatu ssteemne viga" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: vti '%s' on segane\n" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: vti '--%s' ei luba kasutada argumenti\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: vti '%c%s' ei luba kasutada argumenti\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: vti '%s' nuab argumenti\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: tundmatu vti '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: tundmatu vti '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: vigane vti -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: vti nuab argumenti -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: vti '-W %s' on segane\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: vti '-W %s' ei luba kasutada argumenti\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: vti '%s' nuab argumenti\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Vigane regulaaravaldis" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Vigane vrdlussmbol" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Vigane smbolite klassi nimi" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Vigane tagasiviide" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Vigane vahemiku lpp" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Mlu on otsas" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Vigane eelnev regulaaravaldis" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Enneaegne regulaaravaldise lpp" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Regulaaravaldis on liiga pikk" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Eelmist regulaaravaldist pole" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "mlu on otsas" #~ msgid "invalid argument %s for %s" #~ msgstr "vigane argument %s vtmel `%s'" #~ msgid "ambiguous argument %s for %s" #~ msgstr "segane argument %s vtmele `%s'" #~ msgid "Valid arguments are:" #~ msgstr "Lubatud argumendid on:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s vrtus on viksem vi vrdne kui %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT parameeter nuab vrtust" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parameeter peab olema positiivne" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Tundmatu ARGP_HELP_FMT parameeter" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Prgi ARGP_HELP_FMT sees: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Kohustuslikud argumendid pikkadele vtmetele on kohustuslikud ka " #~ "lhikestele." #~ msgid "Usage:" #~ msgstr "Kasutamine:" #~ msgid " or: " #~ msgstr " vi: " #~ msgid " [OPTION...]" #~ msgstr " [VTI]..." #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Lisainfo saamiseks proovige `%s --help' vi `%s --usage'.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Vigadest teatage palun aadressil %s.\n" #~ msgid "give this help list" #~ msgstr "anna see abiinfo" #~ msgid "give a short usage message" #~ msgstr "anna kasutamise lhikirjeldus" #~ msgid "NAME" #~ msgstr "NIMI" #~ msgid "set the program name" #~ msgstr "sea programmi nimi" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "oota SEK sekundit (vaikimisi 3600)" #~ msgid "print program version" #~ msgstr "vljasta programmi versioon" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMMI VIGA) Versioon ei ole teada!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Liiga palju argumente\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMMI VIGA) Vti pidanuks olema teada!?" #~ msgid "program error" #~ msgstr "programmi viga" #~ msgid "stack overflow" #~ msgstr "pinu letitumine" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "ei leia ajutist kataloogi, proovige seada $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "vormiga \"%s\" ei saa ajutist kataloogi luua" #~ msgid "cannot remove temporary file %s" #~ msgstr "ajutist faili %s ei nnestu kustutada" #~ msgid "cannot remove temporary directory %s" #~ msgstr "ajutist kataloogi %s ei nnestu kustutada" #~ msgid "error closing file" #~ msgstr "viga faili sulgemisel" #~ msgid "write error" #~ msgstr "viga kirjutamisel" #~ msgid "preserving permissions for %s" #~ msgstr "silitan %s iguseid" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "viga \"%s\" lugemiseks avamisel" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "Varukoopia faili \"%s\" ei nnestu kirjutamiseks avada" #~ msgid "error reading \"%s\"" #~ msgstr "viga \"%s\" lugemisel" #~ msgid "error writing \"%s\"" #~ msgstr "viga \"%s\" kirjutamisel" #~ msgid "error after reading \"%s\"" #~ msgstr "viga peale \"%s\" lugemist" #~ msgid "fdopen() failed" #~ msgstr "fdopen() ebannestus" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C# kompilaatorit pole, proovige paigaldada pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "C# virtuaalmasinat pole, proovige paigaldada pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s: alamprotsess sai vea" #~ msgid "regular empty file" #~ msgstr "tavaline thi fail" #~ msgid "regular file" #~ msgstr "tavaline fail" #~ msgid "directory" #~ msgstr "Kataloog" #~ msgid "block special file" #~ msgstr "blokkseadme fail" #~ msgid "character special file" #~ msgstr "smbolseadme fail" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "nimeviide" #~ msgid "socket" #~ msgstr "sokkel" #~ msgid "message queue" #~ msgstr "teadete jrjekord" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "jagatud mlu objekt" #~ msgid "typed memory object" #~ msgstr "tbitud mlu objekt" #~ msgid "weird file" #~ msgstr "veider fail" #~ msgid "Address family for hostname not supported" #~ msgstr "Aadressiperekonda vi hostinime ei toetata" #~ msgid "Temporary failure in name resolution" #~ msgstr "Ajutine trge nime lahendamisel" #~ msgid "Bad value for ai_flags" #~ msgstr "Vigane ai_flags vrtus" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "nime lahendamisl tekkis taastumatu trge" #~ msgid "ai_family not supported" #~ msgstr "ai_family ei toetata" #~ msgid "Memory allocation failure" #~ msgstr "Trge mlu haaramisel" #~ msgid "No address associated with hostname" #~ msgstr "Hosti nimega ei ole aadresse seostatud" #~ msgid "Name or service not known" #~ msgstr "Nimi vi teenus on tundmatu" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype ei toeta teenuse nime" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ei toetata" #~ msgid "System error" #~ msgstr "Ssteemne viga" #~ msgid "Argument buffer too small" #~ msgstr "Argumentide puhver on liiga vike" #~ msgid "Processing request in progress" #~ msgstr "Pringu ttlemine kib" #~ msgid "Request canceled" #~ msgstr "Pring katkestati" #~ msgid "Request not canceled" #~ msgstr "Pringut ei katkestatud" #~ msgid "All requests done" #~ msgstr "Kik pringud tidetud" #~ msgid "Interrupted by a signal" #~ msgstr "Katkestatud signaaliga" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parameetersne ei ole korrektselt kodeeritud" #~ msgid "Unknown error" #~ msgstr "Tundmatu viga" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "funktsiooni compile_java_class argument source_version on vigane" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "funktsiooni compile_java_class argument target_version on vigane" #~ msgid "failed to create \"%s\"" #~ msgstr "\"%s\" ei nnestu luua" #~ msgid "error while writing \"%s\" file" #~ msgstr "viga faili \"%s\" kirjutamisel" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Java kompilaatorit pole, proovige paigaldada gcj vi seada $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "Java virtuaalmasinat pole, proovige paigaldada gcj vi seada $JAVAC" #~ msgid "%s subprocess I/O error" #~ msgstr "%s: alamprotsess sai S/V vea" #~ msgid "cannot change permissions of %s" #~ msgstr "ei nnestu muuta %s igusi" #~ msgid "cannot create directory %s" #~ msgstr "kataloogi `%s' ei nnestu luua" #~ msgid "unable to record current working directory" #~ msgstr "ei nnestu registreerida jooksvat tkataloogi" #~ msgid "failed to return to initial working directory" #~ msgstr "esialgsesse tkataloogi ei nnestu tagasi minna" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Faili /dev/zero saa lugemiseks avada" #~ msgid "creation of reading thread failed" #~ msgstr "lugemise lime loomine ebannestus" #~ msgid "communication with %s subprocess failed" #~ msgstr "hendus %s alamprotsessiga ebannestus" #~ msgid "write to %s subprocess failed" #~ msgstr "kirjutamine %s alamprotsessi sai vea" #~ msgid "read from %s subprocess failed" #~ msgstr "lugemine %s alamprotsessist sai vea" #~ msgid "creation of threads failed" #~ msgstr "limede loomine ebannestus" #~ msgid "cannot create pipe" #~ msgstr "ei nnestu luua toru" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[jJ]" #~ msgid "^[nN]" #~ msgstr "^[eE]" #~ msgid "setting permissions for %s" #~ msgstr "ei nnestu seada %s igusi" #~ msgid "Bus error" #~ msgstr "Siini viga" #~ msgid "Power failure" #~ msgstr "Toite viga" #~ msgid "iconv function not usable" #~ msgstr "iconv funktsioon ei ole kasutatav" #~ msgid "iconv function not available" #~ msgstr "iconv funktsioon puudub" #~ msgid "character out of range" #~ msgstr "smbol on piirkonnast vljas" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X ei saa lokaalsesse kooditabelisse teisendada" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X ei saa lokaalsesse kooditabelisse teisendada: %s" #~ msgid "invalid user" #~ msgstr "vigane kasutaja" #~ msgid "invalid group" #~ msgstr "vigane grupp" #~ msgid "invalid spec" #~ msgstr "vigane spetsifikatsioon" #~ msgid "(C)" #~ msgstr "" #~ msgid "Written by %s.\n" #~ msgstr "Kirjutanud %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Kirjutanud %s ja %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Kirjutanud %s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s\n" #~ "ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s,\n" #~ "%s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s,\n" #~ "%s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s,\n" #~ "%s, %s, %s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s ja %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Kirjutanud %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s ja teised.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Vigadest teatage palun aadressil: %s.\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "%s vigadest teatage palun aadressil: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s koduleht: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s koduleht: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "ldine abiinfo GNU tarkvara kasutamisest: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle ebannestus" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "failipidet %d ei nnestu taastada: dup2 ebannestus" #~ msgid "%s subprocess" #~ msgstr "%s alamprotsess" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s alamprotsess sai fataalse signaali %d" #~ msgid "stdin" #~ msgstr "standardsisend" #~ msgid "stdout" #~ msgstr "standardvljund" #~ msgid "stderr" #~ msgstr "standardvead" #~ msgid "unknown stream" #~ msgstr "undmatu voog" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "reopen %s moodiga %s ebannestus" #~ msgid "string comparison failed" #~ msgstr "snede vrdlus ebannestus" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Probleemi lahendamiseks seadke LC_ALL=C." #~ msgid "The strings compared were %s and %s." #~ msgstr "Vrreldi snesid %s ja %s." #~ msgid "cannot perform formatted output" #~ msgstr "ei nnestu luua vormindatud vljundit" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "vigane %s%s argument `%s'" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "vigane sufiks %s%s argument `%s'" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s argument `%s' on liiga suur" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ko.po����������������������������������������������������������������������������0000644�0000000�0000000�00000022634�12116513224�011642� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Korean messages for GNU textutils # Copyright (C) 1996, 2001, 2002 Free Software Foundation, Inc. # Bang Jun-Young <bangjy@nownuri.nowcom.co.kr>, 1996-1997. # Changwoo Ryu <cwryu@debian.org>, 2001-2002. # msgid "" msgstr "" "Project-Id-Version: GNU textutils 2.0.22\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2002-07-22 20:02+0900\n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" "Language-Team: Korean <translation-team-ko@lists.sourceforge.net>\n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-KR\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr " ý " #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: `%s'() ȣ ɼԴϴ\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: `--%s' ɼ μ ʽϴ\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: `%c%s' ɼ μ ʽϴ\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: `%s' ɼ μ ʿմϴ\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: ν ɼ `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: ν ɼ `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ɼ -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: ɼ μ ʿմϴ -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: `-W %s'() ȣ ɼԴϴ\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' ɼ μ ʽϴ\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: `%s' ɼ μ ʿմϴ\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: Խ: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr " Ŭ `%s'" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr " Ŭ `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: Խ: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "޸𸮰 ٴڳ" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: Խ: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "Խ Ž ߻" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: Խ: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "Խ Ž ߻" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "޸𸮰 ٴڳ" #~ msgid "invalid argument %s for %s" #~ msgstr "%2$s %1$s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "%2$s ָ %1$s" #~ msgid "Valid arguments are:" #~ msgstr "ùٸ ڴ:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr " ɼǿ ʿ μ ª ɼǿ ʿմϴ.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr ": %s [<ɼ>] [<>]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr " `%s --help' Ͻʽÿ.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "<%s>() ׸ ˷ ֽʽÿ.\n" #, fuzzy #~ msgid "Print program version" #~ msgstr "α׷ " #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "μ ʹ " #~ msgid "program error" #~ msgstr "α׷ " #~ msgid "stack overflow" #~ msgstr " ÷ο" #~ msgid "write error" #~ msgstr " " #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "`%s' `%s' ̵ ϴ" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "`%s' `%s' ̵ ϴ" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "%s() д ߻" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "%s ߻" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "%s() д ߻" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr " " #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: " #~ msgid "regular empty file" #~ msgstr "Ϲ " #~ msgid "regular file" #~ msgstr "Ϲ " #~ msgid "directory" #~ msgstr "丮" #~ msgid "block special file" #~ msgstr " Ư " #~ msgid "character special file" #~ msgstr " Ư " #~ msgid "fifo" #~ msgstr "FIFO" #~ msgid "symbolic link" #~ msgstr "ɺ ũ" #~ msgid "socket" #~ msgstr "" #~ msgid "message queue" #~ msgstr "޼ ť" #~ msgid "semaphore" #~ msgstr "" #~ msgid "shared memory object" #~ msgstr " ޸ Ʈ" #, fuzzy #~ msgid "typed memory object" #~ msgstr " ޸ Ʈ" #~ msgid "weird file" #~ msgstr " " #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo ʽϴ" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo ʽϴ" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo ʽϴ" #, fuzzy #~ msgid "System error" #~ msgstr " " #, fuzzy #~ msgid "Unknown error" #~ msgstr " ý " #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ߸ ɼ -- %c\n" #~ msgid "block size" #~ msgstr " ũ" #~ msgid "%s exists but is not a directory" #~ msgstr "%s() 丮 ƴմϴ" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "%s ׸/Ȥ ׷ ٲ ϴ" #~ msgid "cannot create directory %s" #~ msgstr "%s 丮 ϴ" #~ msgid "cannot chdir to directory %s" #~ msgstr "%s 丮 chdir ϴ" #~ msgid "cannot change permissions of %s" #~ msgstr "%s 㰡 ٲ ϴ" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "%s 丮 ϴ" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s 㰡 ٲ ϴ" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "%s 丮 ϴ" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "iconv Լ ϴ" # not usable not available ̴? #~ msgid "iconv function not available" #~ msgstr "iconv Լ ϴ" #~ msgid "character out of range" #~ msgstr "  " #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X() Į ڼ ȯ ϴ" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X() Į ڼ ȯ ϴ: %s" #~ msgid "invalid user" #~ msgstr "߸ " #~ msgid "invalid group" #~ msgstr "߸ ׷" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "UID α ׷ ˾ ϴ" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ " α׷ ƮԴϴ. Ʈ Ǿ絵ڴ \n" #~ "Ʈ ǥ GNU General Public License 2 (Ǵ \n" #~ " Ƿ ؼ), α׷ ϰų \n" #~ " ֽϴ.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "%s() ϴ.\n" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "%s() ϴ.\n" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "%s() ϴ.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "%s() ϴ.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "%s() ϴ.\n" #~ msgid "string comparison failed" #~ msgstr "ڿ 񱳰 ߽ϴ" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr " LC_ALL='C'Ͻʽÿ." #~ msgid "The strings compared were %s and %s." #~ msgstr " ڿ %s() %sԴϴ." ����������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/el.po����������������������������������������������������������������������������0000644�0000000�0000000�00000032260�12116513224�011625� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Greek messages for gnulib # Copyright (C) 1999, 2000, 2001, 2002, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Simos Xenitellis <simos.lists@googlemail.com>, 1999, 2000, 2001, 2002, 2012. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2012-03-11 11:25+0100\n" "Last-Translator: Simos Xenitellis <simos.lists@googlemail.com>\n" "Language-Team: Greek <team@lists.gnome.gr>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" # #: lib/error.c:188 msgid "Unknown system error" msgstr "Άγνωστο σφάλμα συστήματος" # #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: η επιλογή `%s' είναι ασαφής\n" # #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: η επιλογή `--%s' δεν επιτρέπει ορίσματα\n" # #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει ορίσματα\n" # #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: η επιλογή `-%s' απαιτεί ένα όρισμα\n" # #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n" # #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n" # #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: μη έγκυρη επιλογή -- %c\n" # #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: η επιλογή απαιτεί ένα όρισμα -- %c\n" # #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: η επιλογή `-W %s' είναι ασαφής\n" # #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει ορίσματα\n" # #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: η επιλογή `-%s' απαιτεί ένα όρισμα\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" # #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "μη έγκυρη τάξη χαρακτήρων `%s'" # #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "μη έγκυρη τάξη χαρακτήρων `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" # #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "η μνήμη εξαντλήθηκε" # #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "σφάλμα στην ανεύρεση μέσω κανονικής έκφρασης" # #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: μη έγκυρη κανονική έκφραση: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" # #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "σφάλμα στην ανεύρεση μέσω κανονικής έκφρασης" # #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "η μνήμη εξαντλήθηκε" # #~ msgid "invalid argument %s for %s" #~ msgstr "μη έγκυρο όρισμα %s για %s" # #~ msgid "ambiguous argument %s for %s" #~ msgstr "ασαφές όρισμα %s για %s" # #~ msgid "Valid arguments are:" #~ msgstr "Έγκυρα ορίσματα είναι:" # #~ msgid " [OPTION...]" #~ msgstr " [ΕΠΙΛΟΓΗ...]" # #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Δοκιμάστε `%s --help' για περισσότερη βοήθεια.\n" # #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Αναφέρατε σφάλματα στο <%s>.\n" # #, fuzzy #~ msgid "print program version" #~ msgstr "σφάλμα προγράμματος" # #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "πάρα πολλά ορίσματα" # #~ msgid "program error" #~ msgstr "σφάλμα προγράμματος" # #~ msgid "stack overflow" #~ msgstr "υπερχείλιση στοίβας" # #, fuzzy #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "cannot remove temporary file %s" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "cannot remove temporary directory %s" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #~ msgid "write error" #~ msgstr "σφάλμα εγγραφής" # #, fuzzy #~ msgid "preserving permissions for %s" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "αδυναμία μεταφοράς του `%s' στο `%s'" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "αδυναμία μεταφοράς του `%s' στο `%s'" # #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "σφάλμα ανάγνωσης %s" # #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "σφάλμα εγγραφής %s" # #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "σφάλμα ανάγνωσης %s" # #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "αποτυχία ανοίγματος" # #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #~ msgid "regular empty file" #~ msgstr "κανονικό κενό αρχείο" # #~ msgid "regular file" #~ msgstr "κανονικό αρχείο" # #~ msgid "directory" #~ msgstr "κατάλογος" # #~ msgid "block special file" #~ msgstr "ειδικό αρχείο μπλοκ" # #~ msgid "character special file" #~ msgstr "ειδικό αρχείο χαρακτήρων" # #~ msgid "fifo" #~ msgstr "φίφο" # #~ msgid "symbolic link" #~ msgstr "συμβολικός σύνδεσμος" # #~ msgid "socket" #~ msgstr "υποδοχέας" # #~ msgid "message queue" #~ msgstr "ουρά μηνυμάτων" # #~ msgid "semaphore" #~ msgstr "σημαφόρος" # #~ msgid "weird file" #~ msgstr "παράξενο αρχείο" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "αρχεία fifo δεν υποστηρίζονται" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "αρχεία fifo δεν υποστηρίζονται" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "αρχεία fifo δεν υποστηρίζονται" # #, fuzzy #~ msgid "System error" #~ msgstr "σφάλμα εγγραφής" # #, fuzzy #~ msgid "Unknown error" #~ msgstr "Άγνωστο σφάλμα συστήματος" # #, fuzzy #~ msgid "error while writing \"%s\" file" #~ msgstr "σφάλμα εγγραφής %s" # #, fuzzy #~ msgid "%s subprocess I/O error" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "cannot change permissions of %s" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" # #, fuzzy #~ msgid "cannot create directory %s" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "failed to return to initial working directory" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" # #, fuzzy #~ msgid "communication with %s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "write to %s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "read from %s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #~ msgid "`" #~ msgstr "`" # #~ msgid "'" #~ msgstr "'" # #~ msgid "^[yY]" #~ msgstr "^[yYνΝ]" # #~ msgid "^[nN]" #~ msgstr "^[nNοΟ]" # #, fuzzy #~ msgid "setting permissions for %s" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" # #, fuzzy #~ msgid "Bus error" #~ msgstr "σφάλμα εγγραφής" # #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "character out of range" #~ msgstr "%s: αριθμός γραμμής έξω από τα όρια" # #~ msgid "invalid user" #~ msgstr "μη έγκυρος χρήστης" # #~ msgid "invalid group" #~ msgstr "μη έγκυρη ομάδα" # #, fuzzy #~ msgid "invalid spec" #~ msgstr "μη έγκυρος χρήστης" # #~ msgid "Written by %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "Γραμμένο από τον/την %s.\n" # #, fuzzy #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Αναφέρατε σφάλματα στο <%s>.\n" # #, fuzzy #~ msgid "Report %s bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Αναφέρατε σφάλματα στο <%s>.\n" # #, fuzzy #~ msgid "%s subprocess" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "unknown stream" #~ msgstr "Άγνωστο σφάλμα συστήματος" # #, fuzzy #~ msgid "string comparison failed" #~ msgstr "αποτυχία εγγραφής" # #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Θέστε LC_ALL='C' για να παρακάμψετε το πρόβλημα." #, fuzzy #~ msgid "The strings compared were %s and %s." #~ msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'" # #, fuzzy #~ msgid "invalid %s%s argument `%s'" #~ msgstr "μη έγκυρο όρισμα %s για %s" # #, fuzzy #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "μη έγκυρο όρισμα %s για %s" # #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: μη αναγνωρίσιμη επιλογή -- %c\n" # #~ msgid "block size" #~ msgstr "μέγεθος μπλοκ" # #, fuzzy #~ msgid "%s exists but is not a directory" #~ msgstr "το `%s' υπάρχει ήδη άλλα δεν είναι κατάλογος" # #, fuzzy #~ msgid "cannot change owner and/or group of %s" #~ msgstr "δεν είναι δυνατό να παραληφθεί χρήστης και ομάδα" # #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "αδύνατη η αλλαγή στο κατάλογο %s" # #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "" #~ "αδύνατη η λήψη της ομάδας εισαγωγής στο σύστημα ενός αριθμητικού UID" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/pt_BR.po�������������������������������������������������������������������������0000644�0000000�0000000�00000023574�12116513224�012243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Traduoes para o portugus do Brasil das mensagens do "textutils" # Copyright (C) 1998 Free Software Foundation, Inc. # Cyro Mendes De Moraes Neto <neto@conectiva.com.br>, 1998. # Rodrigo Stulzer Lopes <rodrigo@conectiva.com.br>, 2001. # Juan Carlos Castro y Castro <jcastro@vialink.com.br>, 2003. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.0\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2003-06-27 19:20-0300\n" "Last-Translator: Juan Carlos Castro y Castro <jcastro@vialink.com.br>\n" "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Erro de sistema desconhecido" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: opo `%s' est ambgua\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opo `--%s' no permite um argumento\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opo `%c%s' no permite um argumento\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: opo `%s' requer um argumento\n" # , c-format #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opo desconhecida `-%s'\n" # , c-format #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opo desconhecida `%c%s'\n" # , c-format #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: opo invlida -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opo requer um argumento --%c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opo `-W %s' est ambgua\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opo `-W %s' no permite um argumento\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: opo `%s' requer um argumento\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" # , c-format #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: a expresso regular no vlida: %s" # , c-format #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "classe de caracteres invlida `%s'" # , c-format #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "classe de caracteres invlida `%s'" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" # , c-format #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: a expresso regular no vlida: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "memria esgotada" # , c-format #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: a expresso regular no vlida: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "erro na busca da expresso regular" # , c-format #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: a expresso regular no vlida: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "erro na busca da expresso regular" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memria esgotada" # , c-format #~ msgid "invalid argument %s for %s" #~ msgstr "argumento invlido %s para '%s'" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argumento ambguo %s para `%s'" #~ msgid "Valid arguments are:" #~ msgstr "Os argumentos vlidos so:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumentos obrigatrios para opes longas tambm o so para opes " #~ "curtas\n" # , c-format #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Uso: %s [OPO]...\n" # , c-format #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Tente `%s --help' para mais informao.\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Comunicar `bugs' para <%s>.\n" #~ msgid "NAME" #~ msgstr "NOME" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "muitos argumentos\n" #, fuzzy #~ msgid "program error" #~ msgstr "erro de leitura" #~ msgid "write error" #~ msgstr "erro de escrita" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "no foi possvel abrir %s para leitura" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "no foi possvel abrir %s para leitura" # , c-format #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "erro lendo %s" # , c-format #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "erro escrevendo %s" # , c-format #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "erro lendo %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "erro abrindo arquivo" # , c-format #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "%s: padro invlido" #~ msgid "regular empty file" #~ msgstr "arquivo comum vazio" #~ msgid "regular file" #~ msgstr "arquivo comum" #, fuzzy #~ msgid "directory" #~ msgstr "Diretrio: " #~ msgid "block special file" #~ msgstr "arquivo especial de bloco" #~ msgid "character special file" #~ msgstr "arquivo especial caracter" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "link simblico" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "fila de mensagens" #~ msgid "semaphore" #~ msgstr "semforo" #~ msgid "shared memory object" #~ msgstr "objeto de memria compartilhada" #, fuzzy #~ msgid "typed memory object" #~ msgstr "objeto de memria compartilhada" #~ msgid "weird file" #~ msgstr "arquivo estranho" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "arquivos \"fifo\" no suportados" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "arquivos \"fifo\" no suportados" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "arquivos \"fifo\" no suportados" #, fuzzy #~ msgid "System error" #~ msgstr "erro de escrita" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Erro de sistema desconhecido" # , c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opo invlida -- %c\n" #~ msgid "block size" #~ msgstr "tamanho do bloco" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe, mas no um diretrio" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "no pode substituir dono e/ou grupo de %s" # , c-format #~ msgid "cannot create directory %s" #~ msgstr "no possvel criar o diretrio %s" # , c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "impossvel mudar para diretrio %s" # , c-format #~ msgid "cannot change permissions of %s" #~ msgstr "no possvel mudar permisses de %s" # , c-format #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "no possvel criar o diretrio %s" # , c-format #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "falha ao preservar permisses para %s" # , c-format #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "impossvel criar link %s" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "funo iconv no utilizvel" #~ msgid "iconv function not available" #~ msgstr "funo iconv no disponvel" # , c-format #~ msgid "character out of range" #~ msgstr "caractere fora de faixa" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "impossvel converter U+%04X para o conjunto local de caracteres" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "impossvel converter U+%04X para o conjunto local de caracteres: %s" #~ msgid "invalid user" #~ msgstr "usurio invlido" #~ msgid "invalid group" #~ msgstr "grupo invlido" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "nao foi possivel obter um grupo e login de um UID numerico " #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Este programa um software livre, voc pode redistribu-lo e/ou modific-" #~ "lo\n" #~ "sobre os termos da licena pblica geral GNU (GPL - General Public " #~ "License)\n" #~ "publicada pela Free Software Foundation, verso 2 ou posteriores.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Escrito por %s.\n" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "Escrito por %s.\n" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Escrito por %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Escrito por %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Escrito por %s.\n" #, fuzzy #~ msgid "string comparison failed" #~ msgstr "falha no stat" #, fuzzy #~ msgid "The strings compared were %s and %s." #~ msgstr "no foi possvel criar o link %s" ������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/stamp-po�������������������������������������������������������������������������0000644�0000000�0000000�00000000012�12116513225�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������timestamp ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/en@boldquot.header���������������������������������������������������������������0000644�0000000�0000000�00000002471�11744500575�014327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/boldquot.sed���������������������������������������������������������������������0000644�0000000�0000000�00000000331�11744500575�013220� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/sv.po����������������������������������������������������������������������������0000644�0000000�0000000�00000046336�12116513224�011666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Swedish messages for gnulib. # Copyright © 1997, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Peter Antman <peter.antman@abc.se>, 1997. # Thomas Olsson <cid95tho@lustudat.student.lu.se>, 1997. # Daniel Resare <daniel@resare.com>, 1999, 2000. # Göran Uddeborg <goeran@uddeborg.se>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011. # # $Revision: 1.10 $ # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-22 19:16+0200\n" "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\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" #: lib/error.c:188 msgid "Unknown system error" msgstr "Okänt systemfel" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: flaggan ”%s” är tvetydig: möjligheter:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: flaggan ”--%s” tar inget argument\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: flaggan ”%c%s” tar inget argument\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: flaggan ”--%s” kräver ett argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: okänd flagga \"--%s\"\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: okänd flagga \"%c%s\"\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ogiltig flagga -- \"%c\"\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: flaggan kräver ett argument -- \"%c\"\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: flaggan \"-W %s\" är tvetydig\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: flaggan \"-W %s\" tar inget argument\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: flaggan ”-W %s” kräver ett argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Lyckades" #: lib/regcomp.c:134 msgid "No match" msgstr "Ingen träff" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Felaktigt reguljärt uttryck" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Ogiltigt sorteringstecken" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Ogiltigt teckenklassnamn" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Avslutande bakstreck" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Ogiltig bakåtreferens" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Ensam [ eller [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Ensam ( eller \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Ensam \\\\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Ogiltigt innehåll i \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Ogiltigt intervallslut" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Minnet slut" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Felaktigt föregående reguljärt uttryck" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Förtida slut av reguljärt uttryck" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "För stort reguljärt uttryck" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Ensam ) eller \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Inget föregående reguljärt uttryck" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "minnet slut" #~ msgid "invalid argument %s for %s" #~ msgstr "felaktigt argument %s till %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "tvetydigt argument %s till %s" #~ msgid "Valid arguments are:" #~ msgstr "Giltiga argument är:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: värdet på %s är mindre än eller lika med %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT parametern kräver ett värde" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parametern måste vara positiv" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Okänd ARGP_HELP_FMT-parameter" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Skräp i ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Obligatoriska eller valfria argument till långa flaggor är obligatoriska " #~ "eller valfria även för motsvarande korta flaggor." #~ msgid "Usage:" #~ msgstr "Användning:" #~ msgid " or: " #~ msgstr " eller: " #~ msgid " [OPTION...]" #~ msgstr " [FLAGGA...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Försök med ”%s --help” eller ”%s --usage” för mer information.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Rapportera fel till %s.\n" #~ "Skicka synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n" #~ msgid "give this help list" #~ msgstr "ge denna hjälplista" #~ msgid "give a short usage message" #~ msgstr "ge ett kort användningsmeddelande" #~ msgid "NAME" #~ msgstr "NAMN" #~ msgid "set the program name" #~ msgstr "ange programnamnet" #~ msgid "SECS" #~ msgstr "S" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "häng i S sekunder (3600 som standard)" #~ msgid "print program version" #~ msgstr "skriv ut programversion" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMFEL) Ingen version känd!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: För många argument\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMFEL) Flaggan borde ha känts igen!?" #~ msgid "program error" #~ msgstr "programfel" #~ msgid "stack overflow" #~ msgstr "stackspill" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "kan inte hitta en temporärkatalog, försök sätta $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kan inte skapa en temporärkatalog med användning av mallen ”%s”" #~ msgid "cannot remove temporary file %s" #~ msgstr "kan inte ta bort temporärfil %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "kan inte ta bort temporärkatalog %s" #~ msgid "error closing file" #~ msgstr "fel när fil stängdes" #~ msgid "write error" #~ msgstr "skrivfel" #~ msgid "preserving permissions for %s" #~ msgstr "bevarar rättigheter på %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "fel när ”%s” öppnades för läsning" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "det går inte att öppna säkerthetskopiefil ”%s” för skrivning" #~ msgid "error reading \"%s\"" #~ msgstr "fel vid läsning av ”%s”" #~ msgid "error writing \"%s\"" #~ msgstr "fel vid skrivning av ”%s”" #~ msgid "error after reading \"%s\"" #~ msgstr "fel efter läsning av ”%s”" #~ msgid "fdopen() failed" #~ msgstr "fdopen() misslyckades" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C#-kompilator hittades inte, försök installera pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "virtuell C#-maskinen hittades inte, försök installera pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s-underprocess misslyckades" #~ msgid "regular empty file" #~ msgstr "tom normal fil" #~ msgid "regular file" #~ msgstr "normal fil" #~ msgid "directory" #~ msgstr "katalog" #~ msgid "block special file" #~ msgstr "blockspecialfil" #~ msgid "character special file" #~ msgstr "teckenspecialfil" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "symbolisk länk" #~ msgid "socket" #~ msgstr "uttag (socket)" #~ msgid "message queue" #~ msgstr "meddelandekö" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "objekt av delat minne" #~ msgid "typed memory object" #~ msgstr "objekt av typat minne" #~ msgid "weird file" #~ msgstr "konstig fil" #~ msgid "Address family for hostname not supported" #~ msgstr "Adressfamiljen för värdnamnet stöds inte" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tillfälligt fel i namnuppslagning" #~ msgid "Bad value for ai_flags" #~ msgstr "Felaktigt värde för ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Oreparabelt fel i namnuppslagning" #~ msgid "ai_family not supported" #~ msgstr "ai_family stöds inte" #~ msgid "Memory allocation failure" #~ msgstr "Minnesallokeringsfel" #~ msgid "No address associated with hostname" #~ msgstr "Ingen adress associerad med värdnamnet" #~ msgid "Name or service not known" #~ msgstr "Namn eller tjänst inte känd" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname stöds inte för ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype stöds inte" #~ msgid "System error" #~ msgstr "Systemfel" #~ msgid "Argument buffer too small" #~ msgstr "Argumentbufferten för liten" #~ msgid "Processing request in progress" #~ msgstr "Bearbetar pågående begäran" #~ msgid "Request canceled" #~ msgstr "Begäran annulerad" #~ msgid "Request not canceled" #~ msgstr "Begäran inte annulerad" #~ msgid "All requests done" #~ msgstr "Alla begäran utförda" #~ msgid "Interrupted by a signal" #~ msgstr "Avbruten av en signal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametersträng inte korrekt kodad" #~ msgid "Unknown error" #~ msgstr "Okänt fel" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ogiltigt source_version-argument till compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ogiltigt target_version-argument till compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "det gick inte att skapa \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "fel vid skrivning av filen ”%s”" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Javakompilator hittades inte, försök installera gcj eller sätta $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuell Javamaskin hittades inte, försök installera gij eller sätta $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "%s-underprocess I/O-fel" #~ msgid "cannot change permissions of %s" #~ msgstr "kan inte ändra rättigheter på %s" #~ msgid "cannot create directory %s" #~ msgstr "kan inte skapa katalogen %s" #~ msgid "unable to record current working directory" #~ msgstr "kan inte notera aktuell arbetskatalog" #~ msgid "failed to return to initial working directory" #~ msgstr "kunde inte återvända till den ursprungliga arbetskatalogen" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Misslyckades att öppna /dev/zero för läsning" #~ msgid "creation of reading thread failed" #~ msgstr "att skapa lästråd misslyckades" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "" #~ "det gick inte att sätta upp icke blockerande I/O till %s-underprocess" #~ msgid "communication with %s subprocess failed" #~ msgstr "kommunikation med %s-underprocess misslyckades" #~ msgid "write to %s subprocess failed" #~ msgstr "skrivning till %s-underprocess misslyckades" #~ msgid "read from %s subprocess failed" #~ msgstr "läsning från %s-underprocess misslyckades" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "underprocess %s avslutad med slutstatus %d" #~ msgid "creation of threads failed" #~ msgstr "att skapa trådar misslyckades" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s-underprocess avslutad med slutstatus %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "”" #~ msgid "'" #~ msgstr "”" #~ msgid "^[yY]" #~ msgstr "^[yYjJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "ändrar rättigheter på %s" #~ msgid "Hangup" #~ msgstr "Avringd" #~ msgid "Interrupt" #~ msgstr "Avbruten" #~ msgid "Quit" #~ msgstr "Lämnad" #~ msgid "Illegal instruction" #~ msgstr "Otillåten instruktion" #~ msgid "Trace/breakpoint trap" #~ msgstr "Spårnings-/brytpunktsfälla" #~ msgid "Aborted" #~ msgstr "Avbruten (abort)" #~ msgid "Floating point exception" #~ msgstr "Flyttalsundantag" #~ msgid "Killed" #~ msgstr "Dödad" #~ msgid "Bus error" #~ msgstr "Bussfel" #~ msgid "Segmentation fault" #~ msgstr "Segmenteringsfel" #~ msgid "Broken pipe" #~ msgstr "Brutet rör" #~ msgid "Alarm clock" #~ msgstr "Alarmklocka" #~ msgid "Terminated" #~ msgstr "Avslutad" #~ msgid "Urgent I/O condition" #~ msgstr "Brådskande I/O-situation" #~ msgid "Stopped (signal)" #~ msgstr "Stoppad (signal)" #~ msgid "Stopped" #~ msgstr "Stoppad" #~ msgid "Continued" #~ msgstr "Återupptagen" #~ msgid "Child exited" #~ msgstr "Barn avslutade" #~ msgid "Stopped (tty input)" #~ msgstr "Stoppad (terminalläsning)" #~ msgid "Stopped (tty output)" #~ msgstr "Stoppad (terminalskrivning)" #~ msgid "I/O possible" #~ msgstr "I/O möjligt" #~ msgid "CPU time limit exceeded" #~ msgstr "Begränsning av CPU-tid överskriden" #~ msgid "File size limit exceeded" #~ msgstr "Begränsning av filstorlek överskriden" #~ msgid "Virtual timer expired" #~ msgstr "Alarmklocka - virtuell tid" #~ msgid "Profiling timer expired" #~ msgstr "Profileringsklocka" #~ msgid "Window changed" #~ msgstr "Ändrat fönster" #~ msgid "User defined signal 1" #~ msgstr "Användarsignal 1" #~ msgid "User defined signal 2" #~ msgstr "Användarsignal 2" #~ msgid "EMT trap" #~ msgstr "Emulatorfälla" #~ msgid "Bad system call" #~ msgstr "Felaktigt systemanrop" #~ msgid "Stack fault" #~ msgstr "Stackfel" #~ msgid "Information request" #~ msgstr "Informationsbegäran" #~ msgid "Power failure" #~ msgstr "Strömavbrott" #~ msgid "Resource lost" #~ msgstr "Förlorad resurs" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "fel vid skrivning till ett stängt rör eller uttag" #~ msgid "cannot create pipe" #~ msgstr "kan inte skapa rör" #~ msgid "Real-time signal %d" #~ msgstr "Realtidsignal %d" #~ msgid "Unknown signal %d" #~ msgstr "Okänd signal %d" #~ msgid "iconv function not usable" #~ msgstr "iconv-funktion inte användbar" #~ msgid "iconv function not available" #~ msgstr "iconv-funktion inte tillgänglig" #~ msgid "character out of range" #~ msgstr "tecken utanför intervall" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan inte konvertera U+%04X till lokal teckenuppsättning" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan inte konvertera U+%04X till lokal teckenuppsättning: %s" #~ msgid "invalid user" #~ msgstr "ogiltig användare" #~ msgid "invalid group" #~ msgstr "ogiltig grupp" #~ msgid "invalid spec" #~ msgstr "ogiltig specifikation" #~ msgid "unable to display error message" #~ msgstr "kan inte visa felmeddelande" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Paketerat av %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Paketerat av %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/" #~ "gpl.html>.\n" #~ "Detta är fri programvara: du får lov att ändra och vidaredistribuera " #~ "den.\n" #~ "Det finns INGEN GARANTI, så långt lagen tillåter.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Skrivet av %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Skrivet av %s och %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Skrivet av %s, %s och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s\n" #~ "och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s,\n" #~ "%s och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s,\n" #~ "%s, %s och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s,\n" #~ "%s, %s, %s och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s och %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Skrivet av %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s med flera.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Rapportera fel till: %s\n" #~ "Skicka synpunkter på översättningen till: tp-sv@listor.tp-sv.se\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Rapportera %s-fel till: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "%s hemsida: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s hemsida: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Allmän hjälp med att använda GNU-program: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle misslyckades" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "kan inte återställa fb %d: dup2 misslyckades" #~ msgid "%s subprocess" #~ msgstr "%s-underprocess" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-underprocess fick ödesdiger signal %d" #~ msgid "stdin" #~ msgstr "standard in" #~ msgid "stdout" #~ msgstr "standard ut" #~ msgid "stderr" #~ msgstr "standard fel" #~ msgid "unknown stream" #~ msgstr "okänd ström" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "det gick inte att öppna om %s i läget %s" #~ msgid "string comparison failed" #~ msgstr "strängjämförelse misslyckades" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Sätt LC_ALL='C' för att gå runt problemet." #~ msgid "The strings compared were %s and %s." #~ msgstr "De jämförda strängarna var %s och %s." #~ msgid "cannot perform formatted output" #~ msgstr "kan inte utföra formaterad utmatning" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "felaktigt %s%s-argument \"%s\"" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "felaktigt suffix i %s%s-argument \"%s\"" #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s argument \"%s\" är för stort" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/ms.po����������������������������������������������������������������������������0000644�0000000�0000000�00000021730�12116513224�011644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Terjemahan coreutils untuk Bahasa Melayu. # Copyright (C) 2001 Free Software Foundation, Inc. # Hasbullah Bin Pit <sebol@ikhlas.com>, 2003. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.0.90\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2003-08-10 16:00+0800\n" "Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Ralat sistem yang tidak diketahui" #: lib/getopt.c:547 lib/getopt.c:576 #, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: opsyen `%s' adalah ambiguous\n" #: lib/getopt.c:624 lib/getopt.c:628 #, fuzzy, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opsyen `--%s' tidak mengizinkan hujah\n" #: lib/getopt.c:637 lib/getopt.c:642 #, fuzzy, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opsyen `%c%s' tidak mengizinkan hujah\n" #: lib/getopt.c:685 lib/getopt.c:704 #, fuzzy, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: opsyen `%s' memerlukan hujah\n" #: lib/getopt.c:742 lib/getopt.c:745 #, fuzzy, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opensyen tidak dikenali `--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, fuzzy, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opensyen tidak dikenali `%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, fuzzy, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: opsyen tidak sah -- %c\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, fuzzy, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opsyen memerlukan hujah -- %c\n" #: lib/getopt.c:934 lib/getopt.c:950 #, fuzzy, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opsyen `-W %s' adalah ambiguous\n" #: lib/getopt.c:974 lib/getopt.c:992 #, fuzzy, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opsyen `-W %s' tidak mengizinkan hujan\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, fuzzy, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: opsyen `%s' memerlukan hujah\n" #: lib/regcomp.c:131 msgid "Success" msgstr "" #: lib/regcomp.c:134 msgid "No match" msgstr "" #: lib/regcomp.c:137 #, fuzzy msgid "Invalid regular expression" msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #: lib/regcomp.c:140 #, fuzzy msgid "Invalid collation character" msgstr "aksara tidak sah pada %s pada rentetan mod %s" #: lib/regcomp.c:143 #, fuzzy msgid "Invalid character class name" msgstr "aksara tidak sah pada %s pada rentetan mod %s" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:164 #, fuzzy msgid "Invalid range end" msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #: lib/regcomp.c:167 #, fuzzy msgid "Memory exhausted" msgstr "memori keletihan" #: lib/regcomp.c:170 #, fuzzy msgid "Invalid preceding regular expression" msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #: lib/regcomp.c:173 #, fuzzy msgid "Premature end of regular expression" msgstr "ralat pada carian ungkapan biasa (regexp)" #: lib/regcomp.c:176 #, fuzzy msgid "Regular expression too big" msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:704 #, fuzzy msgid "No previous regular expression" msgstr "ralat pada carian ungkapan biasa (regexp)" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memori keletihan" #~ msgid "invalid argument %s for %s" #~ msgstr "hujah tidak sah %s bagi %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "hujah ambiguous %s bagi %s" #~ msgid "Valid arguments are:" #~ msgstr "Hujah sah adalah:" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Hujah mandatori kepada opsyen panjang andalah mandatori bagi opsyen " #~ "pendek juga.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Pengunaan: %s [OPSYEN]...\n" #, fuzzy #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Cuba `%s --help' untuk maklumat lanjut .\n" #, fuzzy #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Lapor pepijat ke <%s>.\n" #~ msgid "NAME" #~ msgstr "NAMA" #, fuzzy #~ msgid "%s: Too many arguments\n" #~ msgstr "terlalu banyak hujah" #, fuzzy #~ msgid "program error" #~ msgstr "ralat membaca" #~ msgid "write error" #~ msgstr "ralat menulis" #, fuzzy #~ msgid "error while opening \"%s\" for reading" #~ msgstr "tak dapat buka %s untuk dibaca" #, fuzzy #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "tak dapat buka %s untuk dibaca" #, fuzzy #~ msgid "error reading \"%s\"" #~ msgstr "membaca %s" #, fuzzy #~ msgid "error writing \"%s\"" #~ msgstr "menulis %s" #, fuzzy #~ msgid "error after reading \"%s\"" #~ msgstr "membaca %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "pembukaan gagal" #, fuzzy #~ msgid "%s subprocess failed" #~ msgstr "fail istimewa blok" #~ msgid "regular empty file" #~ msgstr "fail kosong biasa" #~ msgid "regular file" #~ msgstr "fail biasa" #~ msgid "directory" #~ msgstr "direktori" #~ msgid "block special file" #~ msgstr "fail istimewa blok" #~ msgid "character special file" #~ msgstr "fail istimewa aksara" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "pautan simbolik" #~ msgid "socket" #~ msgstr "soket" #~ msgid "message queue" #~ msgstr "giliran mesej" #~ msgid "shared memory object" #~ msgstr "objek memori terkongsi" #, fuzzy #~ msgid "typed memory object" #~ msgstr "objek memori terkongsi" #~ msgid "weird file" #~ msgstr "fail pelik" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fail fifo tidak disokong" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fail fifo tidak disokong" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fail fifo tidak disokong" #, fuzzy #~ msgid "System error" #~ msgstr "ralat menulis" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Ralat sistem yang tidak diketahui" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opsyen tidak dibenarkan -- %c\n" #~ msgid "block size" #~ msgstr "saiz blok" #~ msgid "%s exists but is not a directory" #~ msgstr "%s wujud tapi ianya bukan direktori" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "tak dapat menukar hakmilik dan/atau kumpulan %s" #~ msgid "cannot create directory %s" #~ msgstr "tak dapat mencipta direktori %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "tak dapat chdir ke direktori %s" #~ msgid "cannot change permissions of %s" #~ msgstr "tak dapat menukar keizinan %s" #, fuzzy #~ msgid "unable to record current working directory" #~ msgstr "gagal untuk kembali ke direktori kerja pemulaan" #~ msgid "failed to return to initial working directory" #~ msgstr "gagal untuk kembali ke direktori kerja pemulaan" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "gagal mengekalkan keizinan bagi %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "tak boleh mencipta pautan %s" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "`" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[tT]" #~ msgid "iconv function not usable" #~ msgstr "fungsi iconv tak boleh digunakan" #~ msgid "iconv function not available" #~ msgstr "fungsi iconv tidak ada" #~ msgid "character out of range" #~ msgstr "aksara di luar julat" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "tak dapat menukar U+%04X ke set aksara lokal" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "tak dapat menukar U+%04X ke set aksara lokal: %s" #~ msgid "invalid user" #~ msgstr "pengguna tidak sah" #~ msgid "invalid group" #~ msgstr "kumpulan tidak sah" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "tak boleh mendapatkan kumpulan logmasuk untuk UID numerik" #~ msgid "Written by %s.\n" #~ msgstr "Ditulis oleh %s.\n" #, fuzzy #~ msgid "Written by %s and %s.\n" #~ msgstr "Ditulis oleh %s.\n" #, fuzzy #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Ditulis oleh %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "Ditulis oleh %s.\n" #, fuzzy #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "Ditulis oleh %s.\n" #~ msgid "string comparison failed" #~ msgstr "perbandingan rentetan gagal" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Tetapkan LC_ALL='C' untuk mengatasi masalah." #~ msgid "The strings compared were %s and %s." #~ msgstr "Rentetan dibandingkan adalah %s dan %s." ����������������������������������������wdiff-1.2.1/lib/po/pl.po����������������������������������������������������������������������������0000644�0000000�0000000�00000047704�12116513224�011651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Polish messages for gnulib # Copyright (C) 2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Jakub Bogusz <qboosh@pld-linux.org>, 2007-2011. # based on translation for GNU Mailutils by: # Sergey Poznyakoff <gray@gnu.org>, 2003,2004,2005. # corrections: Wojciech Polak <polak@gnu.org>, 2003 # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-22 12:41+0200\n" "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Nieznany błąd systemowy" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opcja '--%s' nie może mieć argumentów\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opcja '%c%s' nie może mieć argumentów\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: opcja '--%s' musi mieć argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: nieznana opcja '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: nieznana opcja '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: błędna opcja -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opcja musi mieć argument -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opcja '-W %s' jest niejednoznaczna\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opcja '-W %s' nie może mieć argumentów\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: opcja '-W %s' musi mieć argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Sukces" #: lib/regcomp.c:134 msgid "No match" msgstr "Nic nie pasuje" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Błędne wyrażenie regularne" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Błędny znak sortowany" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Błędna nazwa klasy znaków" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Kończący znak `\\'" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Błędne odniesienie wstecz" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Niesparowane [ lub [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Niesparowane ( lub \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Niesparowane \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Błędna zawartość \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Błędny koniec zakresu" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Pamięć wyczerpana" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Błędne poprzedzające wyrażenie regularne" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Przedwczesny koniec wyrażenia regularnego" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Wyrażenie regularne zbyt duże" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Niesparowane ) lub \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Brak poprzedniego wyrażenia regularnego" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "pamięć wyczerpana" #~ msgid "invalid argument %s for %s" #~ msgstr "błędny argument %s opcji %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "niejednoznaczny argument %s opcji %s" #~ msgid "Valid arguments are:" #~ msgstr "Prawidłowe argumenty to:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: wartość %s jest mniejsza lub równa %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT wymaga podania wartości" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT musi być dodatni" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Nieznany parametr ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Błędne dane w ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumenty obowiązkowe lub opcjonalne dla długich opcji są również " #~ "obowiązkowe lub opcjonalne dla odpowiednich krótkich opcji." #~ msgid "Usage:" #~ msgstr "Składnia:" #~ msgid " or: " #~ msgstr " lub: " #~ msgid " [OPTION...]" #~ msgstr " [OPCJA...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Polecenie `%s --help' lub `%s --usage' pozwoli uzyskać więcej " #~ "informacji.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Prosimy zgłaszać błędy na adres %s.\n" #~ msgid "give this help list" #~ msgstr "wyświetlenie tego tekstu pomocy" #~ msgid "give a short usage message" #~ msgstr "wyświetlenie krótkiej informacji o składni polecenia" #~ msgid "NAME" #~ msgstr "NAZWA" #~ msgid "set the program name" #~ msgstr "określenie nazwy programu" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "zatrzymanie na SEK sekund (domyślnie 3600)" #~ msgid "print program version" #~ msgstr "wyświetlenie wersji programu" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(BŁĄD PROGRAMU) Nieznana wersja!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Za dużo argumentów\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(BŁĄD PROGRAMU) Opcja powinna zostać rozpoznana!?" #~ msgid "program error" #~ msgstr "błąd programu" #~ msgid "stack overflow" #~ msgstr "przepełnienie stosu" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "nie można odnaleźć katalogu tymczasowego, można spróbować ustawić $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "nie można utworzyć katalogu typczasowego z użyciem szablonu \"%s\"" #~ msgid "cannot remove temporary file %s" #~ msgstr "nie można usunąć pliku tymczasowego %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "nie można usunąć katalogu tymczasowego %s" #~ msgid "error closing file" #~ msgstr "błąd podczas zamykania pliku" #~ msgid "write error" #~ msgstr "błąd zapisu" #~ msgid "preserving permissions for %s" #~ msgstr "zachowywanie uprawnień do %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "błąd podczas otwierania \"%s\" do odczytu" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "nie można otworzyć pliku zapasowego \"%s\" do zapisu" #~ msgid "error reading \"%s\"" #~ msgstr "błąd odczytu \"%s\"" #~ msgid "error writing \"%s\"" #~ msgstr "błąd zapisu \"%s\"" #~ msgid "error after reading \"%s\"" #~ msgstr "błąd po odczycie \"%s\"" #~ msgid "fdopen() failed" #~ msgstr "fdopen() nie powiodło się" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Nie znaleziono kompilatora C#, proszę spróbować zainstalować pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "" #~ "Nie znaleziono maszyny wirtualnej C#, proszę spróbować zainstalować pnet" #~ msgid "%s subprocess failed" #~ msgstr "podproces %s zawiódł" #~ msgid "regular empty file" #~ msgstr "pusty zwykły plik" #~ msgid "regular file" #~ msgstr "zwykły plik" #~ msgid "directory" #~ msgstr "katalog" #~ msgid "block special file" #~ msgstr "blokowy plik specjalny" #~ msgid "character special file" #~ msgstr "znakowy plik specjalny" #~ msgid "fifo" #~ msgstr "potok" #~ msgid "symbolic link" #~ msgstr "dowiązanie symboliczne" #~ msgid "socket" #~ msgstr "gniazdo" #~ msgid "message queue" #~ msgstr "kolejka komunikatów" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "obiekt w pamięci współdzielonej" #~ msgid "typed memory object" #~ msgstr "obiekt z typem w pamięci" #~ msgid "weird file" #~ msgstr "dziwny plik" #~ msgid "Address family for hostname not supported" #~ msgstr "Rodzina adresów dla podanej nazwy hosta nie jest obsługiwana" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tymczasowy błąd rozwiązywania nazw" #~ msgid "Bad value for ai_flags" #~ msgstr "Błędna wartość ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nienaprawialny błąd w rozwiązywaniu nazw" #~ msgid "ai_family not supported" #~ msgstr "ai_family zawiera nie obsługiwaną rodzinę protokołów" #~ msgid "Memory allocation failure" #~ msgstr "Błąd przydzielania pamięci" #~ msgid "No address associated with hostname" #~ msgstr "Brak adresu związanego z nazwą hosta" #~ msgid "Name or service not known" #~ msgstr "Nieznana nazwa lub usługa" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Usługa nie obsługiwana dla danego ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype zawiera nie obsługiwany typ gniazda" #~ msgid "System error" #~ msgstr "Błąd systemowy" #~ msgid "Argument buffer too small" #~ msgstr "Bufor argumentu zbyt mały" #~ msgid "Processing request in progress" #~ msgstr "Przetwarzanie żądania jest w toku" #~ msgid "Request canceled" #~ msgstr "Żądanie anulowane" #~ msgid "Request not canceled" #~ msgstr "Żądanie nie anulowane" #~ msgid "All requests done" #~ msgstr "Wszystkie żądania wykonane" #~ msgid "Interrupted by a signal" #~ msgstr "Przerwane przez sygnał" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Łańcuch parametru niepoprawnie zakodowany" #~ msgid "Unknown error" #~ msgstr "Nieznany błąd" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "błędny argument source_version dla compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "błędny argument target_version dla compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "nie udało się utworzyć \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "błąd podczas zapisu pliku \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Nie znaleziono kompilatora Javy, proszę spróbować zainstalować gcj lub " #~ "ustawić $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Nie znaleziono maszyny wirtualnej Javy, proszę spróbować zainstalować gij " #~ "lub ustawić $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "błąd we/wy podprocesu %s" #~ msgid "cannot change permissions of %s" #~ msgstr "nie można zmienić uprawnień do %s" #~ msgid "cannot create directory %s" #~ msgstr "nie można utworzyć katalogu %s" #~ msgid "unable to record current working directory" #~ msgstr "nie udało się zapisać bieżącego katalogu roboczego" #~ msgid "failed to return to initial working directory" #~ msgstr "nie udało się wrócić do początkowego katalogu roboczego" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Nie udało się otworzyć /dev/zero do odczytu" #~ msgid "creation of reading thread failed" #~ msgstr "tworzenie wątku czytającego nie powiodło sie" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "nie można ustawić nieblokującego we/wy dla podprocesu %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikacja z podprocesem %s nie powiodła się" #~ msgid "write to %s subprocess failed" #~ msgstr "zapis do podprocesu %s nie powiódł się" #~ msgid "read from %s subprocess failed" #~ msgstr "odczyt z podprocesu %s nie powiódł się" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "podproces %s zakończył się z kodem wyjścia %d" #~ msgid "creation of threads failed" #~ msgstr "tworzenie wątków nie powiodło się" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "podproces %s zakończył się kodem wyjścia %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "^[yY]" #~ msgstr "^[yYtT]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "ustawianie uprawnień %s" #~ msgid "Hangup" #~ msgstr "Rozłączenie" #~ msgid "Interrupt" #~ msgstr "Przerwanie" #~ msgid "Quit" #~ msgstr "Wyjście" #~ msgid "Illegal instruction" #~ msgstr "Niedozwolona instrukcja" #~ msgid "Trace/breakpoint trap" #~ msgstr "Pułapka debuggera/breakpoint" #~ msgid "Aborted" #~ msgstr "Przerwano" #~ msgid "Floating point exception" #~ msgstr "Błąd w obliczeniach zmiennoprzecinkowych" #~ msgid "Killed" #~ msgstr "Unicestwiono" #~ msgid "Bus error" #~ msgstr "Błąd szyny" #~ msgid "Segmentation fault" #~ msgstr "Naruszenie ochrony pamięci" #~ msgid "Broken pipe" #~ msgstr "Przerwany potok" #~ msgid "Alarm clock" #~ msgstr "Budzik" #~ msgid "Terminated" #~ msgstr "Zakończono" #~ msgid "Urgent I/O condition" #~ msgstr "Nagły stan we/wy" #~ msgid "Stopped (signal)" #~ msgstr "Zatrzymano (sygnał)" #~ msgid "Stopped" #~ msgstr "Zatrzymano" #~ msgid "Continued" #~ msgstr "Kontynuacja" #~ msgid "Child exited" #~ msgstr "Zakończenie procesu potomnego" #~ msgid "Stopped (tty input)" #~ msgstr "Zatrzymano (wejście z tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Zatrzymano (wyjście na tty)" #~ msgid "I/O possible" #~ msgstr "Możliwa operacja we/wy" #~ msgid "CPU time limit exceeded" #~ msgstr "Przekroczony limit czasu procesora" #~ msgid "File size limit exceeded" #~ msgstr "Przekroczony limit rozmiaru pliku" #~ msgid "Virtual timer expired" #~ msgstr "Upłynął czas stopera wirtualnego" #~ msgid "Profiling timer expired" #~ msgstr "Upłynął czas stopera profilującego" #~ msgid "Window changed" #~ msgstr "Okno zmienione" #~ msgid "User defined signal 1" #~ msgstr "Sygnał użytkownika 1" #~ msgid "User defined signal 2" #~ msgstr "Sygnał użytkownika 2" #~ msgid "EMT trap" #~ msgstr "Pułapka EMT" #~ msgid "Bad system call" #~ msgstr "Błędne wywołanie systemowe" #~ msgid "Stack fault" #~ msgstr "Błąd stosu" #~ msgid "Information request" #~ msgstr "Żądanie informacji" #~ msgid "Power failure" #~ msgstr "Awaria zasilania" #~ msgid "Resource lost" #~ msgstr "Utrata zasobów" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "błąd zapisu do zamkniętego potoku lub gniazda" #~ msgid "cannot create pipe" #~ msgstr "nie można utworzyć potoku" #~ msgid "Real-time signal %d" #~ msgstr "Sygnał czasu rzeczywistego %d" #~ msgid "Unknown signal %d" #~ msgstr "Nieznany sygnał %d" #~ msgid "iconv function not usable" #~ msgstr "nie można użyć funkcji iconv" #~ msgid "iconv function not available" #~ msgstr "funkcja iconv nie jest dostępna" #~ msgid "character out of range" #~ msgstr "znak spoza zakresu" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nie można przekształcić U+%04X do lokalnego zestawu znaków" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "nie można przekształcić U+%04X do lokalnego zestawu znaków: %s" #~ msgid "invalid user" #~ msgstr "błędny użytkownik" #~ msgid "invalid group" #~ msgstr "błędna grupa" #~ msgid "invalid spec" #~ msgstr "błędna specyfikacja" #~ msgid "unable to display error message" #~ msgstr "nie można wyświetlić komunikatu błędu" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Pakietujący: %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Pakietujący: %s\n" #~ msgid "(C)" #~ msgstr "(C)" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n" #~ "<http://gnu.org/licenses/gpl.html>\n" #~ "To jest oprogramowanie wolnodostępne: można je modyfikować i " #~ "rozpowszechniać.\n" #~ "Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n" #~ msgid "Written by %s.\n" #~ msgstr "Autor: %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Autorzy: %s i %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Autorzy: %s, %s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s\n" #~ "i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s,\n" #~ "%s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s,\n" #~ "%s, %s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s,\n" #~ "%s, %s, %s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s i %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Autorzy: %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s i inni.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Prosimy zgłaszać błędy na adres <%s>.\n" #~ "Błędy w tłumaczeniu prosimy zgłaszać na adres <translation-team-pl@lists." #~ "sourceforge.net>.\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>.\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Strona domowa pakietu %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Strona domowa pakietu %s: <http://www.gnu.org/software/%s/>.\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Ogólna pomoc przy używaniu oprogramowania GNU: <http://www.gnu.org/" #~ "gethelp/>.\n" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle nie powiodło się" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "nie można odtworzyć fd %d: dup2 nie powiodło się" #~ msgid "%s subprocess" #~ msgstr "podproces %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "podproces %s dostał krytyczny sygnał %d" #~ msgid "stdin" #~ msgstr "standardowego wejścia" #~ msgid "stdout" #~ msgstr "standardowego wyjścia" #~ msgid "stderr" #~ msgstr "standardowego wyjścia diagnostycznego" #~ msgid "unknown stream" #~ msgstr "nieznanego strumienia" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "nie udało się ponownie otworzyć %s w trybie %s" #~ msgid "string comparison failed" #~ msgstr "nie udało się porównanie łańcuchów znaków" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Ustaw LC_ALL='C' żeby obejść problem" #~ msgid "The strings compared were %s and %s." #~ msgstr "Porównywane łańcuchy znaków do %s i %s." #~ msgid "cannot perform formatted output" #~ msgstr "nie można sformatować wyjścia" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "błędny argument %s%s opcji `%s'" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "błędny przyrostek argumentu %s%s opcji `%s'" #~ msgid "%s%s argument `%s' too large" #~ msgstr "argument %s%s `%s' zbyt duży" ������������������������������������������������������������wdiff-1.2.1/lib/po/fr.po����������������������������������������������������������������������������0000644�0000000�0000000�00000052521�12116513224�011636� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages français pour GNU concernant gnulib. # Copyright © 1996-, 2008, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-. # Nicolas Provost <nprovost@quadriv.com>, 2008. # David Prévot <david@tilapin.org>, 2011. msgid "" msgstr "" "Project-Id-Version: gnulib-3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-12-07 20:41-0400\n" "Last-Translator: David Prévot <david@tilapin.org>\n" "Language-Team: French <traduc@traduc.org>\n" "Language: fr\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-Generator: Lokalize 1.2\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Erreur système inconnue" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s : l'option « %s » est ambiguë, possibilités :" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s : l'option « --%s » ne prend pas d'argument\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s : l'option « %c%s » ne prend pas d'argument\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s : l'option « --%s » nécessite un argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s : option « --%s » non reconnue\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s : option « %c%s » non reconnue\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s : option non valable -- « %c »\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s : l'option nécessite un argument -- « %c »\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s : l'option « -W %s » est ambiguë\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s : l'option « -W %s » ne prend pas d'argument\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s : l'option « -W %s » nécessite un argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Succès" #: lib/regcomp.c:134 msgid "No match" msgstr "Pas de correspondance" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Expression rationnelle non valable" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Caractère d'assemblage non valable" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Nom de classe de caractères non valable" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Barre oblique inverse en fin de ligne" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Référence antérieure non valable" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ ou [^ non appairé" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( ou \\( non appairée" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ non appairée" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Le contenu de \\{\\} n'est pas valable" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Borne finale de l'intervalle non valable" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Mémoire épuisée" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Expression rationnelle précédente non valable" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Fin prématurée d'expression rationnelle" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Expression rationnelle trop grande" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") ou \\) non appairée" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Pas d'expression rationnelle précédente" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "mémoire épuisée" #~ msgid "invalid argument %s for %s" #~ msgstr "argument %s non valable pour %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argument %s ambigu pour %s" #~ msgid "Valid arguments are:" #~ msgstr "Les arguments valables sont :" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT : la valeur %s est inférieure ou égale à %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s : le paramètre ARGP_HELP_FMT nécessite une valeur" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s : le paramètre ARGP_HELP_FMT doit être positif" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s : paramètre ARGP_HELP_FMT inconnu" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Problème dans ARGP_HELP_FMT : %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Les arguments obligatoires pour la forme longue des options le sont aussi " #~ "pour les formes courtes associées." #~ msgid "Usage:" #~ msgstr "Utilisation :" #~ msgid " or: " #~ msgstr " ou : " #~ msgid " [OPTION...]" #~ msgstr " [OPTION...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Essayez « %s --help » ou « %s --usage » pour obtenir plus de " #~ "renseignements.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Signalez toute anomalie à %s.\n" #~ msgid "give this help list" #~ msgstr "affiche cette aide" #~ msgid "give a short usage message" #~ msgstr "donne un court message d'utilisation" #~ msgid "NAME" #~ msgstr "NOM" #~ msgid "set the program name" #~ msgstr "définit le nom du programme" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "suspension pendant SECS secondes (par défaut 3600)" #~ msgid "print program version" #~ msgstr "affiche la version du programme" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(Erreur du programme) pas de version connue !" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s : trop d'arguments\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(Erreur du programme) l'option aurait dû être reconnue !" #~ msgid "program error" #~ msgstr "erreur du programme" #~ msgid "stack overflow" #~ msgstr "dépassement de pile" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "impossible de trouver un répertoire temporaire, essayez de définir $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "impossible de créer un répertoire temporaire en utilisant le modèle " #~ "« %s »." #~ msgid "cannot remove temporary file %s" #~ msgstr "impossible de supprimer le ficher temporaire %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "impossible de supprimer le répertoire temporaire %s" #~ msgid "error closing file" #~ msgstr "erreur de fermeture de fichier" #~ msgid "write error" #~ msgstr "erreur d'écriture" #~ msgid "preserving permissions for %s" #~ msgstr "conservation des permissions de %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "erreur à l'ouverture de « %s » en lecture" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "impossible d'ouvrir le fichier de sauvegarde « %s » en écriture" #~ msgid "error reading \"%s\"" #~ msgstr "erreur de lecture de « %s »" #~ msgid "error writing \"%s\"" #~ msgstr "erreur d'écriture de « %s »" #~ msgid "error after reading \"%s\"" #~ msgstr "erreur après la lecture de « %s »" #~ msgid "fdopen() failed" #~ msgstr "échec de fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "compilateur C# non trouvé, essayez d'installer pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "machine virtuelle C# non trouvée, essayez d'installer pnet" #~ msgid "%s subprocess failed" #~ msgstr "échec de sous-processus %s" #~ msgid "regular empty file" #~ msgstr "fichier régulier vide" #~ msgid "regular file" #~ msgstr "fichier régulier" #~ msgid "directory" #~ msgstr "répertoire" #~ msgid "block special file" #~ msgstr "fichier spécial de blocs" #~ msgid "character special file" #~ msgstr "fichier spécial de caractères" #~ msgid "fifo" #~ msgstr "PEPS (FIFO)" #~ msgid "symbolic link" #~ msgstr "lien symbolique" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "file de messages" #~ msgid "semaphore" #~ msgstr "sémaphore" #~ msgid "shared memory object" #~ msgstr "objet de mémoire partagée" #~ msgid "typed memory object" #~ msgstr "objet mémoire typé" #~ msgid "weird file" #~ msgstr "fichier bizarre" #~ msgid "Address family for hostname not supported" #~ msgstr "Famille d'adresses du nom d'hôte non pris en charge" #~ msgid "Temporary failure in name resolution" #~ msgstr "Échec temporaire lors de la résolution de noms" #~ msgid "Bad value for ai_flags" #~ msgstr "Mauvaise valeur pour ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Échec définitif lors de la résolution de noms" #~ msgid "ai_family not supported" #~ msgstr "ai_family non pris en charge" #~ msgid "Memory allocation failure" #~ msgstr "Échec d'allocation mémoire" #~ msgid "No address associated with hostname" #~ msgstr "Aucune adresse associée au nom d'hôte" #~ msgid "Name or service not known" #~ msgstr "Nom ou service inconnu" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Nom de serveur non pris en charge pour ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype non pris en charge" #~ msgid "System error" #~ msgstr "Erreur système" #~ msgid "Argument buffer too small" #~ msgstr "Mémoire tampon d'argument trop petite" #~ msgid "Processing request in progress" #~ msgstr "Traitement de la requête en cours" #~ msgid "Request canceled" #~ msgstr "Requête annulée" #~ msgid "Request not canceled" #~ msgstr "Requête non annulée" #~ msgid "All requests done" #~ msgstr "Requêtes toutes traitées" #~ msgid "Interrupted by a signal" #~ msgstr "Interruption par un signal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Chaîne de paramètre mal encodé" #~ msgid "Unknown error" #~ msgstr "Erreur inconnue" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argument source_version non valable pour compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argument target_version non valable pour compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "échec de création de « %s »" #~ msgid "error while writing \"%s\" file" #~ msgstr "erreur lors de l'écriture du fichier « %s »" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "compilateur Java non trouvé, essayez d'installer gcj ou de définir $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "machine virtuelle Java non trouvée, essayez d'installer gij ou de définir " #~ "$JAVAC" #~ msgid "%s subprocess I/O error" #~ msgstr "erreur d'entrée sortie du sous-processus %s" #~ msgid "cannot change permissions of %s" #~ msgstr "impossible de modifier les permissions de %s" #~ msgid "cannot create directory %s" #~ msgstr "impossible de créer le répertoire %s" #~ msgid "unable to record current working directory" #~ msgstr "impossible de mémoriser le répertoire de travail courant" #~ msgid "failed to return to initial working directory" #~ msgstr "échec de retour au répertoire initial de travail" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Échec d'ouverture de /dev/zero en lecture" #~ msgid "creation of reading thread failed" #~ msgstr "échec de création du processus de lecture" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "" #~ "impossible de configurer l'entrée sortie non bloquante au sous-processus " #~ "%s" #~ msgid "communication with %s subprocess failed" #~ msgstr "échec de communication avec le sous-processus %s" #~ msgid "write to %s subprocess failed" #~ msgstr "échec d'écriture vers le sous-processus %s" #~ msgid "read from %s subprocess failed" #~ msgstr "échec de lecture depuis le sous-processus %s" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "le sous-processus %s s'est terminé avec le code de retour %d" #~ msgid "creation of threads failed" #~ msgstr "échec de création de processus" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "le sous-processus de %s s'est terminé avec le code de retour %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "`" #~ msgstr "« " #~ msgid "'" #~ msgstr " »" #~ msgid "^[yY]" #~ msgstr "^[oOyY].*" #~ msgid "^[nN]" #~ msgstr "^[nN].*" #~ msgid "setting permissions for %s" #~ msgstr "impossible de définir les permissions de %s" #~ msgid "Hangup" #~ msgstr "Raccrocher" #~ msgid "Interrupt" #~ msgstr "Interrompre" #~ msgid "Quit" #~ msgstr "Quitter" #~ msgid "Illegal instruction" #~ msgstr "Instruction illégale" #~ msgid "Trace/breakpoint trap" #~ msgstr "Piège de trace ou point de d'arrêt " #~ msgid "Aborted" #~ msgstr "Abandonné" #~ msgid "Floating point exception" #~ msgstr "Exception de virgule flottante" #~ msgid "Killed" #~ msgstr "Tué" #~ msgid "Bus error" #~ msgstr "Erreur de bus" #~ msgid "Segmentation fault" #~ msgstr "Erreur de segmentation" #~ msgid "Broken pipe" #~ msgstr "Tube rompu" #~ msgid "Alarm clock" #~ msgstr "Réveil" #~ msgid "Terminated" #~ msgstr "Terminé" #~ msgid "Urgent I/O condition" #~ msgstr "Condition d'entrée sortie urgente" #~ msgid "Stopped (signal)" #~ msgstr "Arrêté (signal)" #~ msgid "Stopped" #~ msgstr "Arrêté" #~ msgid "Continued" #~ msgstr "Continué" #~ msgid "Child exited" #~ msgstr "Fin du processus fils" #~ msgid "Stopped (tty input)" #~ msgstr "Arrêté (entrée de tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Arrêté (sortie de tty)" #~ msgid "I/O possible" #~ msgstr "Entrée sortie possible" #~ msgid "CPU time limit exceeded" #~ msgstr "Temps limite de processeur dépassé" #~ msgid "File size limit exceeded" #~ msgstr "Taille limite de fichier dépassée" #~ msgid "Virtual timer expired" #~ msgstr "Temporisation virtuelle dépassée" #~ msgid "Profiling timer expired" #~ msgstr "Temporisation de profilage dépassée" #~ msgid "Window changed" #~ msgstr "Fenêtre modifiée" #~ msgid "User defined signal 1" #~ msgstr "Signal 1 défini par utilisateur" #~ msgid "User defined signal 2" #~ msgstr "Signal 2 défini par utilisateur" #~ msgid "EMT trap" #~ msgstr "Piège EMT" #~ msgid "Bad system call" #~ msgstr "Mauvais appel système" #~ msgid "Stack fault" #~ msgstr "Défaut de pile" #~ msgid "Information request" #~ msgstr "Demande de renseignements" #~ msgid "Power failure" #~ msgstr "Échec d'alimentation" #~ msgid "Resource lost" #~ msgstr "Ressource perdue" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "Erreur d'écriture vers un tube ou un socket fermé" #~ msgid "cannot create pipe" #~ msgstr "impossible de créer un tube (« pipe »)" #~ msgid "Real-time signal %d" #~ msgstr "Signal %d en temps réel" #~ msgid "Unknown signal %d" #~ msgstr "Signal %d inconnu" #~ msgid "iconv function not usable" #~ msgstr "fonction iconv non utilisable" #~ msgid "iconv function not available" #~ msgstr "fonction iconv non disponible" #~ msgid "character out of range" #~ msgstr "caractère hors limites" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "impossible de convertir U+%04X dans le jeu de caractères local" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "impossible de convertir U+%04X dans le jeu de caractères local : %s" #~ msgid "invalid user" #~ msgstr "utilisateur non valable" #~ msgid "invalid group" #~ msgstr "groupe non valable" #~ msgid "invalid spec" #~ msgstr "spécification non valable" #~ msgid "unable to display error message" #~ msgstr "impossible d'afficher le message d'erreur" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Empaqueté par %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Empaqueté par %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/" #~ "gpl.html>\n" #~ "Logiciel libre : vous êtes libre de le modifier ou de le redistribuer.\n" #~ "Il n'y a AUCUNE GARANTIE, dans les limites permises par la loi.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Écrit par %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Écrit par %s et %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Écrit par %s, %s et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "%s et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "%s, %s, et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "%s, %s, %s, et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s et %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Écrit par %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s et d'autres.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Signalez toute anomalie à : %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Signalez les anomalies de %s à : %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "page d'accueil de %s : <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "page d'accueil de %s : <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Aide globale sur les logiciels GNU : <http://www.gnu.org/help/gethelp>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "échec de _open_osfhandle" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "" #~ "impossible de restaurer le descripteur de fichier (fd) %d : échec de dup2" #~ msgid "%s subprocess" #~ msgstr "sous-processus %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "le sous-processus %s a reçu un signal fatal %d" #~ msgid "stdin" #~ msgstr "entrée standard (stdin)" #~ msgid "stdout" #~ msgstr "sortie standard (stdout)" #~ msgid "stderr" #~ msgstr "sortie d'erreur (stderr)" #~ msgid "unknown stream" #~ msgstr "flux inconnu" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "impossible de rouvrir %s en mode %s" #~ msgid "string comparison failed" #~ msgstr "échec de comparaison de chaîne" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Définir LC_ALL='C' pour contourner le problème." #~ msgid "The strings compared were %s and %s." #~ msgstr "Les chaînes comparées étaient %s et %s." #~ msgid "cannot perform formatted output" #~ msgstr "impossible mettre en forme la sortie formatée" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "argument %s%s non valable « %s »" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "suffixe non valable dans l'argument %s%s « %s »" #~ msgid "%s%s argument `%s' too large" #~ msgstr "argument %s%s « %s » trop grand" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s : option illégale -- %c\n" #, fuzzy #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "Rapportez toute anomalie à %s.\n" #~ msgid "block size" #~ msgstr "taille de bloc" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe mais n'est pas un répertoire" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "ne peut modifier le propriétraire et/ou le groupe de %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "ne peut aller vers le répertoire %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "" #~ "ne peut obtenir le groupe d'établissement de session à partir du UID " #~ "numérique" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Ce programme est un logiciel libre; vous pouvez le redistribuer ou le\n" #~ "modifier selon les termes de la License Publique Générale de GNU, " #~ "publiée\n" #~ "par la Free Software Foundation (soit la version 2 ou soit, à votre\n" #~ "discrétion, toute version ultérieure).\n" #~ "\n" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/es.po����������������������������������������������������������������������������0000644�0000000�0000000�00000055175�12116513224�011646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mensajes en español para gnulib 3.0.0.6062.a6b16. # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011. # # Los mensajes iniciales de esta traducción provienen de la traducción # de mailutils. # # Un agradecimiento especial a Santiago Vila por sus atinados comentarios # sobre esta traducción. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-08-24 11:23-0500\n" "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n" "Language-Team: Spanish <es@li.org>\n" "Language: es\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" #: lib/error.c:188 msgid "Unknown system error" msgstr "Error desconocido de sistema" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: la opción '%s' es ambigua; posibilidades:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: la opción '--%s' no admite un argumento\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: la opción '%c%s' no admite un argumento\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: la opción '--%s' requiere de un argumento\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: no se reconoce la opción '--%s'\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: no se reconoce la opción '%c%s'\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: opción inválida -- '%c'\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: la opción requiere de un argumento -- '%c'\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: la opción '-W %s' es ambigua\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: la opción '-W %s' no admite un argumento\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: la opción '-W %s' requiere de un argumento\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Éxito" #: lib/regcomp.c:134 msgid "No match" msgstr "Sin coincidencia" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "Expresión regular inválida" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "Carácter de ordenamiento inválido" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "Nombre de clase de carácter inválido" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Barra invertida sobrante" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Referencia hacia atrás inválida" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "[ o [^ sin pareja" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "( o \\( sin pareja" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "\\{ sin pareja" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Contenido inválido de \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Fin de rango inválido" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Memoria agotada" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Expresión regular precedente inválida" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Final prematuro de la expresión regular" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Expresión regular demasiado grande" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr ") o \\) sin pareja" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "No hay una expresión regular previa" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria agotada" #~ msgid "invalid argument %s for %s" #~ msgstr "argumento %s inválido para %s" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argumento %s ambiguo para %s" #~ msgid "Valid arguments are:" #~ msgstr "Los argumentos válidos son:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: el valor %s es menor o igual a %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: El parámetro ARGP_HELP_FMT requiere de un valor" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: El parámetro ARGP_HELP_FMT debe ser positivo" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Parámetro de ARGP_HELP_FMT desconocido" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Basura en ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Los argumentos obligatorios u opcionales para las opciones largas también " #~ "son obligatorios u opcionales para cualquier opción corta correspondiente." #~ msgid "Usage:" #~ msgstr "Modo de empleo:" #~ msgid " or: " #~ msgstr " o:" #~ msgid " [OPTION...]" #~ msgstr " [OPCIÓN...]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Pruebe `%s --help' ó `%s --usage' para más información.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Reporte bichos a %s.\n" #~ msgid "give this help list" #~ msgstr "da esta lista de ayuda" #~ msgid "give a short usage message" #~ msgstr "da un mensaje corto de modo de empleo" #~ msgid "NAME" #~ msgstr "NOMBRE" #~ msgid "set the program name" #~ msgstr "establece el nombre del programa" #~ msgid "SECS" #~ msgstr "SEGUNDOS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "espera por SECS segundos (3600 por defecto)" #~ msgid "print program version" #~ msgstr "muestra la versión del programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERROR DEL PROGRAMA) ¿¡Sin versión conocida!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Demasiados argumentos\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ERROR DEL PROGRAMA) ¿¡La opción debería reconocerse!?" #~ msgid "program error" #~ msgstr "error del programa" #~ msgid "stack overflow" #~ msgstr "desbordamiento de la pila" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "no se puede encontrar un directorio temporal, pruebe definir $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "no se puede crear un directorio temporal usando la plantilla \"%s\"" #~ msgid "cannot remove temporary file %s" #~ msgstr "no se puede borrar el fichero temporal %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "no se puede borrar el directorio temporal %s" #~ msgid "error closing file" #~ msgstr "error al cerrar el fichero" #~ msgid "write error" #~ msgstr "error de escritura" #~ msgid "preserving permissions for %s" #~ msgstr "se conservan los permisos de %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "error al abrir \"%s\" para lectura" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "no se puede abrir el fichero de respaldo \"%s\" para escritura" #~ msgid "error reading \"%s\"" #~ msgstr "error al leer \"%s\"" #~ msgid "error writing \"%s\"" #~ msgstr "error al escribir en \"%s\"" #~ msgid "error after reading \"%s\"" #~ msgstr "error después de leer \"%s\"" #~ msgid "fdopen() failed" #~ msgstr "falló fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "No se encontró un compilador de C#, pruebe instalando pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "No se encontró una máquina virtual de C#, pruebe instalando pnet" #~ msgid "%s subprocess failed" #~ msgstr "%s: falló el subproceso" #~ msgid "regular empty file" #~ msgstr "fichero regular vacío" #~ msgid "regular file" #~ msgstr "fichero regular" #~ msgid "directory" #~ msgstr "directorio" #~ msgid "block special file" #~ msgstr "fichero especial de bloques" #~ msgid "character special file" #~ msgstr "fichero especial de caracteres" #~ msgid "fifo" #~ msgstr "`fifo'" #~ msgid "symbolic link" #~ msgstr "enlace simbólico" #~ msgid "socket" #~ msgstr "`socket'" #~ msgid "message queue" #~ msgstr "cola de mensajes" #~ msgid "semaphore" #~ msgstr "semáforo" #~ msgid "shared memory object" #~ msgstr "objeto de memoria compartida" #~ msgid "typed memory object" #~ msgstr "objeto de memoria con tipo" #~ msgid "weird file" #~ msgstr "fichero extraño" #~ msgid "Address family for hostname not supported" #~ msgstr "No se admiten las familias de direcciones para hostname" #~ msgid "Temporary failure in name resolution" #~ msgstr "Fallo temporal en la resolución del nombre" #~ msgid "Bad value for ai_flags" #~ msgstr "Valor erróneo para ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Falla irrecuperable en la resolución del nombre" #~ msgid "ai_family not supported" #~ msgstr "no se admite ai_family" #~ msgid "Memory allocation failure" #~ msgstr "Falló la llamada al sistema `malloc'" #~ msgid "No address associated with hostname" #~ msgstr "No existe una dirección asociada con el nombre de anfitrión" #~ msgid "Name or service not known" #~ msgstr "Nombre o servicio desconocido" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "No se admite servname para ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "no se admite ai_socktype" #~ msgid "System error" #~ msgstr "Error del sistema" #~ msgid "Argument buffer too small" #~ msgstr "Almacenamiento temporal de argumentos demasiado pequeño" #~ msgid "Processing request in progress" #~ msgstr "Petición de procesamiento en progreso" #~ msgid "Request canceled" #~ msgstr "Se canceló la petición" #~ msgid "Request not canceled" #~ msgstr "No se canceló la petición" #~ msgid "All requests done" #~ msgstr "Se completaron todas las peticiones" #~ msgid "Interrupted by a signal" #~ msgstr "Interrupción por una señal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "La cadena de parámetro no está codificada correctamente" #~ msgid "Unknown error" #~ msgstr "Error desconocido" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argumento source_version inválido para compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argumento target_version inválido para compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "no se puede crear \"%s\"" #~ msgid "error while writing \"%s\" file" #~ msgstr "error al escribir el fichero \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "No se encontró un compilador de Java, pruebe instalando gcj o definiendo " #~ "$JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "No se encontró una máquina virtual de Java, pruebe instalando gij o " #~ "definiendo $JAVA" #~ msgid "%s subprocess I/O error" #~ msgstr "%s: error de E/S del subproceso" #~ msgid "cannot change permissions of %s" #~ msgstr "no se pueden cambiar los permisos de %s" #~ msgid "cannot create directory %s" #~ msgstr "no se puede crear el directorio %s" #~ msgid "unable to record current working directory" #~ msgstr "no se puede registrar el directorio de trabajo actual" #~ msgid "failed to return to initial working directory" #~ msgstr "no se puede volver al directorio de trabajo inicial" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Falló al abrir /dev/zero para lectura" #~ msgid "creation of reading thread failed" #~ msgstr "falló la creación del hilo de lectura" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "no se puede establecer E/S sin bloqueo para el subproceso %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "falló la comunicación con el subproceso %s" #~ msgid "write to %s subprocess failed" #~ msgstr "falló la escritura al subproceso %s" #~ msgid "read from %s subprocess failed" #~ msgstr "falló la lectura del subproceso %s" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "el subproceso %s terminó con el código de salida %d" #~ msgid "creation of threads failed" #~ msgstr "falló la creación de hilos" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "subproceso %s terminado con el código de salida %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" # Vamos a probar con el símbolo de cita tradicional en español, # a ver qué tal queda la cosa. #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" # Esto es para responder "sí" cuando nos pregunte. #~ msgid "^[yY]" #~ msgstr "^[sS]" # Y esto es para responder "no" cuando nos pregunte. #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "se cambian los permisos de %s" #~ msgid "Hangup" #~ msgstr "Colgar" #~ msgid "Interrupt" #~ msgstr "Interrumpir" #~ msgid "Quit" #~ msgstr "Salir" #~ msgid "Illegal instruction" #~ msgstr "Instrucción ilegal" #~ msgid "Trace/breakpoint trap" #~ msgstr "Captura de rastreo/punto de quiebre" #~ msgid "Aborted" #~ msgstr "Abortar" #~ msgid "Floating point exception" #~ msgstr "Excepción de coma flotante" #~ msgid "Killed" #~ msgstr "Matar" #~ msgid "Bus error" #~ msgstr "Error de bus" #~ msgid "Segmentation fault" #~ msgstr "Falta de segmentación" #~ msgid "Broken pipe" #~ msgstr "Tubería rota" #~ msgid "Alarm clock" #~ msgstr "Reloj de alarma" #~ msgid "Terminated" #~ msgstr "Terminar" #~ msgid "Urgent I/O condition" #~ msgstr "Condición de E/S urgente" #~ msgid "Stopped (signal)" #~ msgstr "Detener (señal)" #~ msgid "Stopped" #~ msgstr "Detener" #~ msgid "Continued" #~ msgstr "Continuar" #~ msgid "Child exited" #~ msgstr "Salió el hijo" #~ msgid "Stopped (tty input)" #~ msgstr "Detener (entrada de tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Detener (salida de tty)" #~ msgid "I/O possible" #~ msgstr "Posible E/S" #~ msgid "CPU time limit exceeded" #~ msgstr "Excede el límite de tiempo de CPU" #~ msgid "File size limit exceeded" #~ msgstr "Excede el límite de tamaño de fichero" #~ msgid "Virtual timer expired" #~ msgstr "Expira el temporizador virtual" #~ msgid "Profiling timer expired" #~ msgstr "Expira el temporizador de análisis de perfil" #~ msgid "Window changed" #~ msgstr "Cambio de ventana" #~ msgid "User defined signal 1" #~ msgstr "Señal 1 definida por el usuario" #~ msgid "User defined signal 2" #~ msgstr "Señal 2 definida por el usuario" #~ msgid "EMT trap" #~ msgstr "Captura EMT" #~ msgid "Bad system call" #~ msgstr "Llamada al sistema errónea" #~ msgid "Stack fault" #~ msgstr "Falta en la pila" #~ msgid "Information request" #~ msgstr "Petición de información" #~ msgid "Power failure" #~ msgstr "Falla de energía" #~ msgid "Resource lost" #~ msgstr "Recurso perdido" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "error al escribir a una tubería o socket cerrados" #~ msgid "cannot create pipe" #~ msgstr "no se puede una tubería" #~ msgid "Real-time signal %d" #~ msgstr "Señal de tiempo real %d" #~ msgid "Unknown signal %d" #~ msgstr "Señal %d desconocida" #~ msgid "iconv function not usable" #~ msgstr "la función iconv no es utilizable" #~ msgid "iconv function not available" #~ msgstr "la función iconv no está disponible" #~ msgid "character out of range" #~ msgstr "carácter fuera de rango" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "no se puede convertir U+%04X al conjunto de caracteres local" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "no se puede convertir U+%04X al conjunto de caracteres local: %s" # Me niego a considerar "inválido" como palabra "políticamente incorrecta". # Si algún "impedido físico" lee este mensaje y se molesta por ello, entonces # es que además de impedido físico es tonto, pues todo el mundo sabe que, # *en el contexto informático*, inválido e ilegal significan # "no permitido por la causa que sea". # Luego, que unas veces sea inválido y otras ilegal, son matices que el # original tiene y creo necesario respetar en la traducción. # # [ Tomás Bautista sugiere "inexistente", y también para grupo ] # # FIXME: # Eso sí, un día tendré que preguntar a los de GNU en qué se diferencia # "invalid" de "not allowed" de "not recognized" y todo eso... sv # #~ msgid "invalid user" #~ msgstr "usuario inválido" #~ msgid "invalid group" #~ msgstr "grupo inválido" # Me niego a considerar "inválido" como palabra "políticamente incorrecta". # Si algún "impedido físico" lee este mensaje y se molesta por ello, entonces # es que además de impedido físico es tonto, pues todo el mundo sabe que, # *en el contexto informático*, inválido e ilegal significan # "no permitido por la causa que sea". # Luego, que unas veces sea inválido y otras ilegal, son matices que el # original tiene y creo necesario respetar en la traducción. # # [ Tomás Bautista sugiere "inexistente", y también para grupo ] # # FIXME: # Eso sí, un día tendré que preguntar a los de GNU en qué se diferencia # "invalid" de "not allowed" de "not recognized" y todo eso... sv # #~ msgid "invalid spec" #~ msgstr "especificación inválida" #~ msgid "unable to display error message" #~ msgstr "no se puede mostrar el mensaje de error" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Empaquetado por %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Empaquetado por %s\n" #~ msgid "(C)" #~ msgstr "(C)" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licencia GPLv3+: GPL de GNU versión 3 o posterior\n" #~ "<http://gnu.org/licenses/gpl.html>.\n" #~ "Esto es software libre: tiene la libertad de cambiarlo y redistribuirlo.\n" #~ "No tiene GARANTÍA, en la extensión permitida por la ley.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Escrito por %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Escrito por %s y %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Escrito por %s, %s, y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, y %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Escrito por %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, y otros.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Reporte bichos a: %s.\n" #~ "Reporte errores de traducción a: es@li.org\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Reporte bichos de %s a: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Página web de %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Página web de %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Ayuda general para usar software de GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "falló _open_osfhandle" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "no se puede restaurar el df %d: falló dup2" #~ msgid "%s subprocess" #~ msgstr "subproceso %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "el subproceso %s recibió la señal fatal %d" #~ msgid "stdin" #~ msgstr "entrada estándard" #~ msgid "stdout" #~ msgstr "salida estándard" #~ msgid "stderr" #~ msgstr "salida de error estándard" #~ msgid "unknown stream" #~ msgstr "flujo desconocido" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "falló al reabrir %s con modo %s" #~ msgid "string comparison failed" #~ msgstr "la comparación de cadenas falló" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "" #~ "Establezca LC_ALL='C' para solucionar este problema de forma temporal." #~ msgid "The strings compared were %s and %s." #~ msgstr "Las cadenas comparadas eran %s y %s." #~ msgid "cannot perform formatted output" #~ msgstr "no se puede mostrar la salida con formato" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "argumento `$3%s' inválido para $1%s$2%s" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "sufijo inválido en el argumento `$3%s' para $1%s$2%s" #~ msgid "%s%s argument `%s' too large" #~ msgstr "el argumento `$3%s' es demasiado grande para $1%s$2%s" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opción ilegal -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Reporte bichos a <%s>.\n" #~ msgid "block size" #~ msgstr "tamaño del bloque" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe pero no es un directorio" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "no se puede cambiar el propietario y/o el grupo de %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "no se puede cambiar al directorio %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "no se puede obtener el grupo de login de un UID numérico" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Este programa es software libre; se pueden redistribuir copias del " #~ "mismo \n" #~ "bajo los términos de la Licencia Pública General de GNU\n" #~ "<http://www.gnu.org/licenses/gpl.html>.\n" #~ "NO HAY GARANTÍA, a la extensión permitida por la ley.\n" #~ "\n" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/POTFILES.in����������������������������������������������������������������������0000644�0000000�0000000�00000005307�12116370307�012447� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <http://www.gnu.org/licenses/>. # # 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. # # Generated by gnulib-tool. # List of files which contain translatable strings. lib/alloca.in.h lib/asnprintf.c lib/asprintf.c lib/btowc.c lib/canonicalize-lgpl.c lib/config.charset lib/dosname.h lib/dup2.c lib/errno.in.h lib/error.c lib/error.h lib/exitfail.c lib/exitfail.h lib/float+.h lib/float.c lib/float.in.h lib/getdelim.c lib/getline.c lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h lib/gettext.h lib/intprops.h lib/iswblank.c lib/itold.c lib/langinfo.in.h lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/localeconv.c lib/lstat.c lib/malloc.c lib/malloca.c lib/malloca.h lib/malloca.valgrind lib/mbchar.c lib/mbchar.h lib/mbrtowc.c lib/mbsinit.c lib/mbsrchr.c lib/mbtowc-impl.h lib/mbtowc.c lib/mbuiter.c lib/mbuiter.h lib/memchr.c lib/memchr.valgrind lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/nl_langinfo.c lib/pathmax.h lib/printf-args.c lib/printf-args.h lib/printf-parse.c lib/printf-parse.h lib/readlink.c lib/realloc.c lib/ref-add.sin lib/ref-del.sin lib/regcomp.c lib/regex.c lib/regex.h lib/regex_internal.c lib/regex_internal.h lib/regexec.c lib/setenv.c lib/size_max.h lib/stat.c lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio.in.h lib/stdlib.in.h lib/str-two-way.h lib/streq.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/string.in.h lib/strnlen1.c lib/strnlen1.h lib/strstr.c lib/sys_stat.in.h lib/sys_types.in.h lib/sys_wait.in.h lib/time.in.h lib/unistd.c lib/unistd.in.h lib/unitypes.in.h lib/uniwidth.in.h lib/uniwidth/cjk.h lib/uniwidth/width.c lib/vasnprintf.c lib/vasnprintf.h lib/vasprintf.c lib/verify.h lib/wchar.in.h lib/wcrtomb.c lib/wctype-h.c lib/wctype.in.h lib/wcwidth.c lib/xalloc-die.c lib/xalloc-oversized.h lib/xalloc.h lib/xmalloc.c lib/xsize.c lib/xsize.h �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/el.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000001126�12116513225�011767� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������L�������`������a������v���x�����0������$���1��������������������Unknown system error�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2012-03-11 11:25+0100 Last-Translator: Simos Xenitellis <simos.lists@googlemail.com> Language-Team: Greek <team@lists.gnome.gr> Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit �Άγνωστο σφάλμα συστήματος�η μνήμη εξαντλήθηκε�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/fr.gmo���������������������������������������������������������������������������0000644�0000000�0000000�00000006122�12116513225�011777� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������+����������������,�����,�����,���?��'���l��-����� �����(�����(��� �����5�����U�����u�����������������$������������������/�����@�����I��#���h������������������������������������� ��� ���������+��'�����4�����8���7��4���p��3�����5�����*��� ��4���: ��4���o ��'��� ��'��� ��#��� ��(��� ��#���A ��$���e ��/��� ��(��� ��"��� ����� ����� ��)���/ ��)���Y ��"��� ����� ��%��� ����� ����� ����� ����� �����. �����? �������� ������������������������������������������������� ��� ������������������������������������������ ��� ��������� �����������������������������%s: invalid option -- '%c' �%s: option '%c%s' doesn't allow an argument �%s: option '%s' is ambiguous; possibilities:�%s: option '--%s' doesn't allow an argument �%s: option '--%s' requires an argument �%s: option '-W %s' doesn't allow an argument �%s: option '-W %s' is ambiguous �%s: option '-W %s' requires an argument �%s: option requires an argument -- '%c' �%s: unrecognized option '%c%s' �%s: unrecognized option '--%s' �Invalid back reference�Invalid character class name�Invalid collation character�Invalid content of \{\}�Invalid preceding regular expression�Invalid range end�Invalid regular expression�Memory exhausted�No match�No previous regular expression�Premature end of regular expression�Regular expression too big�Success�Trailing backslash�Unknown system error�Unmatched ( or \(�Unmatched ) or \)�Unmatched [ or [^�Unmatched \{�memory exhausted�Project-Id-Version: gnulib-3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org POT-Creation-Date: 2013-03-09 02:55+0100 PO-Revision-Date: 2011-12-07 20:41-0400 Last-Translator: David Prévot <david@tilapin.org> Language-Team: French <traduc@traduc.org> Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Lokalize 1.2 �%s : option non valable -- « %c » �%s : l'option « %c%s » ne prend pas d'argument �%s : l'option « %s » est ambiguë, possibilités :�%s : l'option « --%s » ne prend pas d'argument �%s : l'option « --%s » nécessite un argument �%s : l'option « -W %s » ne prend pas d'argument �%s : l'option « -W %s » est ambiguë �%s : l'option « -W %s » nécessite un argument �%s : l'option nécessite un argument -- « %c » �%s : option « %c%s » non reconnue �%s : option « --%s » non reconnue �Référence antérieure non valable�Nom de classe de caractères non valable�Caractère d'assemblage non valable�Le contenu de \{\} n'est pas valable�Expression rationnelle précédente non valable�Borne finale de l'intervalle non valable�Expression rationnelle non valable�Mémoire épuisée�Pas de correspondance�Pas d'expression rationnelle précédente�Fin prématurée d'expression rationnelle�Expression rationnelle trop grande�Succès�Barre oblique inverse en fin de ligne�Erreur système inconnue�( ou \( non appairée�) ou \) non appairée�[ ou [^ non appairé�\{ non appairée�mémoire épuisée�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/po/cs.po����������������������������������������������������������������������������0000644�0000000�0000000�00000047453�12116513224�011644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Czech translations for GNU textutils # This file is distributed under the same license as the gnulib package. # Copyright (C) 1996 Free Software Foundation, Inc. # # Vladimir Michl <Vladimir.Michl@seznam.cz>, 1996. # Marek Černocký <marek@manet.cz>, 2011. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2013-03-09 02:55+0100\n" "PO-Revision-Date: 2011-12-04 08:50+0100\n" "Last-Translator: Marek Černocký <marek@manet.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: lib/error.c:188 msgid "Unknown system error" msgstr "Neznámá chyba systému" #: lib/getopt.c:547 lib/getopt.c:576 #, c-format msgid "%s: option '%s' is ambiguous; possibilities:" msgstr "%s: přepínač „%s“ není jednoznačný; možnosti:" #: lib/getopt.c:624 lib/getopt.c:628 #, c-format msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: přepínač „--%s“ musí být zadán bez argumentu\n" #: lib/getopt.c:637 lib/getopt.c:642 #, c-format msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n" #: lib/getopt.c:685 lib/getopt.c:704 #, c-format msgid "%s: option '--%s' requires an argument\n" msgstr "%s: přepínač „--%s“ vyžaduje argument\n" #: lib/getopt.c:742 lib/getopt.c:745 #, c-format msgid "%s: unrecognized option '--%s'\n" msgstr "%s: neznámý přepínač „--%s“\n" #: lib/getopt.c:753 lib/getopt.c:756 #, c-format msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: neznámý přepínač „%c%s“\n" #: lib/getopt.c:805 lib/getopt.c:808 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: neplatný přepínač -- „%c“\n" #: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: přepínač vyžaduje argument -- „%c“\n" #: lib/getopt.c:934 lib/getopt.c:950 #, c-format msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: přepínač „-W %s“ není jednoznačný\n" #: lib/getopt.c:974 lib/getopt.c:992 #, c-format msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: přepínač „-W %s“ musí být zadán bez argumentu\n" #: lib/getopt.c:1013 lib/getopt.c:1031 #, c-format msgid "%s: option '-W %s' requires an argument\n" msgstr "%s: přepínač „-W %s“ vyžaduje argument\n" #: lib/regcomp.c:131 msgid "Success" msgstr "Úspěch" #: lib/regcomp.c:134 msgid "No match" msgstr "Žádná shoda" #: lib/regcomp.c:137 msgid "Invalid regular expression" msgstr "neplatný regulární výraz" #: lib/regcomp.c:140 msgid "Invalid collation character" msgstr "neplatný znak pro porovnávání" #: lib/regcomp.c:143 msgid "Invalid character class name" msgstr "neplatný název třídy znaku" #: lib/regcomp.c:146 msgid "Trailing backslash" msgstr "Zpětné lomítko na konci" #: lib/regcomp.c:149 msgid "Invalid back reference" msgstr "Neplatný zpětný odkaz" #: lib/regcomp.c:152 msgid "Unmatched [ or [^" msgstr "Chybí odpovídající závorka k [ nebo [^" #: lib/regcomp.c:155 msgid "Unmatched ( or \\(" msgstr "Chybí odpovídající závorka k ( nebo \\(" #: lib/regcomp.c:158 msgid "Unmatched \\{" msgstr "Chybí odpovídající závorka k \\{" #: lib/regcomp.c:161 msgid "Invalid content of \\{\\}" msgstr "Neplatný obsah \\{\\}" #: lib/regcomp.c:164 msgid "Invalid range end" msgstr "Neplatný konec rozsahu" #: lib/regcomp.c:167 msgid "Memory exhausted" msgstr "Paměť byla vyčerpána" #: lib/regcomp.c:170 msgid "Invalid preceding regular expression" msgstr "Neplatný předchozí regulární výraz" #: lib/regcomp.c:173 msgid "Premature end of regular expression" msgstr "Předčasný konec regulárního výrazu" #: lib/regcomp.c:176 msgid "Regular expression too big" msgstr "Regulární výraz je příliš velký" #: lib/regcomp.c:179 msgid "Unmatched ) or \\)" msgstr "Chybí odpovídající závorka k ) nebo \\)" #: lib/regcomp.c:704 msgid "No previous regular expression" msgstr "Žádný předchozí regulární výraz" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "paměť byla vyčerpána" #~ msgid "invalid argument %s for %s" #~ msgstr "argument %s je pro %s neplatný" #~ msgid "ambiguous argument %s for %s" #~ msgstr "argument %s je pro %s nejednoznačný" #~ msgid "Valid arguments are:" #~ msgstr "Platné argumenty jsou:" #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: hodnota %s je menší nebo rovna %s" #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT vyžaduje hodnotu" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT musí být kladný" #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT" #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Nesmysly v ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Povinné či volitelné, argumenty pro dlouhé přepínače jsou povinné či " #~ "volitelné, i pro případné odpovídající krátké přepínače." #~ msgid "Usage:" #~ msgstr "Použití:" #~ msgid " or: " #~ msgstr " nebo:" #~ msgid " [OPTION...]" #~ msgstr " [PŘEPÍNAČ…]" #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Více informací získáte příkazem „%s --help“ nebo „%s --usage“.\n" #~ msgid "Report bugs to %s.\n" #~ msgstr "Chyby hlaste na %s.\n" #~ msgid "give this help list" #~ msgstr "poskytne tuto přehledovou nápovědu" #~ msgid "give a short usage message" #~ msgstr "poskytne stručnou informaci o používání" #~ msgid "NAME" #~ msgstr "NÁZEV" #~ msgid "set the program name" #~ msgstr "nastavit název programu" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "zastavit na SEK sekund (výchozí je 3600)" #~ msgid "print program version" #~ msgstr "vypsat verzi programu" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(CHYBA PROGRAMU) Neznámá verze!?" #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Příliš mnoho argumentů\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(CHYBA PROGRAMU) Měl by být rozpoznán přepínač!?" #~ msgid "program error" #~ msgstr "chyba programu" #~ msgid "stack overflow" #~ msgstr "přetečení zásobníku" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "nelze najít dočasnou složku, zkusí se nastavit $TMPDIR" #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "nelze vytvořit dočasnou složku pomocí šablony „%s“" #~ msgid "cannot remove temporary file %s" #~ msgstr "nelze odstranit dočasný soubor %s" #~ msgid "cannot remove temporary directory %s" #~ msgstr "nelze odstranit dočasnou složku %s" #~ msgid "error closing file" #~ msgstr "chyba při zavírání souboru" #~ msgid "write error" #~ msgstr "chyba při zápisu" #~ msgid "preserving permissions for %s" #~ msgstr "zachování práv k souboru %s" #~ msgid "error while opening \"%s\" for reading" #~ msgstr "chyba při otevírání souboru „%s“ pro čtení" #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "nelze otevřít záložní soubor „%s“ pro zápis" #~ msgid "error reading \"%s\"" #~ msgstr "chyba při čtení souboru „%s“" #~ msgid "error writing \"%s\"" #~ msgstr "chyba při zápisu do souboru „%s“" #~ msgid "error after reading \"%s\"" #~ msgstr "chyba po přečtení souboru „%s“" #~ msgid "fdopen() failed" #~ msgstr "selhala funkce fdopen()" #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Překladač C# nebyl nalezen, zkuste nainstalovat pnet" #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Virtuální stroj C# nebyl nalezen, zkuste nainstalovat pnet" #~ msgid "%s subprocess failed" #~ msgstr "selhal podřízený proces %s" #~ msgid "regular empty file" #~ msgstr "prázdný běžný soubor" #~ msgid "regular file" #~ msgstr "běžný soubor" #~ msgid "directory" #~ msgstr "složka" #~ msgid "block special file" #~ msgstr "speciální soubor blokového zařízení" #~ msgid "character special file" #~ msgstr "speciální soubor znakového zařízení" #~ msgid "fifo" #~ msgstr "fronta fifo" #~ msgid "symbolic link" #~ msgstr "symbolický odkaz" #~ msgid "socket" #~ msgstr "soket" #~ msgid "message queue" #~ msgstr "fronta zpráv" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "sdílený paměťový objekt" #~ msgid "typed memory object" #~ msgstr "typový paměťový objekt" #~ msgid "weird file" #~ msgstr "podivný soubor" #~ msgid "Address family for hostname not supported" #~ msgstr "Pro název počítače není rodina adres podporována" #~ msgid "Temporary failure in name resolution" #~ msgstr "Dočasné selhání při překladu názvu" #~ msgid "Bad value for ai_flags" #~ msgstr "Špatná hodnota pro příznaky ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nenapravitelné selhání při překladu názvu" #~ msgid "ai_family not supported" #~ msgstr "ai_family není podporována" #~ msgid "Memory allocation failure" #~ msgstr "Selhalo přidělení paměti" #~ msgid "No address associated with hostname" #~ msgstr "K názvu počítače není přiřazena žádná adresa" #~ msgid "Name or service not known" #~ msgstr "Název nebo služba nejsou známy" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Název služby není podporován pro ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype není podporován" #~ msgid "System error" #~ msgstr "Chyba systému" #~ msgid "Argument buffer too small" #~ msgstr "Vyrovnávací paměť argumentů je příliš malá" #~ msgid "Processing request in progress" #~ msgstr "Probíhá zpracování požadavku" #~ msgid "Request canceled" #~ msgstr "Požadavek byl zrušen" #~ msgid "Request not canceled" #~ msgstr "Požadavek nebyl zrušen" #~ msgid "All requests done" #~ msgstr "Všechny požadavky dokončeny" #~ msgid "Interrupted by a signal" #~ msgstr "Přerušeno signálem" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Řetězec s parametry není správně kódován" #~ msgid "Unknown error" #~ msgstr "Neznámá chyba" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "neplatný argument source_version pro compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "neplatný argument target_version pro compile_java_class" #~ msgid "failed to create \"%s\"" #~ msgstr "selhalo vytvoření „%s“" #~ msgid "error while writing \"%s\" file" #~ msgstr "chyba při zápisu souboru „%s“" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Překladač jazyka Java nebyl nalezen, zkuste nainstalovat gcj nebo " #~ "nastavit proměnnou $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuální stroj Java nebyl nalezen, zkuste nainstalovat gij nebo nastavit " #~ "proměnnou $JAVAC" #~ msgid "%s subprocess I/O error" #~ msgstr "V/V chyba podřízeného procesu %s" #~ msgid "cannot change permissions of %s" #~ msgstr "nelze změnit oprávnění k %s" #~ msgid "cannot create directory %s" #~ msgstr "nelze vytvořit složku %s" #~ msgid "unable to record current working directory" #~ msgstr "nelze zaznamenat aktuální pracovní složku" #~ msgid "failed to return to initial working directory" #~ msgstr "selhalo vrácení počáteční pracovní složky" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Selhalo otevření /dev/zero pro čtení" #~ msgid "creation of reading thread failed" #~ msgstr "vytvoření čtecího vlákna selhalo" #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "nelze nastavit neblokující V/V pro podřízený proces %s" #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikace s podřízeným procesem %s selhala" #~ msgid "write to %s subprocess failed" #~ msgstr "zápis do podřízeného procesu %s selhal" #~ msgid "read from %s subprocess failed" #~ msgstr "čtení z podřízeného procesu %s selhalo" #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "podřízený proces %s byl ukončen s návratovým kódem %d" #~ msgid "creation of threads failed" #~ msgstr "vytvoření vlákna selhalo" #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "podřízený proces %s byl ukončen s návratovým kódem %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc, ois Pinard" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "“" #~ msgid "^[yY]" #~ msgstr "^[aAyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "setting permissions for %s" #~ msgstr "nastavení oprávnění k %s" #~ msgid "Hangup" #~ msgstr "Zavěsit" #~ msgid "Interrupt" #~ msgstr "Přerušení" #~ msgid "Quit" #~ msgstr "Ukončit" #~ msgid "Illegal instruction" #~ msgstr "Neplatná instrukce" #~ msgid "Trace/breakpoint trap" #~ msgstr "Krokování/bod přerušení" #~ msgid "Aborted" #~ msgstr "Přerušen" #~ msgid "Floating point exception" #~ msgstr "Výjimka ve výpočtu s plovoucí čárkou" #~ msgid "Killed" #~ msgstr "Zabit" #~ msgid "Bus error" #~ msgstr "Chyba sběrnice" #~ msgid "Segmentation fault" #~ msgstr "Porušení ochrany paměti" #~ msgid "Broken pipe" #~ msgstr "Porušená roura" #~ msgid "Alarm clock" #~ msgstr "Alarm od hodin" #~ msgid "Terminated" #~ msgstr "Ukončen" #~ msgid "Urgent I/O condition" #~ msgstr "Urgentní stav V/V" #~ msgid "Stopped (signal)" #~ msgstr "Pozastavit (signál)" #~ msgid "Stopped" #~ msgstr "Pozastaven" #~ msgid "Continued" #~ msgstr "Pokračuje" #~ msgid "Child exited" #~ msgstr "Potomek skončil" #~ msgid "Stopped (tty input)" #~ msgstr "Pozastaven (vstup tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Pozastaven (výstup tty)" #~ msgid "I/O possible" #~ msgstr "Možný V/V" #~ msgid "CPU time limit exceeded" #~ msgstr "Překročeno časové omezení procesoru" #~ msgid "File size limit exceeded" #~ msgstr "Překročeno omezení velikosti souboru" #~ msgid "Virtual timer expired" #~ msgstr "Virtuální časovač doběhl" #~ msgid "Profiling timer expired" #~ msgstr "Profilovací časovač doběhl" #~ msgid "Window changed" #~ msgstr "Změnilo se okno" #~ msgid "User defined signal 1" #~ msgstr "Uživatelsky definovaný signál 1" #~ msgid "User defined signal 2" #~ msgstr "Uživatelsky definovaný signál 2" #~ msgid "EMT trap" #~ msgstr "Krokování emulátoru (EMT)" #~ msgid "Bad system call" #~ msgstr "Chybné systémové volání" #~ msgid "Stack fault" #~ msgstr "Porušení zásobníku" #~ msgid "Information request" #~ msgstr "Žádost o informace" #~ msgid "Power failure" #~ msgstr "Selhalo napájení" #~ msgid "Resource lost" #~ msgstr "Prostředek přestal být k dispozici" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "chyba zápisu do zavřené roury nebo soketu" #~ msgid "cannot create pipe" #~ msgstr "nelze vytvořit rouru" #~ msgid "Real-time signal %d" #~ msgstr "Signál reálného času %d" #~ msgid "Unknown signal %d" #~ msgstr "Neznámý signál %d" #~ msgid "iconv function not usable" #~ msgstr "funkce iconv není použitelná" #~ msgid "iconv function not available" #~ msgstr "funkce iconv není dostupná" #~ msgid "character out of range" #~ msgstr "znak je mimo rozsah" #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "znak U+%04X nelze převést do místní znakové sady" #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "znak U+%04X nelze převést do místní znakové sady: %s" #~ msgid "invalid user" #~ msgstr "neplatný uživatel" #~ msgid "invalid group" #~ msgstr "neplatná skupina" #~ msgid "invalid spec" #~ msgstr "neplatné zadání" #~ msgid "unable to display error message" #~ msgstr "nelze zobrazit chybovou zprávu" #~ msgid "Packaged by %s (%s)\n" #~ msgstr "Zabalil %s (%s)\n" #~ msgid "Packaged by %s\n" #~ msgstr "Zabalil %s\n" #~ msgid "(C)" #~ msgstr "©" #~ msgid "" #~ "\n" #~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "This is free software: you are free to change and redistribute it.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl." #~ "html>.\n" #~ "Jde o svobodný software: můžete jej volně měnit a šířit.\n" #~ "Nejsou poskytovány ŽÁDNÉ ZÁRUKY, mimo těch daných zákonem.\n" #~ "\n" #~ msgid "Written by %s.\n" #~ msgstr "Napsal %s.\n" #~ msgid "Written by %s and %s.\n" #~ msgstr "Napsali %s a %s.\n" #~ msgid "Written by %s, %s, and %s.\n" #~ msgstr "Napsali %s, %s a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Napsali %s, %s, %s\n" #~ "a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Napsali %s, %s, %s,\n" #~ "%s a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, and %s.\n" #~ msgstr "" #~ "Napsali %s, %s, %s,\n" #~ "%s, %s a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, and %s.\n" #~ msgstr "" #~ "Napsali %s, %s, %s,\n" #~ "%s, %s, %s a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "and %s.\n" #~ msgstr "" #~ "Napsali %s, %s, %s,\n" #~ "%s, %s, %s, %s\n" #~ "a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, and %s.\n" #~ msgstr "" #~ "Napsali %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s a %s.\n" #~ msgid "" #~ "Written by %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s, and others.\n" #~ msgstr "" #~ "Napsali %s, %s, %s,\n" #~ "%s, %s, %s, %s,\n" #~ "%s, %s a další.\n" #~ msgid "" #~ "\n" #~ "Report bugs to: %s\n" #~ msgstr "" #~ "\n" #~ "Chyby hlaste na: %s\n" #~ msgid "Report %s bugs to: %s\n" #~ msgstr "Chyby balíčku %s hlaste na: %s\n" #~ msgid "%s home page: <%s>\n" #~ msgstr "Domovská stránka projektu %s: <%s>\n" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Domovská stránka projektu %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" #~ msgstr "" #~ "Obecná nápověda k používání softwaru GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "_open_osfhandle failed" #~ msgstr "selhala funkce _open_osfhandle" #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "nelze obnovit fd %d: selhala funkce dup2" #~ msgid "%s subprocess" #~ msgstr "podřízený proces %s" #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "podřízený proces %s obdržel kritický signál %d" #~ msgid "stdin" #~ msgstr "standardní vstup" #~ msgid "stdout" #~ msgstr "standardní výstup" #~ msgid "stderr" #~ msgstr "standardní chybový výstup" #~ msgid "unknown stream" #~ msgstr "neznámý proud" #~ msgid "failed to reopen %s with mode %s" #~ msgstr "selhalo opětovné otevření %s v režimu %s" #~ msgid "string comparison failed" #~ msgstr "selhalo porovnání řetězců" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Problém obejdete nastavením LC_ALL='C'." #~ msgid "The strings compared were %s and %s." #~ msgstr "Porovnávané řetězce byly %s a %s." #~ msgid "cannot perform formatted output" #~ msgstr "nelze provést formátovaný výstup" #~ msgid "invalid %s%s argument `%s'" #~ msgstr "neplatný argument „%3$s“ pro %1$s%2$s" #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "neplatná přípona v argumentu „%3$s“ pro %1$s%2$s" #~ msgid "%s%s argument `%s' too large" #~ msgstr "argument „%3$s“ pro %1$s%2$s je příliš velký" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/mbchar.c����������������������������������������������������������������������������0000644�0000000�0000000�00000002340�12116370307�011646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2001, 2006, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #define MBCHAR_INLINE _GL_EXTERN_INLINE #include <limits.h> #include "mbchar.h" #if IS_BASIC_ASCII /* Bit table of characters in the ISO C "basic character set". */ const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] = { 0x00001a00, /* '\t' '\v' '\f' */ 0xffffffef, /* ' '...'#' '%'...'?' */ 0xfffffffe, /* 'A'...'Z' '[' '\\' ']' '^' '_' */ 0x7ffffffe /* 'a'...'z' '{' '|' '}' '~' */ /* The remaining bits are 0. */ }; #endif /* IS_BASIC_ASCII */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/mbsinit.c���������������������������������������������������������������������������0000644�0000000�0000000�00000003703�12116370307�012063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Test for initial conversion state. Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> #include "verify.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, 'mbstate_t' is defined as 'int'. */ int mbsinit (const mbstate_t *ps) { return ps == NULL || *ps == 0; } #else /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs() and wcrtomb(), wcsrtombs(). We assume that - sizeof (mbstate_t) >= 4, - only stateless encodings are supported (such as UTF-8 and EUC-JP, but not ISO-2022 variants), - for each encoding, the number of bytes for a wide character is <= 4. (This maximum is attained for UTF-8, GB18030, EUC-TW.) We define the meaning of mbstate_t as follows: - In mb -> wc direction, mbstate_t's first byte contains the number of buffered bytes (in the range 0..3), followed by up to 3 buffered bytes. - In wc -> mb direction, mbstate_t contains no information. In other words, it is always in the initial state. */ verify (sizeof (mbstate_t) >= 4); int mbsinit (const mbstate_t *ps) { const char *pstate = (const char *)ps; return pstate == NULL || pstate[0] == 0; } #endif �������������������������������������������������������������wdiff-1.2.1/lib/wchar.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000101675�12116370307�012143� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for ISO C99 <wchar.h>, for platforms that have issues. Copyright (C) 2007-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Written by Eric Blake. */ /* * ISO C 99 <wchar.h> for platforms that have issues. * <http://www.opengroup.org/susv3xbd/wchar.h.html> * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H /* Special invocation convention: - Inside glibc and uClibc header files. - On HP-UX 11.00 we have a sequence of nested includes <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>, once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's <wchar.h>. - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and the latter includes <wchar.h>. But here, we have no way to detect whether <wctype.h> is completely included or is still being included. */ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H #if @HAVE_FEATURES_H@ # include <features.h> /* for __GLIBC__ */ #endif /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. In some builds of uClibc, <wchar.h> is nonexistent and wchar_t is defined by <stddef.h>. But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> #endif #ifndef __GLIBC__ # include <stdio.h> # include <time.h> #endif /* Include the original <wchar.h> if it exists. Some builds of uClibc lack it. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCHAR_H@ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ #endif #undef _GL_ALREADY_INCLUDING_WCHAR_H #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>. This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if defined _MSC_VER # if !GNULIB_defined_wint_t # include <crtdefs.h> typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for implementing mbrtowc for encodings like UTF-8. */ #if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t typedef int rpl_mbstate_t; # undef mbstate_t # define mbstate_t rpl_mbstate_t # define GNULIB_defined_mbstate_t 1 # endif #endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ # if @REPLACE_BTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef btowc # define btowc rpl_btowc # endif _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # else # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (btowc, wint_t, (int c)); # endif _GL_CXXALIASWARN (btowc); #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC _GL_WARN_ON_USE (btowc, "btowc is unportable - " "use gnulib module btowc for portability"); # endif #endif /* Convert a wide character to a single-byte character. */ #if @GNULIB_WCTOB@ # if @REPLACE_WCTOB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctob # define wctob rpl_wctob # endif _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); # else # if !defined wctob && !@HAVE_DECL_WCTOB@ /* wctob is provided by gnulib, or wctob exists but is not declared. */ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif _GL_CXXALIASWARN (wctob); #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB _GL_WARN_ON_USE (wctob, "wctob is unportable - " "use gnulib module wctob for portability"); # endif #endif /* Test whether *PS is in the initial state. */ #if @GNULIB_MBSINIT@ # if @REPLACE_MBSINIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsinit # define mbsinit rpl_mbsinit # endif _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); # else # if !@HAVE_MBSINIT@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsinit); #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " "use gnulib module mbsinit for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBRTOWC@ # if @REPLACE_MBRTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrtowc # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrtowc); #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " "use gnulib module mbrtowc for portability"); # endif #endif /* Recognize a multibyte character. */ #if @GNULIB_MBRLEN@ # if @REPLACE_MBRLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrlen # define mbrlen rpl_mbrlen # endif _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRLEN@ _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrlen); #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " "use gnulib module mbrlen for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSRTOWCS@ # if @REPLACE_MBSRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsrtowcs # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " "use gnulib module mbsrtowcs for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSNRTOWCS@ # if @REPLACE_MBSNRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsnrtowcs # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsnrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsnrtowcs # if HAVE_RAW_DECL_MBSNRTOWCS _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " "use gnulib module mbsnrtowcs for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCRTOMB@ # if @REPLACE_WCRTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # else # if !@HAVE_WCRTOMB@ _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcrtomb); #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " "use gnulib module wcrtomb for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSRTOMBS@ # if @REPLACE_WCSRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsrtombs # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " "use gnulib module wcsrtombs for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSNRTOMBS@ # if @REPLACE_WCSNRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsnrtombs # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSNRTOMBS@ _GL_FUNCDECL_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsnrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " "use gnulib module wcsnrtombs for portability"); # endif #endif /* Return the number of screen columns needed for WC. */ #if @GNULIB_WCWIDTH@ # if @REPLACE_WCWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcwidth # define wcwidth rpl_wcwidth # endif _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # else # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif _GL_CXXALIASWARN (wcwidth); #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " "use gnulib module wcwidth for portability"); # endif #endif /* Search N wide characters of S for C. */ #if @GNULIB_WMEMCHR@ # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (wmemchr, wchar_t *, (const wchar_t *, wchar_t, size_t), const wchar_t *, (const wchar_t *, wchar_t, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # else _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " "use gnulib module wmemchr for portability"); # endif #endif /* Compare N wide characters of S1 and S2. */ #if @GNULIB_WMEMCMP@ # if !@HAVE_WMEMCMP@ _GL_FUNCDECL_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wmemcmp); #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " "use gnulib module wmemcmp for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. */ #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemcpy); #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " "use gnulib module wmemcpy for portability"); # endif #endif /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ #if @GNULIB_WMEMMOVE@ # if !@HAVE_WMEMMOVE@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemmove); #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " "use gnulib module wmemmove for portability"); # endif #endif /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN (wmemset); #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " "use gnulib module wmemset for portability"); # endif #endif /* Return the number of wide characters in S. */ #if @GNULIB_WCSLEN@ # if !@HAVE_WCSLEN@ _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); _GL_CXXALIASWARN (wcslen); #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " "use gnulib module wcslen for portability"); # endif #endif /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ # if !@HAVE_WCSNLEN@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); _GL_CXXALIASWARN (wcsnlen); #elif defined GNULIB_POSIXCHECK # undef wcsnlen # if HAVE_RAW_DECL_WCSNLEN _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " "use gnulib module wcsnlen for portability"); # endif #endif /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscpy); #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " "use gnulib module wcscpy for portability"); # endif #endif /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ # if !@HAVE_WCPCPY@ _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy # if HAVE_RAW_DECL_WCPCPY _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " "use gnulib module wcpcpy for portability"); # endif #endif /* Copy no more than N wide characters of SRC to DEST. */ #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncpy); #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " "use gnulib module wcsncpy for portability"); # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ # if !@HAVE_WCPNCPY@ _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy # if HAVE_RAW_DECL_WCPNCPY _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " "use gnulib module wcpncpy for portability"); # endif #endif /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscat); #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " "use gnulib module wcscat for portability"); # endif #endif /* Append no more than N wide characters of SRC onto DEST. */ #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncat); #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " "use gnulib module wcsncat for portability"); # endif #endif /* Compare S1 and S2. */ #if @GNULIB_WCSCMP@ # if !@HAVE_WCSCMP@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscmp); #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " "use gnulib module wcscmp for portability"); # endif #endif /* Compare no more than N wide characters of S1 and S2. */ #if @GNULIB_WCSNCMP@ # if !@HAVE_WCSNCMP@ _GL_FUNCDECL_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncmp); #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " "use gnulib module wcsncmp for portability"); # endif #endif /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ # if !@HAVE_WCSCASECMP@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscasecmp); #elif defined GNULIB_POSIXCHECK # undef wcscasecmp # if HAVE_RAW_DECL_WCSCASECMP _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " "use gnulib module wcscasecmp for portability"); # endif #endif /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ # if !@HAVE_WCSNCASECMP@ _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncasecmp); #elif defined GNULIB_POSIXCHECK # undef wcsncasecmp # if HAVE_RAW_DECL_WCSNCASECMP _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " "use gnulib module wcsncasecmp for portability"); # endif #endif /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE category of the current locale. */ #if @GNULIB_WCSCOLL@ # if !@HAVE_WCSCOLL@ _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscoll); #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " "use gnulib module wcscoll for portability"); # endif #endif /* Transform S2 into array pointed to by S1 such that if wcscmp is applied to two transformed strings the result is the as applying 'wcscoll' to the original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); # endif _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsxfrm); #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " "use gnulib module wcsxfrm for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ # if !@HAVE_WCSDUP@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); _GL_CXXALIASWARN (wcsdup); #elif defined GNULIB_POSIXCHECK # undef wcsdup # if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); # endif #endif /* Find the first occurrence of WC in WCS. */ #if @GNULIB_WCSCHR@ # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcschr (const wchar_t *, wchar_t); wchar_t * std::wcschr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcschr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " "use gnulib module wcschr for portability"); # endif #endif /* Find the last occurrence of WC in WCS. */ #if @GNULIB_WCSRCHR@ # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); wchar_t * std::wcsrchr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " "use gnulib module wcsrchr for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters not in REJECT. */ #if @GNULIB_WCSCSPN@ # if !@HAVE_WCSCSPN@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); _GL_CXXALIASWARN (wcscspn); #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " "use gnulib module wcscspn for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters in ACCEPT. */ #if @GNULIB_WCSSPN@ # if !@HAVE_WCSSPN@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN (wcsspn); #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " "use gnulib module wcsspn for portability"); # endif #endif /* Find the first occurrence in WCS of any character in ACCEPT. */ #if @GNULIB_WCSPBRK@ # if !@HAVE_WCSPBRK@ _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcspbrk, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # else _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " "use gnulib module wcspbrk for portability"); # endif #endif /* Find the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, (wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # else _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " "use gnulib module wcsstr for portability"); # endif #endif /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ # if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); # endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); _GL_CXXALIASWARN (wcstok); #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " "use gnulib module wcstok for portability"); # endif #endif /* Determine number of column positions required for first N wide characters (or fewer if S ends before this) in S. */ #if @GNULIB_WCSWIDTH@ # if @REPLACE_WCSWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcswidth # define wcswidth rpl_wcswidth # endif _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); # else # if !@HAVE_WCSWIDTH@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif _GL_CXXALIASWARN (wcswidth); #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " "use gnulib module wcswidth for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif �������������������������������������������������������������������wdiff-1.2.1/lib/stddef.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000005232�12116370307�012300� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. Copyright (C) 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Written by Eric Blake. */ /* * POSIX 2008 <stddef.h> for platforms that have issues. * <http://www.opengroup.org/susv3xbd/stddef.h.html> */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of <stddef.h> that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by <stddef.h>. Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # undef _@GUARD_PREFIX@_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ #if @REPLACE_NULL@ # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif #endif /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000337751�12116513165�012335� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.13.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <http://www.gnu.org/licenses/>. # # 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. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --po-base=lib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --po-domain=wdiff canonicalize-lgpl dup2 error gendocs getline getopt gettext locale maintainer-makefile mbsrchr regex setenv strstr-simple sys_stat sys_wait unistd vasprintf xalloc xmalloc VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 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 = : build_triplet = @build@ host_triplet = @host@ @LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_1 = uniwidth/width.c subdir = lib DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/getdelim.m4 \ $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/iswblank.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readlink.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/time_h.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \ $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am__libgnu_a_SOURCES_DIST = exitfail.c gettext.h localcharset.h \ localcharset.c malloca.c mbchar.c mbsrchr.c mbuiter.h \ mbuiter.c size_max.h strnlen1.h strnlen1.c unistd.c \ uniwidth/width.c wctype-h.c xmalloc.c xalloc-die.c xsize.h \ xsize.c am__dirstamp = $(am__leading_dot)dirstamp @LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_1 = uniwidth/width.$(OBJEXT) am_libgnu_a_OBJECTS = exitfail.$(OBJEXT) localcharset.$(OBJEXT) \ malloca.$(OBJEXT) mbchar.$(OBJEXT) mbsrchr.$(OBJEXT) \ mbuiter.$(OBJEXT) strnlen1.$(OBJEXT) unistd.$(OBJEXT) \ $(am__objects_1) wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) \ xalloc-die.$(OBJEXT) xsize.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) DIST_SOURCES = $(am__libgnu_a_SOURCES_DIST) $(EXTRA_libgnu_a_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOM4TE = @AUTOM4TE@ AUTOMAKE = @AUTOMAKE@ AUTOTEST = @AUTOTEST@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ EXPERIMENTAL = @EXPERIMENTAL@ EXPERIMENTAL_MANS = @EXPERIMENTAL_MANS@ EXPERIMENTAL_PROGRAMS = @EXPERIMENTAL_PROGRAMS@ EXPERIMENTAL_TEXI = @EXPERIMENTAL_TEXI@ FLOAT_H = @FLOAT_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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 = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects SUBDIRS = po noinst_HEADERS = noinst_LIBRARIES = libgnu.a noinst_LTLIBRARIES = EXTRA_DIST = alloca.in.h btowc.c canonicalize-lgpl.c dosname.h dup2.c \ errno.in.h error.c error.h exitfail.h float.c float.in.h \ itold.c $(top_srcdir)/build-aux/gendocs.sh getdelim.c \ getline.c getopt.c getopt.in.h getopt1.c getopt_int.h \ $(top_srcdir)/build-aux/config.rpath $(top_srcdir)/GNUmakefile \ $(top_srcdir)/build-aux/config.rpath intprops.h iswblank.c \ langinfo.in.h config.charset ref-add.sin ref-del.sin \ locale.in.h localeconv.c lstat.c $(top_srcdir)/maint.mk \ malloc.c malloc.c malloca.h malloca.valgrind mbchar.h \ mbrtowc.c mbsinit.c mbtowc-impl.h mbtowc.c memchr.c \ memchr.valgrind msvc-inval.c msvc-inval.h msvc-nothrow.c \ msvc-nothrow.h nl_langinfo.c pathmax.h readlink.c realloc.c \ regcomp.c regex.c regex.h regex_internal.c regex_internal.h \ regexec.c setenv.c $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h stat.c \ stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \ streq.h strerror.c strerror-override.c strerror-override.h \ string.in.h str-two-way.h strstr.c sys_stat.in.h \ sys_types.in.h sys_wait.in.h time.in.h unistd.in.h \ unitypes.in.h localcharset.h uniwidth.in.h uniwidth/cjk.h \ $(top_srcdir)/build-aux/useless-if-before-free asnprintf.c \ float+.h printf-args.c printf-args.h printf-parse.c \ printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \ vasprintf.c $(top_srcdir)/build-aux/vc-list-files verify.h \ wchar.in.h wcrtomb.c wctype.in.h wcwidth.c xalloc.h \ xalloc-oversized.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES = $(ALLOCA_H) configmake.h $(ERRNO_H) $(FLOAT_H) \ $(GETOPT_H) langinfo.h locale.h arg-nonnull.h c++defs.h \ warn-on-use.h $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \ stdlib.h string.h sys/stat.h sys/types.h sys/wait.h time.h \ unistd.h $(LIBUNISTRING_UNITYPES_H) $(LIBUNISTRING_UNIWIDTH_H) \ wchar.h wctype.h SUFFIXES = .sed .sin MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t errno.h \ errno.h-t float.h float.h-t getopt.h getopt.h-t langinfo.h \ langinfo.h-t locale.h locale.h-t arg-nonnull.h arg-nonnull.h-t \ c++defs.h c++defs.h-t warn-on-use.h warn-on-use.h-t stdbool.h \ stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t stdio.h \ stdio.h-t stdlib.h stdlib.h-t string.h string.h-t sys/stat.h \ sys/stat.h-t sys/types.h sys/types.h-t sys/wait.h sys/wait.h-t \ time.h time.h-t unistd.h unistd.h-t unitypes.h unitypes.h-t \ uniwidth.h uniwidth.h-t wchar.h wchar.h-t wctype.h wctype.h-t MOSTLYCLEANDIRS = sys sys CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ ref-del.sed DISTCLEANFILES = MAINTAINERCLEANFILES = # This is for those projects which use "gettextize --intl" to put a source-code # copy of libintl into their package. In such projects, every Makefile.am needs # -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory. # For the Makefile.ams in other directories it is the maintainer's # responsibility; for the one from gnulib we do it here. # This option has no effect when the user disables NLS (because then the intl # directory contains no libintl.h file) or when the project does not use # "gettextize --intl". AM_CPPFLAGS = -DDEFAULT_TEXT_DOMAIN=\"wdiff-gnulib\" \ -I$(top_builddir)/intl AM_CFLAGS = libgnu_a_SOURCES = exitfail.c gettext.h localcharset.h localcharset.c \ malloca.c mbchar.c mbsrchr.c mbuiter.h mbuiter.c size_max.h \ strnlen1.h strnlen1.c unistd.c $(am__append_1) wctype-h.c \ xmalloc.c xalloc-die.c xsize.h xsize.c libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = btowc.c canonicalize-lgpl.c dup2.c error.c \ float.c itold.c getdelim.c getline.c getopt.c getopt1.c \ iswblank.c localeconv.c lstat.c malloc.c malloc.c mbrtowc.c \ mbsinit.c mbtowc.c memchr.c msvc-inval.c msvc-nothrow.c \ nl_langinfo.c readlink.c realloc.c regcomp.c regex.c \ regex_internal.c regexec.c setenv.c stat.c strerror.c \ strerror-override.c strstr.c asnprintf.c printf-args.c \ printf-parse.c vasnprintf.c asprintf.c vasprintf.c wcrtomb.c \ wcwidth.c charset_alias = $(DESTDIR)$(libdir)/charset.alias charset_tmp = $(DESTDIR)$(libdir)/charset.tmp # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h ARG_NONNULL_H = arg-nonnull.h CXXDEFS_H = c++defs.h WARN_ON_USE_H = warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .sed .sin .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits lib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) uniwidth/$(am__dirstamp): @$(MKDIR_P) uniwidth @: > uniwidth/$(am__dirstamp) uniwidth/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) uniwidth/$(DEPDIR) @: > uniwidth/$(DEPDIR)/$(am__dirstamp) uniwidth/width.$(OBJEXT): uniwidth/$(am__dirstamp) \ uniwidth/$(DEPDIR)/$(am__dirstamp) libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES) $(AM_V_at)-rm -f libgnu.a $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) $(AM_V_at)$(RANLIB) libgnu.a clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f uniwidth/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdelim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iswblank.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbuiter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strstr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/width.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # 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. $(am__recursive_targets): @fail= 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//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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; \ ($(am__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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ 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 || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local installdirs: installdirs-recursive installdirs-am: 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp) -rm -f uniwidth/$(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) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) uniwidth/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-local distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-exec-local install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) uniwidth/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ check check-am clean clean-generic clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-exec-local \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \ tags-am uninstall uninstall-am uninstall-local # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # Listed in the same order as the GNU makefile conventions, and # provided by autoconf 2.59c+. # The Automake-defined pkg* macros are appended, in the order # listed in the Automake 1.10a+ documentation. configmake.h: Makefile $(AM_V_GEN)rm -f $@-t && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#define PREFIX "$(prefix)"'; \ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ echo '#define BINDIR "$(bindir)"'; \ echo '#define SBINDIR "$(sbindir)"'; \ echo '#define LIBEXECDIR "$(libexecdir)"'; \ echo '#define DATAROOTDIR "$(datarootdir)"'; \ echo '#define DATADIR "$(datadir)"'; \ echo '#define SYSCONFDIR "$(sysconfdir)"'; \ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ echo '#define INCLUDEDIR "$(includedir)"'; \ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ echo '#define DOCDIR "$(docdir)"'; \ echo '#define INFODIR "$(infodir)"'; \ echo '#define HTMLDIR "$(htmldir)"'; \ echo '#define DVIDIR "$(dvidir)"'; \ echo '#define PDFDIR "$(pdfdir)"'; \ echo '#define PSDIR "$(psdir)"'; \ echo '#define LIBDIR "$(libdir)"'; \ echo '#define LISPDIR "$(lispdir)"'; \ echo '#define LOCALEDIR "$(localedir)"'; \ echo '#define MANDIR "$(mandir)"'; \ echo '#define MANEXT "$(manext)"'; \ echo '#define PKGDATADIR "$(pkgdatadir)"'; \ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ echo '#define PKGLIBDIR "$(pkglibdir)"'; \ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ } | sed '/""/d' > $@-t && \ mv -f $@-t $@ # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ @GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ @GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create <float.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_FLOAT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_FLOAT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ < $(srcdir)/float.in.h; \ @GL_GENERATE_FLOAT_H_TRUE@ } > $@-t && \ @GL_GENERATE_FLOAT_H_TRUE@ mv $@-t $@ @GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_FALSE@ rm -f $@ # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/getopt.in.h; \ } > $@-t && \ mv -f $@-t $@ distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile # We need the following in order to create an empty placeholder for # <langinfo.h> when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing # packages so that "make uninstall" will remove the file if and only if it # is not used by another installed package. # On systems with glibc-2.1 or newer, the file is redundant, therefore we # avoid installing it. all-local: charset.alias ref-add.sed ref-del.sed install-exec-local: install-exec-localcharset install-exec-localcharset: all-local if test $(GLIBC21) = no; then \ case '$(host_os)' in \ darwin[56]*) \ need_charset_alias=true ;; \ darwin* | cygwin* | mingw* | pw32* | cegcc*) \ need_charset_alias=false ;; \ *) \ need_charset_alias=true ;; \ esac ; \ else \ need_charset_alias=false ; \ fi ; \ if $$need_charset_alias; then \ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ fi ; \ if test -f $(charset_alias); then \ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ else \ if $$need_charset_alias; then \ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ fi ; \ fi uninstall-local: uninstall-localcharset uninstall-localcharset: all-local if test -f $(charset_alias); then \ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ if grep '^# Packages using this file: $$' $(charset_tmp) \ > /dev/null; then \ rm -f $(charset_alias); \ else \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ fi; \ rm -f $(charset_tmp); \ fi charset.alias: config.charset $(AM_V_GEN)rm -f t-$@ $@ && \ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ mv t-$@ $@ .sin.sed: $(AM_V_GEN)rm -f t-$@ $@ && \ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ mv t-$@ $@ # We need the following in order to create <locale.h> when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ # We need the following in order to create <stdbool.h> when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create <stddef.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <stdlib.h> when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <sys/types.h> when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <sys/wait.h> when the system # has one that is incomplete. sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_WAIT_H''@|$(NEXT_SYS_WAIT_H)|g' \ -e 's/@''GNULIB_WAITPID''@/$(GNULIB_WAITPID)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_wait.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ uniwidth.h: uniwidth.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/uniwidth.in.h; \ } > $@-t && \ mv -f $@-t $@ # We need the following in order to create <wchar.h> when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <wctype.h> when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ } > $@-t && \ mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # 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: �����������������������wdiff-1.2.1/lib/strerror-override.h�����������������������������������������������������������������0000644�0000000�0000000�00000003717�12116370307�014127� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H # include <errno.h> # include <stddef.h> /* Reasonable buffer size that should never trigger ERANGE; if this proves too small, we intentionally abort(), to remind us to fix this value. */ # define STACKBUF_LEN 256 /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ # if REPLACE_STRERROR_0 \ || GNULIB_defined_ESOCK \ || GNULIB_defined_ESTREAMS \ || GNULIB_defined_EWINSOCK \ || GNULIB_defined_ENOMSG \ || GNULIB_defined_EIDRM \ || GNULIB_defined_ENOLINK \ || GNULIB_defined_EPROTO \ || GNULIB_defined_EMULTIHOP \ || GNULIB_defined_EBADMSG \ || GNULIB_defined_EOVERFLOW \ || GNULIB_defined_ENOTSUP \ || GNULIB_defined_ENETRESET \ || GNULIB_defined_ECONNABORTED \ || GNULIB_defined_ESTALE \ || GNULIB_defined_EDQUOT \ || GNULIB_defined_ECANCELED \ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ extern const char *strerror_override (int errnum); # else # define strerror_override(ignored) NULL # endif #endif /* _GL_STRERROR_OVERRIDE_H */ �������������������������������������������������wdiff-1.2.1/lib/uniwidth.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000004111�12116370307�012655� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Display width functions. Copyright (C) 2001-2002, 2005, 2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _UNIWIDTH_H #define _UNIWIDTH_H #include "unitypes.h" /* Get size_t. */ #include <stddef.h> /* Get locale_charset() declaration. */ #include "localcharset.h" #ifdef __cplusplus extern "C" { #endif /* Display width. */ /* These functions are locale dependent. The encoding argument identifies the encoding (e.g. "ISO-8859-2" for Polish). */ /* Determine number of column positions required for UC. */ extern int uc_width (ucs4_t uc, const char *encoding) _UC_ATTRIBUTE_PURE; /* Determine number of column positions required for first N units (or fewer if S ends before this) in S. */ extern int u8_width (const uint8_t *s, size_t n, const char *encoding) _UC_ATTRIBUTE_PURE; extern int u16_width (const uint16_t *s, size_t n, const char *encoding) _UC_ATTRIBUTE_PURE; extern int u32_width (const uint32_t *s, size_t n, const char *encoding) _UC_ATTRIBUTE_PURE; /* Determine number of column positions required for S. */ extern int u8_strwidth (const uint8_t *s, const char *encoding) _UC_ATTRIBUTE_PURE; extern int u16_strwidth (const uint16_t *s, const char *encoding) _UC_ATTRIBUTE_PURE; extern int u32_strwidth (const uint32_t *s, const char *encoding) _UC_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* _UNIWIDTH_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/strnlen1.c��������������������������������������������������������������������������0000644�0000000�0000000�00000002365�12116370307�012167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Find the length of STRING + 1, but scan at most MAXLEN bytes. Copyright (C) 2005-2006, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "strnlen1.h" #include <string.h> /* Find the length of STRING + 1, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many characters, return MAXLEN. */ /* This is the same as strnlen (string, maxlen - 1) + 1. */ size_t strnlen1 (const char *string, size_t maxlen) { const char *end = (const char *) memchr (string, '\0', maxlen); if (end != NULL) return end - string + 1; else return maxlen; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/malloca.c���������������������������������������������������������������������������0000644�0000000�0000000�00000011657�12116370307�012035� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. 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 3, 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, see <http://www.gnu.org/licenses/>. */ #define _GL_USE_STDLIB_ALLOC 1 #include <config.h> /* Specification. */ #include "malloca.h" #include <stdint.h> #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. */ #if HAVE_ALLOCA /* Store the mmalloca() results in a hash table. This is needed to reliably distinguish a mmalloca() result and an alloca() result. Although it is possible that the same pointer is returned by alloca() and by mmalloca() at different times in the same application, it does not lead to a bug in freea(), because: - Before a pointer returned by alloca() can point into malloc()ed memory, the function must return, and once this has happened the programmer must not call freea() on it anyway. - Before a pointer returned by mmalloca() can point into the stack, it must be freed. The only function that can free it is freea(), and when freea() frees it, it also removes it from the hash table. */ #define MAGIC_NUMBER 0x1415fb4a #define MAGIC_SIZE sizeof (int) /* This is how the header info would look like without any alignment considerations. */ struct preliminary_header { void *next; char room[MAGIC_SIZE]; }; /* But the header's size must be a multiple of sa_alignment_max. */ #define HEADER_SIZE \ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max) struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; }; verify (HEADER_SIZE == sizeof (struct header)); /* We make the hash table quite big, so that during lookups the probability of empty hash buckets is quite high. There is no need to make the hash table resizable, because when the hash table gets filled so much that the lookup becomes slow, it means that the application has memory leaks. */ #define HASH_TABLE_SIZE 257 static void * mmalloca_results[HASH_TABLE_SIZE]; #endif void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, that serves as an indicator for malloc()ed memory, so that freea() of an alloca() result is fast. */ size_t nplus = n + HEADER_SIZE; if (nplus >= n) { char *p = (char *) malloc (nplus); if (p != NULL) { size_t slot; p += HEADER_SIZE; /* Put a magic number into the indicator word. */ ((int *) p)[-1] = MAGIC_NUMBER; /* Enter p into the hash table. */ slot = (uintptr_t) p % HASH_TABLE_SIZE; ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot]; mmalloca_results[slot] = p; return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* mmalloca() may have returned NULL. */ if (p != NULL) { /* Attempt to quickly distinguish the mmalloca() result - which has a magic indicator word - and the alloca() result - which has an uninitialized indicator word. It is for this test that sa_increment additional bytes are allocated in the alloca() case. */ if (((int *) p)[-1] == MAGIC_NUMBER) { /* Looks like a mmalloca() result. To see whether it really is one, perform a lookup in the hash table. */ size_t slot = (uintptr_t) p % HASH_TABLE_SIZE; void **chain = &mmalloca_results[slot]; for (; *chain != NULL;) { if (*chain == p) { /* Found it. Remove it from the hash table and free it. */ char *p_begin = (char *) p - HEADER_SIZE; *chain = ((struct header *) p_begin)->next; free (p_begin); return; } chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next; } } /* At this point, we know it was not a mmalloca() result. */ } } #endif ���������������������������������������������������������������������������������wdiff-1.2.1/lib/vasnprintf.h������������������������������������������������������������������������0000644�0000000�0000000�00000005600�12116370307�012613� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* vsprintf with automatic memory allocation. Copyright (C) 2002-2004, 2007-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _VASNPRINTF_H #define _VASNPRINTF_H /* Get va_list. */ #include <stdarg.h> /* Get size_t. */ #include <stddef.h> /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif #ifdef __cplusplus extern "C" { #endif /* Write formatted output to a string dynamically allocated with malloc(). You can pass a preallocated buffer for the result in RESULTBUF and its size in *LENGTHP; otherwise you pass RESULTBUF = NULL. If successful, return the address of the string (this may be = RESULTBUF if no dynamic memory allocation was necessary) and set *LENGTHP to the number of resulting bytes, excluding the trailing NUL. Upon error, set errno and return NULL. When dynamic memory allocation occurs, the preallocated buffer is left alone (with possibly modified contents). This makes it possible to use a statically allocated or stack-allocated buffer, like this: char buf[100]; size_t len = sizeof (buf); char *output = vasnprintf (buf, &len, format, args); if (output == NULL) ... error handling ...; else { ... use the output string ...; if (output != buf) free (output); } */ #if REPLACE_VASNPRINTF # define asnprintf rpl_asnprintf # define vasnprintf rpl_vasnprintf #endif extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0)); #ifdef __cplusplus } #endif #endif /* _VASNPRINTF_H */ ��������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/dup2.c������������������������������������������������������������������������������0000644�0000000�0000000�00000007165�12116370307�011276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include <fcntl.h> #if HAVE_DUP2 # undef dup2 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> # include "msvc-inval.h" /* Get _get_osfhandle. */ # include "msvc-nothrow.h" static int ms_windows_dup2 (int fd, int desired_fd) { int result; /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, dup2 (fd, fd) returns 0, but all further attempts to use fd in future dup2 calls will hang. */ if (fd == desired_fd) { if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return fd; } /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: http://bugs.winehq.org/show_bug.cgi?id=21289 */ if (desired_fd < 0) { errno = EBADF; return -1; } TRY_MSVC_INVAL { result = dup2 (fd, desired_fd); } CATCH_MSVC_INVAL { errno = EBADF; result = -1; } DONE_MSVC_INVAL; if (result == 0) result = desired_fd; return result; } # define dup2 ms_windows_dup2 # endif int rpl_dup2 (int fd, int desired_fd) { int result; # ifdef F_GETFL /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. On Cygwin 1.5.x, dup2 (1, 1) returns 0. On Cygwin 1.7.17, dup2 (1, -1) dumps core. On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ if (desired_fd < 0) fd = desired_fd; if (fd == desired_fd) return fcntl (fd, F_GETFL) == -1 ? -1 : fd; # endif result = dup2 (fd, desired_fd); /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ if (result == -1 && errno == EMFILE) errno = EBADF; # if REPLACE_FCHDIR if (fd != desired_fd && result != -1) result = _gl_register_dup (fd, result); # endif return result; } #else /* !HAVE_DUP2 */ /* On older platforms, dup2 did not exist. */ # ifndef F_DUPFD static int dupfd (int fd, int desired_fd) { int duplicated_fd = dup (fd); if (duplicated_fd < 0 || duplicated_fd == desired_fd) return duplicated_fd; else { int r = dupfd (fd, desired_fd); int e = errno; close (duplicated_fd); errno = e; return r; } } # endif int dup2 (int fd, int desired_fd) { int result = fcntl (fd, F_GETFL) < 0 ? -1 : fd; if (result == -1 || fd == desired_fd) return result; close (desired_fd); # ifdef F_DUPFD result = fcntl (fd, F_DUPFD, desired_fd); # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif # else result = dupfd (fd, desired_fd); # endif if (result == -1 && (errno == EMFILE || errno == EINVAL)) errno = EBADF; return result; } #endif /* !HAVE_DUP2 */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/nl_langinfo.c�����������������������������������������������������������������������0000644�0000000�0000000�00000015037�12116370307�012707� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* nl_langinfo() replacement: query locale dependent information. Copyright (C) 2007-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <langinfo.h> #if REPLACE_NL_LANGINFO /* Override nl_langinfo with support for added nl_item values. */ # include <locale.h> # include <string.h> # undef nl_langinfo char * rpl_nl_langinfo (nl_item item) { switch (item) { # if GNULIB_defined_CODESET case CODESET: { const char *locale; static char buf[2 + 10 + 1]; locale = setlocale (LC_CTYPE, NULL); if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } } return ""; } # endif # if GNULIB_defined_T_FMT_AMPM case T_FMT_AMPM: return "%I:%M:%S %p"; # endif # if GNULIB_defined_ERA case ERA: /* The format is not standardized. In glibc it is a sequence of strings of the form "direction:offset:start_date:end_date:era_name:era_format" with an empty string at the end. */ return ""; case ERA_D_FMT: /* The %Ex conversion in strftime behaves like %x if the locale does not have an alternative time format. */ item = D_FMT; break; case ERA_D_T_FMT: /* The %Ec conversion in strftime behaves like %c if the locale does not have an alternative time format. */ item = D_T_FMT; break; case ERA_T_FMT: /* The %EX conversion in strftime behaves like %X if the locale does not have an alternative time format. */ item = T_FMT; break; case ALT_DIGITS: /* The format is not standardized. In glibc it is a sequence of 10 strings, appended in memory. */ return "\0\0\0\0\0\0\0\0\0\0"; # endif # if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS case YESEXPR: return "^[yY]"; case NOEXPR: return "^[nN]"; # endif default: break; } return nl_langinfo (item); } #else /* Provide nl_langinfo from scratch. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Native Windows platforms. */ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # include <stdio.h> # else /* An old Unix platform without locales, such as Linux libc5 or BeOS. */ # endif # include <locale.h> char * nl_langinfo (nl_item item) { switch (item) { /* nl_langinfo items of the LC_CTYPE category */ case CODESET: # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { static char buf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number. */ sprintf (buf, "CP%u", GetACP ()); return buf; } # elif defined __BEOS__ return "UTF-8"; # else return "ISO-8859-1"; # endif /* nl_langinfo items of the LC_NUMERIC category */ case RADIXCHAR: return localeconv () ->decimal_point; case THOUSEP: return localeconv () ->thousands_sep; /* nl_langinfo items of the LC_TIME category. TODO: Really use the locale. */ case D_T_FMT: case ERA_D_T_FMT: return "%a %b %e %H:%M:%S %Y"; case D_FMT: case ERA_D_FMT: return "%m/%d/%y"; case T_FMT: case ERA_T_FMT: return "%H:%M:%S"; case T_FMT_AMPM: return "%I:%M:%S %p"; case AM_STR: return "AM"; case PM_STR: return "PM"; case DAY_1: return "Sunday"; case DAY_2: return "Monday"; case DAY_3: return "Tuesday"; case DAY_4: return "Wednesday"; case DAY_5: return "Thursday"; case DAY_6: return "Friday"; case DAY_7: return "Saturday"; case ABDAY_1: return "Sun"; case ABDAY_2: return "Mon"; case ABDAY_3: return "Tue"; case ABDAY_4: return "Wed"; case ABDAY_5: return "Thu"; case ABDAY_6: return "Fri"; case ABDAY_7: return "Sat"; case MON_1: return "January"; case MON_2: return "February"; case MON_3: return "March"; case MON_4: return "April"; case MON_5: return "May"; case MON_6: return "June"; case MON_7: return "July"; case MON_8: return "August"; case MON_9: return "September"; case MON_10: return "October"; case MON_11: return "November"; case MON_12: return "December"; case ABMON_1: return "Jan"; case ABMON_2: return "Feb"; case ABMON_3: return "Mar"; case ABMON_4: return "Apr"; case ABMON_5: return "May"; case ABMON_6: return "Jun"; case ABMON_7: return "Jul"; case ABMON_8: return "Aug"; case ABMON_9: return "Sep"; case ABMON_10: return "Oct"; case ABMON_11: return "Nov"; case ABMON_12: return "Dec"; case ERA: return ""; case ALT_DIGITS: return "\0\0\0\0\0\0\0\0\0\0"; /* nl_langinfo items of the LC_MONETARY category TODO: Really use the locale. */ case CRNCYSTR: return "-"; /* nl_langinfo items of the LC_MESSAGES category TODO: Really use the locale. */ case YESEXPR: return "^[yY]"; case NOEXPR: return "^[nN]"; default: return ""; } } #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/xsize.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000006736�12116370307�011576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xsize.h -- Checked size_t computations. Copyright (C) 2003, 2008-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _XSIZE_H #define _XSIZE_H /* Get size_t. */ #include <stddef.h> /* Get SIZE_MAX. */ #include <limits.h> #if HAVE_STDINT_H # include <stdint.h> #endif _GL_INLINE_HEADER_BEGIN #ifndef XSIZE_INLINE # define XSIZE_INLINE _GL_INLINE #endif /* The size of memory objects is often computed through expressions of type size_t. Example: void* p = malloc (header_size + n * element_size). These computations can lead to overflow. When this happens, malloc() returns a piece of memory that is way too small, and the program then crashes while attempting to fill the memory. To avoid this, the functions and macros in this file check for overflow. The convention is that SIZE_MAX represents overflow. malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc implementation that uses mmap --, it's recommended to use size_overflow_p() or size_in_bounds_p() before invoking malloc(). The example thus becomes: size_t size = xsum (header_size, xtimes (n, element_size)); void *p = (size_in_bounds_p (size) ? malloc (size) : NULL); */ /* Convert an arbitrary value >= 0 to type size_t. */ #define xcast_size_t(N) \ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) /* Sum of two sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum (size_t size1, size_t size2) { size_t sum = size1 + size2; return (sum >= size1 ? sum : SIZE_MAX); } /* Sum of three sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum3 (size_t size1, size_t size2, size_t size3) { return xsum (xsum (size1, size2), size3); } /* Sum of four sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) { return xsum (xsum (xsum (size1, size2), size3), size4); } /* Maximum of two sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xmax (size_t size1, size_t size2) { /* No explicit check is needed here, because for any n: max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */ return (size1 >= size2 ? size1 : size2); } /* Multiplication of a count with an element size, with overflow check. The count must be >= 0 and the element size must be > 0. This is a macro, not a function, so that it works correctly even when N is of a wider type and N > SIZE_MAX. */ #define xtimes(N, ELSIZE) \ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX) /* Check for overflow. */ #define size_overflow_p(SIZE) \ ((SIZE) == SIZE_MAX) /* Check against overflow. */ #define size_in_bounds_p(SIZE) \ ((SIZE) != SIZE_MAX) _GL_INLINE_HEADER_END #endif /* _XSIZE_H */ ����������������������������������wdiff-1.2.1/lib/btowc.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000002107�12116370307�011531� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert unibyte character to wide character. Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> #include <stdio.h> #include <stdlib.h> wint_t btowc (int c) { if (c != EOF) { char buf[1]; wchar_t wc; buf[0] = c; if (mbtowc (&wc, buf, 1) >= 0) return wc; } return WEOF; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/localcharset.h����������������������������������������������������������������������0000644�0000000�0000000�00000002432�12116370307�013065� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2003, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); #ifdef __cplusplus } #endif #endif /* _LOCALCHARSET_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/error.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000024070�12116370307�011547� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Error handler for noninteractive utilities Copyright (C) 1990-1998, 2000-2007, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */ #if !_LIBC # include <config.h> #endif #include "error.h" #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #if !_LIBC && ENABLE_NLS # include "gettext.h" # define _(msgid) gettext (msgid) #endif #ifdef _LIBC # include <libintl.h> # include <stdbool.h> # include <stdint.h> # include <wchar.h> # define mbsrtowcs __mbsrtowcs #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #ifndef _ # define _(String) String #endif /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ unsigned int error_message_count; #ifdef _LIBC /* In the GNU C library, there is a predefined variable for this. */ # define program_name program_invocation_name # include <errno.h> # include <limits.h> # include <libio/libioP.h> /* In GNU libc we want do not want to use the common name 'error' directly. Instead make it a weak alias. */ extern void __error (int status, int errnum, const char *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) __attribute__ ((__format__ (__printf__, 5, 6)));; # define error __error # define error_at_line __error_at_line # include <libio/iolibio.h> # define fflush(s) INTUSE(_IO_fflush) (s) # undef putc # define putc(c, fp) INTUSE(_IO_putc) (c, fp) # include <bits/libc-lock.h> #else /* not _LIBC */ # include <fcntl.h> # include <unistd.h> # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> /* Get _get_osfhandle. */ # include "msvc-nothrow.h" # endif /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl # if !HAVE_DECL_STRERROR_R # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif # if STRERROR_R_CHAR_P char *strerror_r (); # else int strerror_r (); # endif # endif /* The calling program should define program_name and set it to the name of the executing program. */ extern char *program_name; # if HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r # endif /* HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ #if !_LIBC /* Return non-zero if FD is open. */ static int is_open (int fd) { # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support F_GETFL. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; # else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); # endif } #endif static void flush_stdout (void) { #if !_LIBC int stdout_fd; # if GNULIB_FREOPEN_SAFER /* Use of gnulib's freopen-safer module normally ensures that fileno (stdout) == 1 whenever stdout is open. */ stdout_fd = STDOUT_FILENO; # else /* POSIX states that fileno (stdout) after fclose is unspecified. But in practice it is not a problem, because stdout is statically allocated and the fd of a FILE stream is stored as a field in its allocated memory. */ stdout_fd = fileno (stdout); # endif /* POSIX states that fflush (stdout) after fclose is unspecified; it is safe in glibc, but not on all other platforms. fflush (NULL) is always defined, but too draconian. */ if (0 <= stdout_fd && is_open (stdout_fd)) #endif fflush (stdout); } static void print_errno_message (int errnum) { char const *s; #if defined HAVE_STRERROR_R || _LIBC char errbuf[1024]; # if STRERROR_R_CHAR_P || _LIBC s = __strerror_r (errnum, errbuf, sizeof errbuf); # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) s = errbuf; else s = 0; # endif #else s = strerror (errnum); #endif #if !_LIBC if (! s) s = _("Unknown system error"); #endif #if _LIBC __fxprintf (NULL, ": %s", s); #else fprintf (stderr, ": %s", s); #endif } static void error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { # define ALLOCA_LIMIT 2000 size_t len = strlen (message) + 1; wchar_t *wmessage = NULL; mbstate_t st; size_t res; const char *tmp; bool use_malloc = false; while (1) { if (__libc_use_alloca (len * sizeof (wchar_t))) wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); else { if (!use_malloc) wmessage = NULL; wchar_t *p = (wchar_t *) realloc (wmessage, len * sizeof (wchar_t)); if (p == NULL) { free (wmessage); fputws_unlocked (L"out of memory\n", stderr); return; } wmessage = p; use_malloc = true; } memset (&st, '\0', sizeof (st)); tmp = message; res = mbsrtowcs (wmessage, &tmp, len, &st); if (res != len) break; if (__builtin_expect (len >= SIZE_MAX / 2, 0)) { /* This really should not happen if everything is fine. */ res = (size_t) -1; break; } len *= 2; } if (res == (size_t) -1) { /* The string cannot be converted. */ if (use_malloc) { free (wmessage); use_malloc = false; } wmessage = (wchar_t *) L"???"; } __vfwprintf (stderr, wmessage, args); if (use_malloc) free (wmessage); } else #endif vfprintf (stderr, message, args); va_end (args); ++error_message_count; if (errnum) print_errno_message (errnum); #if _LIBC __fxprintf (NULL, "\n"); #else putc ('\n', stderr); #endif fflush (stderr); if (status) exit (status); } /* Print the program name and error message MESSAGE, which is a printf-style format string with optional args. If ERRNUM is nonzero, print its corresponding system error message. Exit with status STATUS if it is nonzero. */ void error (int status, int errnum, const char *message, ...) { va_list args; #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s: ", program_name); #else fprintf (stderr, "%s: ", program_name); #endif } va_start (args, message); error_tail (status, errnum, message, args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ int error_one_per_line; void error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) { va_list args; if (error_one_per_line) { static const char *old_file_name; static unsigned int old_line_number; if (old_line_number == line_number && (file_name == old_file_name || strcmp (old_file_name, file_name) == 0)) /* Simply return and print nothing. */ return; old_file_name = file_name; old_line_number = line_number; } #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s:", program_name); #else fprintf (stderr, "%s:", program_name); #endif } #if _LIBC __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ", file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", file_name, line_number); #endif va_start (args, message); error_tail (status, errnum, message, args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } #ifdef _LIBC /* Make the weak alias. */ # undef error # undef error_at_line weak_alias (__error, error) weak_alias (__error_at_line, error_at_line) #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/float.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000002504�12116370307�011521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Auxiliary definitions for <float.h>. Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <float.h> #if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__ const union gl_long_double_union gl_LDBL_MAX = { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } }; #elif defined __i386__ const union gl_long_double_union gl_LDBL_MAX = { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } }; #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/gettext.h���������������������������������������������������������������������������0000644�0000000�0000000�00000023416�12116370307�012112� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convenience header for conditional use of GNU <libintl.h>. Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include <libintl.h> /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of <locale.h> a NOP. We don't include <libintl.h> as well because people using "gettext.h" will not include <libintl.h>, and also including <libintl.h> would fail on SunOS 4, whereas <locale.h> is OK. */ #if defined(__sun) # include <locale.h> #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include <libintl.h>, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of <libintl.h> a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include <cstdlib> # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include <libintl.h> # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include <string.h> #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ /* || __STDC_VERSION__ >= 199901L */ ) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 #endif #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include <stdlib.h> #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (translation != msg_ctxt_id) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (!(translation == msg_ctxt_id || translation == msgid_plural)) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/realloc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000004070�12116370307�012035� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* realloc() function that is glibc compatible. Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include <config.h> /* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h. */ #ifdef realloc # define NEED_REALLOC_GNU 1 /* Whereas the gnulib module 'realloc-gnu' defines HAVE_REALLOC_GNU. */ #elif GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU # define NEED_REALLOC_GNU 1 #endif /* Infer the properties of the system's malloc function. The gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #if GNULIB_MALLOC_GNU && HAVE_MALLOC_GNU # define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1 #endif #include <stdlib.h> #include <errno.h> /* Change the size of an allocated block of memory P to N bytes, with error checking. If N is zero, change it to 1. If P is NULL, use malloc. */ void * rpl_realloc (void *p, size_t n) { void *result; #if NEED_REALLOC_GNU if (n == 0) { n = 1; /* In theory realloc might fail, so don't rely on it to free. */ free (p); p = NULL; } #endif if (p == NULL) { #if GNULIB_REALLOC_GNU && !NEED_REALLOC_GNU && !SYSTEM_MALLOC_GLIBC_COMPATIBLE if (n == 0) n = 1; #endif result = malloc (n); } else result = realloc (p, n); #if !HAVE_REALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/xsize.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000000116�12116370307�011553� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #define XSIZE_INLINE _GL_EXTERN_INLINE #include "xsize.h" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/time.in.h���������������������������������������������������������������������������0000644�0000000�0000000�00000021514�12116370307�011766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A more-standard <time.h>. Copyright (C) 2007-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the symbols. Also, Solaris 8 <time.h> eventually includes itself recursively; if that is happening, just include the system <time.h> without adding our own declarations. */ #if (defined __need_time_t || defined __need_clock_t \ || defined __need_timespec \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ # include <stddef.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). Or they define it with the wrong member names or define it in <sys/time.h> (e.g., FreeBSD circa 1997). Stock Mingw does not define it, but the pthreads-win32 library defines it in <pthread.h>. */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include <sys/time.h> # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include <pthread.h> /* The pthreads-win32 <pthread.h> also defines a couple of broken macros. */ # undef asctime_r # undef ctime_r # undef gmtime_r # undef localtime_r # undef rand_r # undef strtok_r # else # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_timespec # undef timespec # define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; # define GNULIB_defined_struct_timespec 1 # endif # ifdef __cplusplus } # endif # endif # endif # if !GNULIB_defined_struct_time_t_must_be_integral /* Per http://austingroupbugs.net/view.php?id=327, POSIX requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See <http://www.opengroup.org/susv3xsh/nanosleep.html>. */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define nanosleep rpl_nanosleep # endif _GL_FUNCDECL_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # else # if ! @HAVE_NANOSLEEP@ _GL_FUNCDECL_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # endif _GL_CXXALIASWARN (nanosleep); # endif /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mktime rpl_mktime # endif _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif _GL_CXXALIASWARN (mktime); # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See <http://www.opengroup.org/susv3xsh/localtime_r.html> and <http://www.opengroup.org/susv3xsh/gmtime_r.html>. */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime_r # define localtime_r rpl_localtime_r # endif _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); # endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r # define gmtime_r rpl_gmtime_r # endif _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); # endif # endif /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See <http://www.opengroup.org/susv3xsh/strptime.html>. */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm)); _GL_CXXALIASWARN (strptime); # endif /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timegm # define timegm rpl_timegm # endif _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); # else # if ! @HAVE_TIMEGM@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); # endif _GL_CXXALIASWARN (timegm); # endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ # if defined GNULIB_POSIXCHECK # undef asctime _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef asctime_r _GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime _GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r _GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/printf-args.c�����������������������������������������������������������������������0000644�0000000�0000000�00000014632�12116370307�012655� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be defined. STATIC Set to 'static' to declare the function static. */ #ifndef PRINTF_FETCHARGS # include <config.h> #endif /* Specification. */ #ifndef PRINTF_FETCHARGS # include "printf-args.h" #endif #ifdef STATIC STATIC #endif int PRINTF_FETCHARGS (va_list args, arguments *a) { size_t i; argument *ap; for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++) switch (ap->type) { case TYPE_SCHAR: ap->a.a_schar = va_arg (args, /*signed char*/ int); break; case TYPE_UCHAR: ap->a.a_uchar = va_arg (args, /*unsigned char*/ int); break; case TYPE_SHORT: ap->a.a_short = va_arg (args, /*short*/ int); break; case TYPE_USHORT: ap->a.a_ushort = va_arg (args, /*unsigned short*/ int); break; case TYPE_INT: ap->a.a_int = va_arg (args, int); break; case TYPE_UINT: ap->a.a_uint = va_arg (args, unsigned int); break; case TYPE_LONGINT: ap->a.a_longint = va_arg (args, long int); break; case TYPE_ULONGINT: ap->a.a_ulongint = va_arg (args, unsigned long int); break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: ap->a.a_longlongint = va_arg (args, long long int); break; case TYPE_ULONGLONGINT: ap->a.a_ulonglongint = va_arg (args, unsigned long long int); break; #endif case TYPE_DOUBLE: ap->a.a_double = va_arg (args, double); break; case TYPE_LONGDOUBLE: ap->a.a_longdouble = va_arg (args, long double); break; case TYPE_CHAR: ap->a.a_char = va_arg (args, int); break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by default argument promotions", this is not the case in mingw32, where wint_t is 'unsigned short'. */ ap->a.a_wide_char = (sizeof (wint_t) < sizeof (int) ? (wint_t) va_arg (args, int) : va_arg (args, wint_t)); break; #endif case TYPE_STRING: ap->a.a_string = va_arg (args, const char *); /* A null pointer is an invalid argument for "%s", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_string == NULL) ap->a.a_string = "(NULL)"; break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: ap->a.a_wide_string = va_arg (args, const wchar_t *); /* A null pointer is an invalid argument for "%ls", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_wide_string == NULL) { static const wchar_t wide_null_string[] = { (wchar_t)'(', (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L', (wchar_t)')', (wchar_t)0 }; ap->a.a_wide_string = wide_null_string; } break; #endif case TYPE_POINTER: ap->a.a_pointer = va_arg (args, void *); break; case TYPE_COUNT_SCHAR_POINTER: ap->a.a_count_schar_pointer = va_arg (args, signed char *); break; case TYPE_COUNT_SHORT_POINTER: ap->a.a_count_short_pointer = va_arg (args, short *); break; case TYPE_COUNT_INT_POINTER: ap->a.a_count_int_pointer = va_arg (args, int *); break; case TYPE_COUNT_LONGINT_POINTER: ap->a.a_count_longint_pointer = va_arg (args, long int *); break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); break; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ case TYPE_U8_STRING: ap->a.a_u8_string = va_arg (args, const uint8_t *); /* A null pointer is an invalid argument for "%U", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u8_string == NULL) { static const uint8_t u8_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u8_string = u8_null_string; } break; case TYPE_U16_STRING: ap->a.a_u16_string = va_arg (args, const uint16_t *); /* A null pointer is an invalid argument for "%lU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u16_string == NULL) { static const uint16_t u16_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u16_string = u16_null_string; } break; case TYPE_U32_STRING: ap->a.a_u32_string = va_arg (args, const uint32_t *); /* A null pointer is an invalid argument for "%llU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u32_string == NULL) { static const uint32_t u32_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u32_string = u32_null_string; } break; #endif default: /* Unknown type. */ return -1; } return 0; } ������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/regex_internal.c��������������������������������������������������������������������0000644�0000000�0000000�00000137020�12116370307�013424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extended regular expression matching and search library. Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) internal_function; static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) internal_function; static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) internal_function; /* Functions for string operation. */ /* This function allocate the buffers. It is necessary to call re_string_reconstruct before using the object. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { reg_errcode_t ret; Idx init_buf_len; /* Ensure at least one character fits into the buffers. */ if (init_len < dfa->mb_cur_max) init_len = dfa->mb_cur_max; init_buf_len = (len + 1 < init_len) ? len + 1: init_len; re_string_construct_common (str, len, pstr, trans, icase, dfa); ret = re_string_realloc_buffers (pstr, init_buf_len); if (BE (ret != REG_NOERROR, 0)) return ret; pstr->word_char = dfa->word_char; pstr->word_ops_used = dfa->word_ops_used; pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; pstr->valid_raw_len = pstr->valid_len; return REG_NOERROR; } /* This function allocate the buffers, and initialize them. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_construct (re_string_t *pstr, const char *str, Idx len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { reg_errcode_t ret; memset (pstr, '\0', sizeof (re_string_t)); re_string_construct_common (str, len, pstr, trans, icase, dfa); if (len > 0) { ret = re_string_realloc_buffers (pstr, len + 1); if (BE (ret != REG_NOERROR, 0)) return ret; } pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; if (icase) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; if (pstr->valid_raw_len >= len) break; if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) break; ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); if (BE (ret != REG_NOERROR, 0)) return ret; } } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (trans != NULL) re_string_translate_buffer (pstr); else { pstr->valid_len = pstr->bufs_len; pstr->valid_raw_len = pstr->bufs_len; } } } return REG_NOERROR; } /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { wint_t *new_wcs; /* Avoid overflow in realloc. */ const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx)); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0)) return REG_ESPACE; new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); if (BE (new_wcs == NULL, 0)) return REG_ESPACE; pstr->wcs = new_wcs; if (pstr->offsets != NULL) { Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len); if (BE (new_offsets == NULL, 0)) return REG_ESPACE; pstr->offsets = new_offsets; } } #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) { unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len); if (BE (new_mbs == NULL, 0)) return REG_ESPACE; pstr->mbs = new_mbs; } pstr->bufs_len = new_buf_len; return REG_NOERROR; } static void internal_function re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { pstr->raw_mbs = (const unsigned char *) str; pstr->len = len; pstr->raw_len = len; pstr->trans = trans; pstr->icase = icase; pstr->mbs_allocated = (trans != NULL || icase); pstr->mb_cur_max = dfa->mb_cur_max; pstr->is_utf8 = dfa->is_utf8; pstr->map_notascii = dfa->map_notascii; pstr->stop = pstr->len; pstr->raw_stop = pstr->stop; } #ifdef RE_ENABLE_I18N /* Build wide character buffer PSTR->WCS. If the byte sequence of the string are: <mb1>(0), <mb1>(1), <mb2>(0), <mb2>(1), <sb3> Then wide character buffer will be: <wc1> , WEOF , <wc2> , WEOF , <wc3> We use WEOF for padding, they indicate that the position isn't a first byte of a multibyte character. Note that this function assumes PSTR->VALID_LEN elements are already built and starts from PSTR->VALID_LEN. */ static void internal_function build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC unsigned char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif mbstate_t prev_st; Idx byte_idx, end_idx, remain_len; size_t mbclen; /* Build the buffers from pstr->valid_len to either pstr->len or pstr->bufs_len. */ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (byte_idx = pstr->valid_len; byte_idx < end_idx;) { wchar_t wc; const char *p; remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; /* Apply the translation if we need. */ if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0)) { /* We treat these cases as a singlebyte character. */ mbclen = 1; wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; if (BE (pstr->trans != NULL, 0)) wc = pstr->trans[wc]; pstr->cur_state = prev_st; } else if (BE (mbclen == (size_t) -2, 0)) { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } /* Write wide character and padding. */ pstr->wcs[byte_idx++] = wc; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; } /* Build wide character buffer PSTR->WCS like build_wcs_buffer, but for REG_ICASE. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; Idx src_idx, byte_idx, end_idx, remain_len; size_t mbclen; #ifdef _LIBC char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else char buf[64]; #endif byte_idx = pstr->valid_len; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; /* The following optimization assumes that ASCII characters can be mapped to wide characters with a simple cast. */ if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed) { while (byte_idx < end_idx) { wchar_t wc; if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]) && mbsinit (&pstr->cur_state)) { /* In case of a singlebyte character. */ pstr->mbs[byte_idx] = toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]); /* The next step uses the assumption that wchar_t is encoded ASCII-safe: all ASCII values can be converted like this. */ pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx]; ++byte_idx; continue; } remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); if (BE (mbclen < (size_t) -2, 1)) { wchar_t wcu = wc; if (iswlower (wc)) { size_t mbcdlen; wcu = towupper (wc); mbcdlen = wcrtomb (buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else { src_idx = byte_idx; goto offsets_needed; } } else memcpy (pstr->mbs + byte_idx, pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen); pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) { /* It is an invalid character, an incomplete character at the end of the string, or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; pstr->mbs[byte_idx] = ch; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; return REG_NOERROR; } else for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;) { wchar_t wc; const char *p; offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; buf[i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen < (size_t) -2, 1)) { wchar_t wcu = wc; if (iswlower (wc)) { size_t mbcdlen; wcu = towupper (wc); mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else if (mbcdlen != (size_t) -1) { size_t i; if (byte_idx + mbcdlen > pstr->bufs_len) { pstr->cur_state = prev_st; break; } if (pstr->offsets == NULL) { pstr->offsets = re_malloc (Idx, pstr->bufs_len); if (pstr->offsets == NULL) return REG_ESPACE; } if (!pstr->offsets_needed) { for (i = 0; i < (size_t) byte_idx; ++i) pstr->offsets[i] = i; pstr->offsets_needed = 1; } memcpy (pstr->mbs + byte_idx, buf, mbcdlen); pstr->wcs[byte_idx] = wcu; pstr->offsets[byte_idx] = src_idx; for (i = 1; i < mbcdlen; ++i) { pstr->offsets[byte_idx + i] = src_idx + (i < mbclen ? i : mbclen - 1); pstr->wcs[byte_idx + i] = WEOF; } pstr->len += mbcdlen - mbclen; if (pstr->raw_stop > src_idx) pstr->stop += mbcdlen - mbclen; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; byte_idx += mbcdlen; src_idx += mbclen; continue; } else memcpy (pstr->mbs + byte_idx, p, mbclen); } else memcpy (pstr->mbs + byte_idx, p, mbclen); if (BE (pstr->offsets_needed != 0, 0)) { size_t i; for (i = 0; i < mbclen; ++i) pstr->offsets[byte_idx + i] = src_idx + i; } src_idx += mbclen; pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) { /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans [ch]; pstr->mbs[byte_idx] = ch; if (BE (pstr->offsets_needed != 0, 0)) pstr->offsets[byte_idx] = src_idx; ++src_idx; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = src_idx; return REG_NOERROR; } /* Skip characters until the index becomes greater than NEW_RAW_IDX. Return the index. */ static Idx internal_function re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; Idx rawbuf_idx; size_t mbclen; wint_t wc = WEOF; /* Skip the characters which are not necessary to check. */ for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len; rawbuf_idx < new_raw_idx;) { wchar_t wc2; Idx remain_len = pstr->raw_len - rawbuf_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) { /* We treat these cases as a single byte character. */ if (mbclen == 0 || remain_len == 0) wc = L'\0'; else wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx); mbclen = 1; pstr->cur_state = prev_st; } else wc = wc2; /* Then proceed the next character. */ rawbuf_idx += mbclen; } *last_wc = wc; return rawbuf_idx; } #endif /* RE_ENABLE_I18N */ /* Build the buffer PSTR->MBS, and apply the translation if we need. This function is used in case of REG_ICASE. */ static void internal_function build_upper_buffer (re_string_t *pstr) { Idx char_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans[ch]; if (islower (ch)) pstr->mbs[char_idx] = toupper (ch); else pstr->mbs[char_idx] = ch; } pstr->valid_len = char_idx; pstr->valid_raw_len = char_idx; } /* Apply TRANS to the buffer in PSTR. */ static void internal_function re_string_translate_buffer (re_string_t *pstr) { Idx buf_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx]; pstr->mbs[buf_idx] = pstr->trans[ch]; } pstr->valid_len = buf_idx; pstr->valid_raw_len = buf_idx; } /* This function re-construct the buffers. Concretely, convert to wide character in case of pstr->mb_cur_max > 1, convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) { Idx offset; if (BE (pstr->raw_mbs_idx <= idx, 0)) offset = idx - pstr->raw_mbs_idx; else { /* Reset buffer. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); #endif /* RE_ENABLE_I18N */ pstr->len = pstr->raw_len; pstr->stop = pstr->raw_stop; pstr->valid_len = 0; pstr->raw_mbs_idx = 0; pstr->valid_raw_len = 0; pstr->offsets_needed = 0; pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (!pstr->mbs_allocated) pstr->mbs = (unsigned char *) pstr->raw_mbs; offset = idx; } if (BE (offset != 0, 1)) { /* Should the already checked characters be kept? */ if (BE (offset < pstr->valid_raw_len, 1)) { /* Yes, move them to the front of the buffer. */ #ifdef RE_ENABLE_I18N if (BE (pstr->offsets_needed, 0)) { Idx low = 0, high = pstr->valid_len, mid; do { mid = (high + low) / 2; if (pstr->offsets[mid] > offset) high = mid; else if (pstr->offsets[mid] < offset) low = mid + 1; else break; } while (low < high); if (pstr->offsets[mid] < offset) ++mid; pstr->tip_context = re_string_context_at (pstr, mid - 1, eflags); /* This can be quite complicated, so handle specially only the common and easy case where the character with different length representation of lower and upper case is present at or after offset. */ if (pstr->valid_len > offset && mid == offset && pstr->offsets[mid] == offset) { memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; for (low = 0; low < pstr->valid_len; low++) pstr->offsets[low] = pstr->offsets[low + offset] - offset; } else { /* Otherwise, just find out how long the partial multibyte character at offset is and fill it with WEOF/255. */ pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; while (mid > 0 && pstr->offsets[mid - 1] == offset) --mid; while (mid < pstr->valid_len) if (pstr->wcs[mid] != WEOF) break; else ++mid; if (mid == pstr->valid_len) pstr->valid_len = 0; else { pstr->valid_len = pstr->offsets[mid] - offset; if (pstr->valid_len) { for (low = 0; low < pstr->valid_len; ++low) pstr->wcs[low] = WEOF; memset (pstr->mbs, 255, pstr->valid_len); } } pstr->valid_raw_len = pstr->valid_len; } } else #endif { pstr->tip_context = re_string_context_at (pstr, offset - 1, eflags); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; #if DEBUG assert (pstr->valid_len > 0); #endif } } else { #ifdef RE_ENABLE_I18N /* No, skip all characters until IDX. */ Idx prev_valid_len = pstr->valid_len; if (BE (pstr->offsets_needed, 0)) { pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; } #endif pstr->valid_len = 0; #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { Idx wcs_idx; wint_t wc = WEOF; if (pstr->is_utf8) { const unsigned char *raw, *p, *end; /* Special case UTF-8. Multi-byte chars start with any byte other than 0x80 - 0xbf. */ raw = pstr->raw_mbs + pstr->raw_mbs_idx; end = raw + (offset - pstr->mb_cur_max); if (end < pstr->raw_mbs) end = pstr->raw_mbs; p = raw + offset - 1; #ifdef _LIBC /* We know the wchar_t encoding is UCS4, so for the simple case, ASCII characters, skip the conversion step. */ if (isascii (*p) && BE (pstr->trans == NULL, 1)) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); /* pstr->valid_len = 0; */ wc = (wchar_t) *p; } else #endif for (; p >= end; --p) if ((*p & 0xc0) != 0x80) { mbstate_t cur_state; wchar_t wc2; Idx mlen = raw + pstr->len - p; unsigned char buf[6]; size_t mbclen; const unsigned char *pp = p; if (BE (pstr->trans != NULL, 0)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) buf[i] = pstr->trans[p[i]]; pp = buf; } /* XXX Don't use mbrtowc, we know which conversion to use (UTF-8 -> UCS4). */ memset (&cur_state, 0, sizeof (cur_state)); mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, &cur_state); if (raw + offset - p <= mbclen && mbclen < (size_t) -2) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); pstr->valid_len = mbclen - (raw + offset - p); wc = wc2; } break; } } if (wc == WEOF) pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx; if (wc == WEOF) pstr->tip_context = re_string_context_at (pstr, prev_valid_len - 1, eflags); else pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) ? CONTEXT_WORD : ((IS_WIDE_NEWLINE (wc) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); if (BE (pstr->valid_len, 0)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) pstr->wcs[wcs_idx] = WEOF; if (pstr->mbs_allocated) memset (pstr->mbs, 255, pstr->valid_len); } pstr->valid_raw_len = pstr->valid_len; } else #endif /* RE_ENABLE_I18N */ { int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; pstr->valid_raw_len = 0; if (pstr->trans) c = pstr->trans[c]; pstr->tip_context = (bitset_contain (pstr->word_char, c) ? CONTEXT_WORD : ((IS_NEWLINE (c) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); } } if (!BE (pstr->mbs_allocated, 0)) pstr->mbs += offset; } pstr->raw_mbs_idx = idx; pstr->len -= offset; pstr->stop -= offset; /* Then build the buffers. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { if (pstr->icase) { reg_errcode_t ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else build_wcs_buffer (pstr); } else #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) { if (pstr->icase) build_upper_buffer (pstr); else if (pstr->trans != NULL) re_string_translate_buffer (pstr); } else pstr->valid_len = pstr->len; pstr->cur_idx = 0; return REG_NOERROR; } static unsigned char internal_function __attribute ((pure)) re_string_peek_byte_case (const re_string_t *pstr, Idx idx) { int ch; Idx off; /* Handle the common (easiest) cases first. */ if (BE (!pstr->mbs_allocated, 1)) return re_string_peek_byte (pstr, idx); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) return re_string_peek_byte (pstr, idx); #endif off = pstr->cur_idx + idx; #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) off = pstr->offsets[off]; #endif ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; #ifdef RE_ENABLE_I18N /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I this function returns CAPITAL LETTER I instead of first byte of DOTLESS SMALL LETTER I. The latter would confuse the parser, since peek_byte_case doesn't advance cur_idx in any way. */ if (pstr->offsets_needed && !isascii (ch)) return re_string_peek_byte (pstr, idx); #endif return ch; } static unsigned char internal_function re_string_fetch_byte_case (re_string_t *pstr) { if (BE (!pstr->mbs_allocated, 1)) return re_string_fetch_byte (pstr); #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) { Idx off; int ch; /* For tr_TR.UTF-8 [[:islower:]] there is [[: CAPITAL LETTER I WITH DOT lower:]] in mbs. Skip in that case the whole multi-byte character and return the original letter. On the other side, with [[: DOTLESS SMALL LETTER I return [[:I, as doing anything else would complicate things too much. */ if (!re_string_first_byte (pstr, pstr->cur_idx)) return re_string_fetch_byte (pstr); off = pstr->offsets[pstr->cur_idx]; ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; if (! isascii (ch)) return re_string_fetch_byte (pstr); re_string_skip_bytes (pstr, re_string_char_size_at (pstr, pstr->cur_idx)); return ch; } #endif return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++]; } static void internal_function re_string_destruct (re_string_t *pstr) { #ifdef RE_ENABLE_I18N re_free (pstr->wcs); re_free (pstr->offsets); #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) re_free (pstr->mbs); } /* Return the context at IDX in INPUT. */ static unsigned int internal_function re_string_context_at (const re_string_t *input, Idx idx, int eflags) { int c; if (BE (! REG_VALID_INDEX (idx), 0)) /* In this case, we use the value stored in input->tip_context, since we can't know the character in input->mbs[-1] here. */ return input->tip_context; if (BE (idx == input->len, 0)) return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF : CONTEXT_NEWLINE | CONTEXT_ENDBUF); #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc; Idx wc_idx = idx; while(input->wcs[wc_idx] == WEOF) { #ifdef DEBUG /* It must not happen. */ assert (REG_VALID_INDEX (wc_idx)); #endif --wc_idx; if (! REG_VALID_INDEX (wc_idx)) return input->tip_context; } wc = input->wcs[wc_idx]; if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) return CONTEXT_WORD; return (IS_WIDE_NEWLINE (wc) && input->newline_anchor ? CONTEXT_NEWLINE : 0); } else #endif { c = re_string_byte_at (input, idx); if (bitset_contain (input->word_char, c)) return CONTEXT_WORD; return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0; } } /* Functions for set operation. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_alloc (re_node_set *set, Idx size) { set->alloc = size; set->nelem = 0; set->elems = re_malloc (Idx, size); if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0)) return REG_ESPACE; return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_1 (re_node_set *set, Idx elem) { set->alloc = 1; set->nelem = 1; set->elems = re_malloc (Idx, 1); if (BE (set->elems == NULL, 0)) { set->alloc = set->nelem = 0; return REG_ESPACE; } set->elems[0] = elem; return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) { set->alloc = 2; set->elems = re_malloc (Idx, 2); if (BE (set->elems == NULL, 0)) return REG_ESPACE; if (elem1 == elem2) { set->nelem = 1; set->elems[0] = elem1; } else { set->nelem = 2; if (elem1 < elem2) { set->elems[0] = elem1; set->elems[1] = elem2; } else { set->elems[0] = elem2; set->elems[1] = elem1; } } return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; if (src->nelem > 0) { dest->alloc = dest->nelem; dest->elems = re_malloc (Idx, dest->alloc); if (BE (dest->elems == NULL, 0)) { dest->alloc = dest->nelem = 0; return REG_ESPACE; } memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); } else re_node_set_init_empty (dest); return REG_NOERROR; } /* Calculate the intersection of the sets SRC1 and SRC2. And merge it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { Idx i1, i2, is, id, delta, sbase; if (src1->nelem == 0 || src2->nelem == 0) return REG_NOERROR; /* We need dest->nelem + 2 * elems_in_intersection; this is a conservative estimate. */ if (src1->nelem + src2->nelem + dest->nelem > dest->alloc) { Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_elems == NULL, 0)) return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; } /* Find the items in the intersection of SRC1 and SRC2, and copy into the top of DEST those that are not already in DEST itself. */ sbase = dest->nelem + src1->nelem + src2->nelem; i1 = src1->nelem - 1; i2 = src2->nelem - 1; id = dest->nelem - 1; for (;;) { if (src1->elems[i1] == src2->elems[i2]) { /* Try to find the item in DEST. Maybe we could binary search? */ while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1]) --id; if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1]) dest->elems[--sbase] = src1->elems[i1]; if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2)) break; } /* Lower the highest of the two items. */ else if (src1->elems[i1] < src2->elems[i2]) { if (! REG_VALID_INDEX (--i2)) break; } else { if (! REG_VALID_INDEX (--i1)) break; } } id = dest->nelem - 1; is = dest->nelem + src1->nelem + src2->nelem - 1; delta = is - sbase + 1; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place; this is more or less the same loop that is in re_node_set_merge. */ dest->nelem += delta; if (delta > 0 && REG_VALID_INDEX (id)) for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (! REG_VALID_INDEX (--id)) break; } } /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); return REG_NOERROR; } /* Calculate the union set of the sets SRC1 and SRC2. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { Idx i1, i2, id; if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0) { dest->alloc = src1->nelem + src2->nelem; dest->elems = re_malloc (Idx, dest->alloc); if (BE (dest->elems == NULL, 0)) return REG_ESPACE; } else { if (src1 != NULL && src1->nelem > 0) return re_node_set_init_copy (dest, src1); else if (src2 != NULL && src2->nelem > 0) return re_node_set_init_copy (dest, src2); else re_node_set_init_empty (dest); return REG_NOERROR; } for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;) { if (src1->elems[i1] > src2->elems[i2]) { dest->elems[id++] = src2->elems[i2++]; continue; } if (src1->elems[i1] == src2->elems[i2]) ++i2; dest->elems[id++] = src1->elems[i1++]; } if (i1 < src1->nelem) { memcpy (dest->elems + id, src1->elems + i1, (src1->nelem - i1) * sizeof (Idx)); id += src1->nelem - i1; } else if (i2 < src2->nelem) { memcpy (dest->elems + id, src2->elems + i2, (src2->nelem - i2) * sizeof (Idx)); id += src2->nelem - i2; } dest->nelem = id; return REG_NOERROR; } /* Calculate the union set of the sets DEST and SRC. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx is, id, sbase, delta; if (src == NULL || src->nelem == 0) return REG_NOERROR; if (dest->alloc < 2 * src->nelem + dest->nelem) { Idx new_alloc = 2 * (src->nelem + dest->alloc); Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_buffer == NULL, 0)) return REG_ESPACE; dest->elems = new_buffer; dest->alloc = new_alloc; } if (BE (dest->nelem == 0, 0)) { dest->nelem = src->nelem; memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); return REG_NOERROR; } /* Copy into the top of DEST the items of SRC that are not found in DEST. Maybe we could binary search in DEST? */ for (sbase = dest->nelem + 2 * src->nelem, is = src->nelem - 1, id = dest->nelem - 1; REG_VALID_INDEX (is) && REG_VALID_INDEX (id); ) { if (dest->elems[id] == src->elems[is]) is--, id--; else if (dest->elems[id] < src->elems[is]) dest->elems[--sbase] = src->elems[is--]; else /* if (dest->elems[id] > src->elems[is]) */ --id; } if (REG_VALID_INDEX (is)) { /* If DEST is exhausted, the remaining items of SRC must be unique. */ sbase -= is + 1; memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx)); } id = dest->nelem - 1; is = dest->nelem + 2 * src->nelem - 1; delta = is - sbase + 1; if (delta == 0) return REG_NOERROR; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place. */ dest->nelem += delta; for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (! REG_VALID_INDEX (--id)) { /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); break; } } } return REG_NOERROR; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have ELEM. Return true if successful. */ static bool internal_function __attribute_warn_unused_result__ re_node_set_insert (re_node_set *set, Idx elem) { Idx idx; /* In case the set is empty. */ if (set->alloc == 0) return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1); if (BE (set->nelem, 0) == 0) { /* We already guaranteed above that set->alloc != 0. */ set->elems[0] = elem; ++set->nelem; return true; } /* Realloc if we need. */ if (set->alloc == set->nelem) { Idx *new_elems; set->alloc = set->alloc * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } /* Move the elements which follows the new element. Test the first element separately to skip a check in the inner loop. */ if (elem < set->elems[0]) { idx = 0; for (idx = set->nelem; idx > 0; idx--) set->elems[idx] = set->elems[idx - 1]; } else { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) set->elems[idx] = set->elems[idx - 1]; } /* Insert the new element. */ set->elems[idx] = elem; ++set->nelem; return true; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have any element greater than or equal to ELEM. Return true if successful. */ static bool internal_function __attribute_warn_unused_result__ re_node_set_insert_last (re_node_set *set, Idx elem) { /* Realloc if we need. */ if (set->alloc == set->nelem) { Idx *new_elems; set->alloc = (set->alloc + 1) * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } /* Insert the new element. */ set->elems[set->nelem++] = elem; return true; } /* Compare two node sets SET1 and SET2. Return true if SET1 and SET2 are equivalent. */ static bool internal_function __attribute ((pure)) re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { Idx i; if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) return false; for (i = set1->nelem ; REG_VALID_INDEX (--i) ; ) if (set1->elems[i] != set2->elems[i]) return false; return true; } /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ static Idx internal_function __attribute ((pure)) re_node_set_contains (const re_node_set *set, Idx elem) { __re_size_t idx, right, mid; if (! REG_VALID_NONZERO_INDEX (set->nelem)) return 0; /* Binary search the element. */ idx = 0; right = set->nelem - 1; while (idx < right) { mid = (idx + right) / 2; if (set->elems[mid] < elem) idx = mid + 1; else right = mid; } return set->elems[idx] == elem ? idx + 1 : 0; } static void internal_function re_node_set_remove_at (re_node_set *set, Idx idx) { if (idx < 0 || idx >= set->nelem) return; --set->nelem; for (; idx < set->nelem; idx++) set->elems[idx] = set->elems[idx + 1]; } /* Add the token TOKEN to dfa->nodes, and return the index of the token. Or return REG_MISSING if an error occurred. */ static Idx internal_function re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) { size_t new_nodes_alloc = dfa->nodes_alloc * 2; Idx *new_nexts, *new_indices; re_node_set *new_edests, *new_eclosures; re_token_t *new_nodes; /* Avoid overflows in realloc. */ const size_t max_object_size = MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), sizeof (Idx))); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0)) return REG_MISSING; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); if (BE (new_nodes == NULL, 0)) return REG_MISSING; dfa->nodes = new_nodes; new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc); new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc); new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); if (BE (new_nexts == NULL || new_indices == NULL || new_edests == NULL || new_eclosures == NULL, 0)) return REG_MISSING; dfa->nexts = new_nexts; dfa->org_indices = new_indices; dfa->edests = new_edests; dfa->eclosures = new_eclosures; dfa->nodes_alloc = new_nodes_alloc; } dfa->nodes[dfa->nodes_len] = token; dfa->nodes[dfa->nodes_len].constraint = 0; #ifdef RE_ENABLE_I18N dfa->nodes[dfa->nodes_len].accept_mb = ((token.type == OP_PERIOD && dfa->mb_cur_max > 1) || token.type == COMPLEX_BRACKET); #endif dfa->nexts[dfa->nodes_len] = REG_MISSING; re_node_set_init_empty (dfa->edests + dfa->nodes_len); re_node_set_init_empty (dfa->eclosures + dfa->nodes_len); return dfa->nodes_len++; } static re_hashval_t internal_function calc_state_hash (const re_node_set *nodes, unsigned int context) { re_hashval_t hash = nodes->nelem + context; Idx i; for (i = 0 ; i < nodes->nelem ; i++) hash += nodes->elems[i]; return hash; } /* Search for the state whose node_set is equivalent to NODES. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { re_hashval_t hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; #ifdef lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif if (BE (nodes->nelem == 0, 0)) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, 0); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (hash != state->hash) continue; if (re_node_set_compare (&state->nodes, nodes)) return state; } /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Search for the state whose node_set is equivalent to NODES and whose context is equivalent to CONTEXT. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { re_hashval_t hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; #ifdef lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif if (nodes->nelem == 0) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, context); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (state->hash == hash && state->context == context && re_node_set_compare (state->entrance_nodes, nodes)) return state; } /* There are no appropriate state in 'dfa', create the new one. */ new_state = create_cd_newstate (dfa, nodes, context, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Finish initialization of the new state NEWSTATE, and using its hash value HASH put in the appropriate bucket of DFA's state table. Return value indicates the error code if failed. */ static reg_errcode_t __attribute_warn_unused_result__ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, re_hashval_t hash) { struct re_state_table_entry *spot; reg_errcode_t err; Idx i; newstate->hash = hash; err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < newstate->nodes.nelem; i++) { Idx elem = newstate->nodes.elems[i]; if (!IS_EPSILON_NODE (dfa->nodes[elem].type)) if (! re_node_set_insert_last (&newstate->non_eps_nodes, elem)) return REG_ESPACE; } spot = dfa->state_table + (hash & dfa->state_hash_mask); if (BE (spot->alloc <= spot->num, 0)) { Idx new_alloc = 2 * spot->num + 2; re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; spot->array = new_array; spot->alloc = new_alloc; } spot->array[spot->num++] = newstate; return REG_NOERROR; } static void free_state (re_dfastate_t *state) { re_node_set_free (&state->non_eps_nodes); re_node_set_free (&state->inveclosure); if (state->entrance_nodes != &state->nodes) { re_node_set_free (state->entrance_nodes); re_free (state->entrance_nodes); } re_node_set_free (&state->nodes); re_free (state->word_trtable); re_free (state->trtable); re_free (state); } /* Create the new state which is independent of contexts. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) { Idx i; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; if (type == CHARACTER && !node->constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; else if (type == ANCHOR || node->constraint) newstate->has_constraint = 1; } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } /* Create the new state which is depend on the context CONTEXT. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) { Idx i, nctx_nodes = 0; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->context = context; newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; if (type == CHARACTER && !constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; if (constraint) { if (newstate->entrance_nodes == &newstate->nodes) { newstate->entrance_nodes = re_malloc (re_node_set, 1); if (BE (newstate->entrance_nodes == NULL, 0)) { free_state (newstate); return NULL; } if (re_node_set_init_copy (newstate->entrance_nodes, nodes) != REG_NOERROR) return NULL; nctx_nodes = 0; newstate->has_constraint = 1; } if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context)) { re_node_set_remove_at (&newstate->nodes, i - nctx_nodes); ++nctx_nodes; } } } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/unitypes.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000003163�12116370307�012710� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Elementary types and macros for the GNU UniString library. Copyright (C) 2002, 2005-2006, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _UNITYPES_H #define _UNITYPES_H /* Get uint8_t, uint16_t, uint32_t. */ #include <stdint.h> /* Type representing a Unicode character. */ typedef uint32_t ucs4_t; /* Attribute of a function whose result depends only on the arguments (not pointers!) and which has no side effects. */ #ifndef _UC_ATTRIBUTE_CONST # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) # else # define _UC_ATTRIBUTE_CONST # endif #endif /* Attribute of a function whose result depends only on the arguments (possibly pointers) and global memory, and which has no side effects. */ #ifndef _UC_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _UC_ATTRIBUTE_PURE # endif #endif #endif /* _UNITYPES_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/mbrtowc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000025143�12116370307�012075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> #if GNULIB_defined_mbstate_t /* Implement mbrtowc() on top of mbtowc(). */ # include <errno.h> # include <stdlib.h> # include "localcharset.h" # include "streq.h" # include "verify.h" verify (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { char *pstate = (char *)ps; if (s == NULL) { pwc = NULL; s = ""; n = 1; } if (n == 0) return (size_t)(-2); /* Here n > 0. */ if (pstate == NULL) pstate = internal_state; { size_t nstate = pstate[0]; char buf[4]; const char *p; size_t m; switch (nstate) { case 0: p = s; m = n; break; case 3: buf[2] = pstate[3]; /*FALLTHROUGH*/ case 2: buf[1] = pstate[2]; /*FALLTHROUGH*/ case 1: buf[0] = pstate[1]; p = buf; m = nstate; buf[m++] = s[0]; if (n >= 2 && m < 4) { buf[m++] = s[1]; if (n >= 3 && m < 4) buf[m++] = s[2]; } break; default: errno = EINVAL; return (size_t)(-1); } /* Here m > 0. */ # if __GLIBC__ || defined __UCLIBC__ /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */ mbtowc (NULL, NULL, 0); # endif { int res = mbtowc (pwc, p, m); if (res >= 0) { if (pwc != NULL && ((*pwc == 0) != (res == 0))) abort (); if (nstate >= (res > 0 ? res : 1)) abort (); res -= nstate; pstate[0] = 0; return res; } /* mbtowc does not distinguish between invalid and incomplete multibyte sequences. But mbrtowc needs to make this distinction. There are two possible approaches: - Use iconv() and its return value. - Use built-in knowledge about the possible encodings. Given the low quality of implementation of iconv() on the systems that lack mbrtowc(), we use the second approach. The possible encodings are: - 8-bit encodings, - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - UTF-8. Use specialized code for each. */ if (m >= 4 || m >= MB_CUR_MAX) goto invalid; /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ { const char *encoding = locale_charset (); if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) { /* Cf. unistr/u8-mblen.c. */ unsigned char c = (unsigned char) p[0]; if (c >= 0xc2) { if (c < 0xe0) { if (m == 1) goto incomplete; } else if (c < 0xf0) { if (m == 1) goto incomplete; if (m == 2) { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xe1 || c2 >= 0xa0) && (c != 0xed || c2 < 0xa0)) goto incomplete; } } else if (c <= 0xf4) { if (m == 1) goto incomplete; else /* m == 2 || m == 3 */ { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xf1 || c2 >= 0x90) && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if ((c3 ^ 0x80) < 0x40) goto incomplete; } } } } } goto invalid; } /* As a reference for this code, you can use the GNU libiconv implementation. Look for uses of the RET_TOOFEW macro. */ if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) goto incomplete; } if (m == 2) { unsigned char c = (unsigned char) p[0]; if (c == 0x8f) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0xa1 && c2 < 0xff) goto incomplete; } } goto invalid; } if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if (c >= 0xa1 && c < 0xff) goto incomplete; } goto invalid; } if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c == 0x8e) goto incomplete; } goto invalid; } if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c >= 0x90 && c <= 0xe3) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0x30 && c2 <= 0x39) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if (c3 >= 0x81 && c3 <= 0xfe) goto incomplete; } } } } goto invalid; } if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) || (c >= 0xf0 && c <= 0xf9)) goto incomplete; } goto invalid; } /* An unknown multibyte encoding. */ goto incomplete; } incomplete: { size_t k = nstate; /* Here 0 <= k < m < 4. */ pstate[++k] = s[0]; if (k < m) { pstate[++k] = s[1]; if (k < m) pstate[++k] = s[2]; } if (k != m) abort (); } pstate[0] = m; return (size_t)(-2); invalid: errno = EILSEQ; /* The conversion state is undefined, says POSIX. */ return (size_t)(-1); } } } #else /* Override the system's mbrtowc() function. */ # undef mbrtowc size_t rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { # if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG if (s == NULL) { pwc = NULL; s = ""; n = 1; } # endif # if MBRTOWC_RETVAL_BUG { static mbstate_t internal_state; /* Override mbrtowc's internal state. We cannot call mbsinit() on the hidden internal state, but we can call it on our variable. */ if (ps == NULL) ps = &internal_state; if (!mbsinit (ps)) { /* Parse the rest of the multibyte character byte for byte. */ size_t count = 0; for (; n > 0; s++, n--) { wchar_t wc; size_t ret = mbrtowc (&wc, s, 1, ps); if (ret == (size_t)(-1)) return (size_t)(-1); count++; if (ret != (size_t)(-2)) { /* The multibyte character has been completed. */ if (pwc != NULL) *pwc = wc; return (wc == 0 ? 0 : count); } } return (size_t)(-2); } } # endif # if MBRTOWC_NUL_RETVAL_BUG { wchar_t wc; size_t ret = mbrtowc (&wc, s, n, ps); if (ret != (size_t)(-1) && ret != (size_t)(-2)) { if (pwc != NULL) *pwc = wc; if (wc == 0) ret = 0; } return ret; } # else { # if MBRTOWC_NULL_ARG1_BUG wchar_t dummy; if (pwc == NULL) pwc = &dummy; # endif return mbrtowc (pwc, s, n, ps); } # endif } #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/mbsrchr.c���������������������������������������������������������������������������0000644�0000000�0000000�00000003351�12116370307�012055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Searching a string for the last occurrence of a character. Copyright (C) 2007-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2007. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> #include "mbuiter.h" /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. */ char * mbsrchr (const char *string, int c) { if (MB_CUR_MAX > 1 /* Optimization: We know that ASCII characters < 0x30 don't occur as part of multibyte characters longer than 1 byte. Hence, if c < 0x30, the faster unibyte loop can be used. */ && (unsigned char) c >= 0x30) { const char *result = NULL; mbui_iterator_t iter; for (mbui_init (iter, string); mbui_avail (iter); mbui_advance (iter)) { if (mb_len (mbui_cur (iter)) == 1 && (unsigned char) * mbui_cur_ptr (iter) == (unsigned char) c) result = mbui_cur_ptr (iter); } return (char *) result; } else return strrchr (string, c); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/langinfo.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000012075�12116370307�012627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <langinfo.h>. Copyright (C) 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* * POSIX <langinfo.h> for platforms that lack it or have an incomplete one. * <http://www.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html> */ #ifndef _@GUARD_PREFIX@_LANGINFO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_LANGINFO_H@ # @INCLUDE_NEXT@ @NEXT_LANGINFO_H@ #endif #ifndef _@GUARD_PREFIX@_LANGINFO_H #define _@GUARD_PREFIX@_LANGINFO_H #if !@HAVE_LANGINFO_H@ /* A platform that lacks <langinfo.h>. */ /* Assume that it also lacks <nl_types.h> and the nl_item type. */ # if !GNULIB_defined_nl_item typedef int nl_item; # define GNULIB_defined_nl_item 1 # endif /* nl_langinfo items of the LC_CTYPE category */ # define CODESET 10000 /* nl_langinfo items of the LC_NUMERIC category */ # define RADIXCHAR 10001 # define THOUSEP 10002 /* nl_langinfo items of the LC_TIME category */ # define D_T_FMT 10003 # define D_FMT 10004 # define T_FMT 10005 # define T_FMT_AMPM 10006 # define AM_STR 10007 # define PM_STR 10008 # define DAY_1 10009 # define DAY_2 (DAY_1 + 1) # define DAY_3 (DAY_1 + 2) # define DAY_4 (DAY_1 + 3) # define DAY_5 (DAY_1 + 4) # define DAY_6 (DAY_1 + 5) # define DAY_7 (DAY_1 + 6) # define ABDAY_1 10016 # define ABDAY_2 (ABDAY_1 + 1) # define ABDAY_3 (ABDAY_1 + 2) # define ABDAY_4 (ABDAY_1 + 3) # define ABDAY_5 (ABDAY_1 + 4) # define ABDAY_6 (ABDAY_1 + 5) # define ABDAY_7 (ABDAY_1 + 6) # define MON_1 10023 # define MON_2 (MON_1 + 1) # define MON_3 (MON_1 + 2) # define MON_4 (MON_1 + 3) # define MON_5 (MON_1 + 4) # define MON_6 (MON_1 + 5) # define MON_7 (MON_1 + 6) # define MON_8 (MON_1 + 7) # define MON_9 (MON_1 + 8) # define MON_10 (MON_1 + 9) # define MON_11 (MON_1 + 10) # define MON_12 (MON_1 + 11) # define ABMON_1 10035 # define ABMON_2 (ABMON_1 + 1) # define ABMON_3 (ABMON_1 + 2) # define ABMON_4 (ABMON_1 + 3) # define ABMON_5 (ABMON_1 + 4) # define ABMON_6 (ABMON_1 + 5) # define ABMON_7 (ABMON_1 + 6) # define ABMON_8 (ABMON_1 + 7) # define ABMON_9 (ABMON_1 + 8) # define ABMON_10 (ABMON_1 + 9) # define ABMON_11 (ABMON_1 + 10) # define ABMON_12 (ABMON_1 + 11) # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 /* nl_langinfo items of the LC_MONETARY category */ # define CRNCYSTR 10052 /* nl_langinfo items of the LC_MESSAGES category */ # define YESEXPR 10053 # define NOEXPR 10054 #else /* A platform that has <langinfo.h>. */ # if !@HAVE_LANGINFO_CODESET@ # define CODESET 10000 # define GNULIB_defined_CODESET 1 # endif # if !@HAVE_LANGINFO_T_FMT_AMPM@ # define T_FMT_AMPM 10006 # define GNULIB_defined_T_FMT_AMPM 1 # endif # if !@HAVE_LANGINFO_ERA@ # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 # define GNULIB_defined_ERA 1 # endif # if !@HAVE_LANGINFO_YESEXPR@ # define YESEXPR 10053 # define NOEXPR 10054 # define GNULIB_defined_YESEXPR 1 # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ /* Return a piece of locale dependent information. Note: The difference between nl_langinfo (CODESET) and locale_charset () is that the latter normalizes the encoding names to GNU conventions. */ #if @GNULIB_NL_LANGINFO@ # if @REPLACE_NL_LANGINFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef nl_langinfo # define nl_langinfo rpl_nl_langinfo # endif _GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item)); _GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item)); # else # if !@HAVE_NL_LANGINFO@ _GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIASWARN (nl_langinfo); #elif defined GNULIB_POSIXCHECK # undef nl_langinfo # if HAVE_RAW_DECL_NL_LANGINFO _GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - " "use gnulib module nl_langinfo for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LANGINFO_H */ #endif /* _@GUARD_PREFIX@_LANGINFO_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/sys_wait.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000007423�12116370307�012675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A POSIX-like <sys/wait.h>. Copyright (C) 2001-2003, 2005-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_SYS_WAIT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # @INCLUDE_NEXT@ @NEXT_SYS_WAIT_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_WAIT_H #define _@GUARD_PREFIX@_SYS_WAIT_H /* Get pid_t. */ #include <sys/types.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* Unix API. */ /* The following macros apply to an argument x, that is a status of a process, as returned by waitpid(). On nearly all systems, including Linux/x86, WEXITSTATUS are bits 15..8 and WTERMSIG are bits 7..0, while BeOS uses the opposite. Therefore programs have to use the abstract macros. */ /* For valid x, exactly one of WIFSIGNALED(x), WIFEXITED(x), WIFSTOPPED(x) is true. */ # ifndef WIFSIGNALED # define WIFSIGNALED(x) (WTERMSIG (x) != 0 && WTERMSIG(x) != 0x7f) # endif # ifndef WIFEXITED # define WIFEXITED(x) (WTERMSIG (x) == 0) # endif # ifndef WIFSTOPPED # define WIFSTOPPED(x) (WTERMSIG (x) == 0x7f) # endif /* The termination signal. Only to be accessed if WIFSIGNALED(x) is true. */ # ifndef WTERMSIG # define WTERMSIG(x) ((x) & 0x7f) # endif /* The exit status. Only to be accessed if WIFEXITED(x) is true. */ # ifndef WEXITSTATUS # define WEXITSTATUS(x) (((x) >> 8) & 0xff) # endif /* The stopping signal. Only to be accessed if WIFSTOPPED(x) is true. */ # ifndef WSTOPSIG # define WSTOPSIG(x) (((x) >> 8) & 0x7f) # endif /* True if the process dumped core. Not standardized by POSIX. */ # ifndef WCOREDUMP # define WCOREDUMP(x) ((x) & 0x80) # endif #else /* Native Windows API. */ # include <signal.h> /* for SIGTERM */ /* The following macros apply to an argument x, that is a status of a process, as returned by waitpid() or, equivalently, _cwait() or GetExitCodeProcess(). This value is simply an 'int', not composed of bit fields. */ /* When an unhandled fatal signal terminates a process, the exit code is 3. */ # define WIFSIGNALED(x) ((x) == 3) # define WIFEXITED(x) ((x) != 3) # define WIFSTOPPED(x) 0 /* The signal that terminated a process is not known posthum. */ # define WTERMSIG(x) SIGTERM # define WEXITSTATUS(x) (x) /* There are no stopping signals. */ # define WSTOPSIG(x) 0 /* There are no core dumps. */ # define WCOREDUMP(x) 0 #endif /* Declarations of functions. */ #if @GNULIB_WAITPID@ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ _GL_FUNCDECL_SYS (waitpid, pid_t, (pid_t pid, int *statusp, int options)); # endif _GL_CXXALIAS_SYS (waitpid, pid_t, (pid_t pid, int *statusp, int options)); _GL_CXXALIASWARN (waitpid); #elif defined GNULIB_POSIXCHECK # undef waitpid # if HAVE_RAW_DECL_WAITPID _GL_WARN_ON_USE (waitpid, "waitpid is unportable - " "use gnulib module sys_wait for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_WAIT_H */ #endif /* _@GUARD_PREFIX@_SYS_WAIT_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/sys_stat.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000047671�12116370307�012715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a more complete sys/stat header file. Copyright (C) 2005-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ /* This file is supposed to be used on platforms where <sys/stat.h> is incomplete. It is intended to provide definitions and prototypes needed by an application. Start with what the system provides. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_sys_stat_h /* Special invocation convention. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* Get struct timespec. */ #include <time.h> /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir in <io.h> and/or <direct.h>, not in <unistd.h>. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include <io.h> /* mingw32, mingw64 */ # include <direct.h> /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in <io.h>. */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include <io.h> #endif /* Large File Support on native Windows. */ #if @WINDOWS_64_BIT_ST_SIZE@ # define stat _stati64 #endif #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO # endif #endif #ifndef S_IFMT # define S_IFMT 0170000 #endif #if STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISNAM # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif #ifndef S_ISBLK # ifdef S_IFBLK # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) # else # define S_ISBLK(m) 0 # endif #endif #ifndef S_ISCHR # ifdef S_IFCHR # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) # else # define S_ISCHR(m) 0 # endif #endif #ifndef S_ISDIR # ifdef S_IFDIR # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) # else # define S_ISDIR(m) 0 # endif #endif #ifndef S_ISDOOR /* Solaris 2.5 and up */ # define S_ISDOOR(m) 0 #endif #ifndef S_ISFIFO # ifdef S_IFIFO # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) # else # define S_ISFIFO(m) 0 # endif #endif #ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif #endif #ifndef S_ISMPB /* V7 */ # ifdef S_IFMPB # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) # else # define S_ISMPB(m) 0 # define S_ISMPC(m) 0 # endif #endif #ifndef S_ISMPX /* AIX */ # define S_ISMPX(m) 0 #endif #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) # else # define S_ISNAM(m) 0 # endif #endif #ifndef S_ISNWK /* HP/UX */ # ifdef S_IFNWK # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) # else # define S_ISNWK(m) 0 # endif #endif #ifndef S_ISPORT /* Solaris 10 and up */ # define S_ISPORT(m) 0 #endif #ifndef S_ISREG # ifdef S_IFREG # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) # else # define S_ISREG(m) 0 # endif #endif #ifndef S_ISSOCK # ifdef S_IFSOCK # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) # else # define S_ISSOCK(m) 0 # endif #endif #ifndef S_TYPEISMQ # define S_TYPEISMQ(p) 0 #endif #ifndef S_TYPEISTMO # define S_TYPEISTMO(p) 0 #endif #ifndef S_TYPEISSEM # ifdef S_INSEM # define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) # else # define S_TYPEISSEM(p) 0 # endif #endif #ifndef S_TYPEISSHM # ifdef S_INSHD # define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) # else # define S_TYPEISSHM(p) 0 # endif #endif /* high performance ("contiguous data") */ #ifndef S_ISCTG # define S_ISCTG(p) 0 #endif /* Cray DMF (data migration facility): off line, with data */ #ifndef S_ISOFD # define S_ISOFD(p) 0 #endif /* Cray DMF (data migration facility): off line, with no data */ #ifndef S_ISOFL # define S_ISOFL(p) 0 #endif /* 4.4BSD whiteout */ #ifndef S_ISWHT # define S_ISWHT(m) 0 #endif /* If any of the following are undefined, define them to their de facto standard values. */ #if !S_ISUID # define S_ISUID 04000 #endif #if !S_ISGID # define S_ISGID 02000 #endif /* S_ISVTX is a common extension to POSIX. */ #ifndef S_ISVTX # define S_ISVTX 01000 #endif #if !S_IRUSR && S_IREAD # define S_IRUSR S_IREAD #endif #if !S_IRUSR # define S_IRUSR 00400 #endif #if !S_IRGRP # define S_IRGRP (S_IRUSR >> 3) #endif #if !S_IROTH # define S_IROTH (S_IRUSR >> 6) #endif #if !S_IWUSR && S_IWRITE # define S_IWUSR S_IWRITE #endif #if !S_IWUSR # define S_IWUSR 00200 #endif #if !S_IWGRP # define S_IWGRP (S_IWUSR >> 3) #endif #if !S_IWOTH # define S_IWOTH (S_IWUSR >> 6) #endif #if !S_IXUSR && S_IEXEC # define S_IXUSR S_IEXEC #endif #if !S_IXUSR # define S_IXUSR 00100 #endif #if !S_IXGRP # define S_IXGRP (S_IXUSR >> 3) #endif #if !S_IXOTH # define S_IXOTH (S_IXUSR >> 6) #endif #if !S_IRWXU # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) #endif #if !S_IRWXG # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) #endif #if !S_IRWXO # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) #endif /* S_IXUGO is a common extension to POSIX. */ #if !S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifndef S_IRWXUGO # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif /* Macros for futimens and utimensat. */ #ifndef UTIME_NOW # define UTIME_NOW (-1) # define UTIME_OMIT (-2) #endif #if @GNULIB_FCHMODAT@ # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); _GL_CXXALIASWARN (fchmodat); #elif defined GNULIB_POSIXCHECK # undef fchmodat # if HAVE_RAW_DECL_FCHMODAT _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FSTAT@ # if @REPLACE_FSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstat # define fstat rpl_fstat # endif _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); # else _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif _GL_CXXALIASWARN (fstat); #elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT _GL_WARN_ON_USE (fstat, "fstat has portability problems - " "use gnulib module fstat for portability"); # endif #endif #if @GNULIB_FSTATAT@ # if @REPLACE_FSTATAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstatat # define fstatat rpl_fstatat # endif _GL_FUNCDECL_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # else # if !@HAVE_FSTATAT@ _GL_FUNCDECL_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # endif _GL_CXXALIASWARN (fstatat); #elif defined GNULIB_POSIXCHECK # undef fstatat # if HAVE_RAW_DECL_FSTATAT _GL_WARN_ON_USE (fstatat, "fstatat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FUTIMENS@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens implementation relies on futimesat, which on Solaris 10 makes an invocation to futimens that is meant to invoke the libc's futimens(), not gnulib's futimens(). */ # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens # endif _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); # else # if !@HAVE_FUTIMENS@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif # if @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS _GL_WARN_ON_USE (futimens, "futimens is not portable - " "use gnulib module futimens for portability"); # endif #endif #if @GNULIB_LCHMOD@ /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME denotes a symbolic link. */ # if !@HAVE_LCHMOD@ /* The lchmod replacement follows symbolic links. Callers should take this into account; lchmod should be applied only to arguments that are known to not be symbolic links. On hosts that lack lchmod, this can lead to race conditions between the check and the invocation of lchmod, but we know of no workarounds that are reliable in general. You might try requesting support for lchmod from your operating system supplier. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lchmod chmod # endif /* Need to cast, because on mingw, the second parameter of chmod is int mode. */ _GL_CXXALIAS_RPL_CAST_1 (lchmod, chmod, int, (const char *filename, mode_t mode)); # else # if 0 /* assume already declared */ _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); # endif # if @HAVE_LCHMOD@ _GL_CXXALIASWARN (lchmod); # endif #elif defined GNULIB_POSIXCHECK # undef lchmod # if HAVE_RAW_DECL_LCHMOD _GL_WARN_ON_USE (lchmod, "lchmod is unportable - " "use gnulib module lchmod for portability"); # endif #endif #if @GNULIB_LSTAT@ # if ! @HAVE_LSTAT@ /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf)); # elif @REPLACE_LSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lstat # define lstat rpl_lstat # endif _GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf)); # else _GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf)); # endif # if @HAVE_LSTAT@ _GL_CXXALIASWARN (lstat); # endif #elif defined GNULIB_POSIXCHECK # undef lstat # if HAVE_RAW_DECL_LSTAT _GL_WARN_ON_USE (lstat, "lstat is unportable - " "use gnulib module lstat for portability"); # endif #endif #if @REPLACE_MKDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); #else /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes <direct.h> and <io.h>, which are included above. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif #endif _GL_CXXALIASWARN (mkdir); #if @GNULIB_MKDIRAT@ # if !@HAVE_MKDIRAT@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkdirat); #elif defined GNULIB_POSIXCHECK # undef mkdirat # if HAVE_RAW_DECL_MKDIRAT _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_MKFIFO@ # if @REPLACE_MKFIFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifo # define mkfifo rpl_mkfifo # endif _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); # else # if !@HAVE_MKFIFO@ _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifo); #elif defined GNULIB_POSIXCHECK # undef mkfifo # if HAVE_RAW_DECL_MKFIFO _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " "use gnulib module mkfifo for portability"); # endif #endif #if @GNULIB_MKFIFOAT@ # if !@HAVE_MKFIFOAT@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkfifoat); #elif defined GNULIB_POSIXCHECK # undef mkfifoat # if HAVE_RAW_DECL_MKFIFOAT _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_MKNOD@ # if @REPLACE_MKNOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknod # define mknod rpl_mknod # endif _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNOD@ _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknod); #elif defined GNULIB_POSIXCHECK # undef mknod # if HAVE_RAW_DECL_MKNOD _GL_WARN_ON_USE (mknod, "mknod is not portable - " "use gnulib module mknod for portability"); # endif #endif #if @GNULIB_MKNODAT@ # if !@HAVE_MKNODAT@ _GL_FUNCDECL_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); _GL_CXXALIASWARN (mknodat); #elif defined GNULIB_POSIXCHECK # undef mknodat # if HAVE_RAW_DECL_MKNODAT _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_STAT@ # if @REPLACE_STAT@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ # if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ # undef stat64 # define stat64(name, st) rpl_stat (name, st) # elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # if defined __MINGW32__ && defined _stati64 # ifndef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined _stati64 # ifdef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # else # undef _stati64 # define _stati64(name, st) rpl_stat (name, st) # endif # elif defined __MINGW32__ && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32. */ # undef _stat32 # define _stat32(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64i32. */ # undef _stat64i32 # define _stat64i32(name, st) rpl_stat (name, st) # endif # else /* !(_AIX ||__MINGW32__ || _MSC_VER) */ # undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ _GL_EXTERN_C int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2)); # endif #elif defined GNULIB_POSIXCHECK # undef stat # if HAVE_RAW_DECL_STAT _GL_WARN_ON_USE (stat, "stat is unportable - " "use gnulib module stat for portability"); # endif #endif #if @GNULIB_UTIMENSAT@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat implementation relies on futimesat, which on Solaris 10 makes an invocation to utimensat that is meant to invoke the libc's utimensat(), not gnulib's utimensat(). */ # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat # endif _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # else # if !@HAVE_UTIMENSAT@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif # if @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT _GL_WARN_ON_USE (utimensat, "utimensat is not portable - " "use gnulib module utimensat for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif �����������������������������������������������������������������������wdiff-1.2.1/lib/strstr.c����������������������������������������������������������������������������0000644�0000000�0000000�00000005777�12116370307�011774� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* This particular implementation was written by Eric Blake, 2008. */ #ifndef _LIBC # include <config.h> #endif /* Specification of strstr. */ #include <string.h> #include <stdbool.h> #ifndef _LIBC # define __builtin_expect(expr, val) (expr) #endif #define RETURN_TYPE char * #define AVAILABLE(h, h_l, j, n_l) \ (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ && ((h_l) = (j) + (n_l))) #include "str-two-way.h" /* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK if NEEDLE is empty, otherwise NULL if NEEDLE is not found in HAYSTACK. */ char * strstr (const char *haystack_start, const char *needle_start) { const char *haystack = haystack_start; const char *needle = needle_start; size_t needle_len; /* Length of NEEDLE. */ size_t haystack_len; /* Known minimum length of HAYSTACK. */ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */ /* Determine length of NEEDLE, and in the process, make sure HAYSTACK is at least as long (no point processing all of a long NEEDLE if HAYSTACK is too short). */ while (*haystack && *needle) ok &= *haystack++ == *needle++; if (*needle) return NULL; if (ok) return (char *) haystack_start; /* Reduce the size of haystack using strchr, since it has a smaller linear coefficient than the Two-Way algorithm. */ needle_len = needle - needle_start; haystack = strchr (haystack_start + 1, *needle_start); if (!haystack || __builtin_expect (needle_len == 1, 0)) return (char *) haystack; needle -= needle_len; haystack_len = (haystack > haystack_start + needle_len ? 1 : needle_len + haystack_start - haystack); /* Perform the search. Abstract memory is considered to be an array of 'unsigned char' values, not an array of 'char' values. See ISO C 99 section 6.2.6.1. */ if (needle_len < LONG_NEEDLE_THRESHOLD) return two_way_short_needle ((const unsigned char *) haystack, haystack_len, (const unsigned char *) needle, needle_len); return two_way_long_needle ((const unsigned char *) haystack, haystack_len, (const unsigned char *) needle, needle_len); } #undef LONG_NEEDLE_THRESHOLD �wdiff-1.2.1/lib/getopt.c����������������������������������������������������������������������������0000644�0000000�0000000�00000117504�12116370307�011725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Getopt for GNU. NOTE: getopt is part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> #endif #include "getopt.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #ifdef _LIBC # include <libintl.h> #else # include "gettext.h" # define _(msgid) gettext (msgid) #endif #if defined _LIBC && defined USE_IN_LIBIO # include <wchar.h> #endif /* This version of 'getopt' appears to the caller like standard Unix 'getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As 'getopt_long' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Using 'getopt' or setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt_int.h" /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Keep a global copy of all internal members of getopt_data. */ static struct _getopt_data getopt_data; #if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV extern char *getenv (); #endif #ifdef _LIBC /* Stored original parameters. XXX This is no good solution. We should rather copy the args so that we can compare them later. But we must not use malloc(3). */ extern int __libc_argc; extern char **__libc_argv; /* Bash 2.0 gives us an environment variable containing flags indicating ARGV elements that should not be considered arguments. */ # ifdef USE_NONOPTION_FLAGS /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; # endif # ifdef USE_NONOPTION_FLAGS # define SWAP_FLAGS(ch1, ch2) \ if (d->__nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ __getopt_nonoption_flags[ch2] = __tmp; \ } # else # define SWAP_FLAGS(ch1, ch2) # endif #else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) #endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. 'first_nonopt' and 'last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ static void exchange (char **argv, struct _getopt_data *d) { int bottom = d->__first_nonopt; int middle = d->__last_nonopt; int top = d->optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #if defined _LIBC && defined USE_NONOPTION_FLAGS /* First make sure the handling of the '__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0; else { memset (__mempcpy (new_str, __getopt_nonoption_flags, d->__nonoption_flags_max_len), '\0', top + 1 - d->__nonoption_flags_max_len); d->__nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; SWAP_FLAGS (bottom + i, middle + i); } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ d->__first_nonopt += (d->optind - d->__last_nonopt); d->__last_nonopt = d->optind; } /* Initialize the internal data when the first call is made. */ static const char * _getopt_initialize (int argc _GL_UNUSED, char **argv _GL_UNUSED, const char *optstring, struct _getopt_data *d, int posixly_correct) { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ d->__first_nonopt = d->__last_nonopt = d->optind; d->__nextchar = NULL; d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { d->__ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { d->__ordering = REQUIRE_ORDER; ++optstring; } else if (d->__posixly_correct) d->__ordering = REQUIRE_ORDER; else d->__ordering = PERMUTE; #if defined _LIBC && defined USE_NONOPTION_FLAGS if (!d->__posixly_correct && argc == __libc_argc && argv == __libc_argv) { if (d->__nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') d->__nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; int len = d->__nonoption_flags_max_len = strlen (orig_str); if (d->__nonoption_flags_max_len < argc) d->__nonoption_flags_max_len = argc; __getopt_nonoption_flags = (char *) malloc (d->__nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) d->__nonoption_flags_max_len = -1; else memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), '\0', d->__nonoption_flags_max_len - len); } } d->__nonoption_flags_len = d->__nonoption_flags_max_len; } else d->__nonoption_flags_len = 0; #endif return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If 'getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If 'getopt' finds another option character, it returns that character, updating 'optind' and 'nextchar' so that the next call to 'getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, 'getopt' returns -1. Then 'optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set 'opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in 'optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in 'optarg', otherwise 'optarg' is set to zero. If OPTSTRING starts with '-' or '+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with '--' instead of '-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a '=', or else the in next ARGV-element. When 'getopt' finds a long-named option, it returns 0 if that option's 'flag' field is nonzero, the value of the option's 'val' field if the 'flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of 'struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal_r (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, struct _getopt_data *d, int posixly_correct) { int print_errors = d->opterr; if (argc < 1) return -1; d->optarg = NULL; if (d->optind == 0 || !d->__initialized) { if (d->optind == 0) d->optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring, d, posixly_correct); d->__initialized = 1; } else if (optstring[0] == '-' || optstring[0] == '+') optstring++; if (optstring[0] == ':') print_errors = 0; /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #if defined _LIBC && defined USE_NONOPTION_FLAGS # define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \ || (d->optind < d->__nonoption_flags_len \ && __getopt_nonoption_flags[d->optind] == '1')) #else # define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') #endif if (d->__nextchar == NULL || *d->__nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (d->__last_nonopt > d->optind) d->__last_nonopt = d->optind; if (d->__first_nonopt > d->optind) d->__first_nonopt = d->optind; if (d->__ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) exchange ((char **) argv, d); else if (d->__last_nonopt != d->optind) d->__first_nonopt = d->optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (d->optind < argc && NONOPTION_P) d->optind++; d->__last_nonopt = d->optind; } /* The special ARGV-element '--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (d->optind != argc && !strcmp (argv[d->optind], "--")) { d->optind++; if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) exchange ((char **) argv, d); else if (d->__first_nonopt == d->__last_nonopt) d->__first_nonopt = d->optind; d->__last_nonopt = argc; d->optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (d->optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (d->__first_nonopt != d->__last_nonopt) d->optind = d->__first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (d->__ordering == REQUIRE_ORDER) return -1; d->optarg = argv[d->optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ d->__nextchar = (argv[d->optind] + 1 + (longopts != NULL && argv[d->optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[d->optind][1] == '-' || (long_only && (argv[d->optind][2] || !strchr (optstring, argv[d->optind][1]))))) { char *nameend; unsigned int namelen; const struct option *p; const struct option *pfound = NULL; struct option_list { const struct option *p; struct option_list *next; } *ambig_list = NULL; int exact = 0; int indfound = -1; int option_index; for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; namelen = nameend - d->__nextchar; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, d->__nextchar, namelen)) { if (namelen == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) { /* Second or later nonexact match found. */ struct option_list *newp = malloc (sizeof (*newp)); newp->p = p; newp->next = ambig_list; ambig_list = newp; } } if (ambig_list != NULL && !exact) { if (print_errors) { struct option_list first; first.p = pfound; first.next = ambig_list; ambig_list = &first; #if defined _LIBC && defined USE_IN_LIBIO char *buf = NULL; size_t buflen = 0; FILE *fp = open_memstream (&buf, &buflen); if (fp != NULL) { fprintf (fp, _("%s: option '%s' is ambiguous; possibilities:"), argv[0], argv[d->optind]); do { fprintf (fp, " '--%s'", ambig_list->p->name); ambig_list = ambig_list->next; } while (ambig_list != NULL); fputc_unlocked ('\n', fp); if (__builtin_expect (fclose (fp) != EOF, 1)) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } } #else fprintf (stderr, _("%s: option '%s' is ambiguous; possibilities:"), argv[0], argv[d->optind]); do { fprintf (stderr, " '--%s'", ambig_list->p->name); ambig_list = ambig_list->next; } while (ambig_list != NULL); fputc ('\n', stderr); #endif } d->__nextchar += strlen (d->__nextchar); d->optind++; d->optopt = 0; return '?'; } while (ambig_list != NULL) { struct option_list *pn = ambig_list->next; free (ambig_list); ambig_list = pn; } if (pfound != NULL) { option_index = indfound; d->optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) d->optarg = nameend + 1; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; int n; #endif if (argv[d->optind - 1][1] == '-') { /* --option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("\ %s: option '--%s' doesn't allow an argument\n"), argv[0], pfound->name); #else fprintf (stderr, _("\ %s: option '--%s' doesn't allow an argument\n"), argv[0], pfound->name); #endif } else { /* +option or -option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("\ %s: option '%c%s' doesn't allow an argument\n"), argv[0], argv[d->optind - 1][0], pfound->name); #else fprintf (stderr, _("\ %s: option '%c%s' doesn't allow an argument\n"), argv[0], argv[d->optind - 1][0], pfound->name); #endif } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #endif } d->__nextchar += strlen (d->__nextchar); d->optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (d->optind < argc) d->optarg = argv[d->optind++]; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option '--%s' requires an argument\n"), argv[0], pfound->name) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option '--%s' requires an argument\n"), argv[0], pfound->name); #endif } d->__nextchar += strlen (d->__nextchar); d->optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[d->optind][1] == '-' || strchr (optstring, *d->__nextchar) == NULL) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; int n; #endif if (argv[d->optind][1] == '-') { /* --option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: unrecognized option '--%s'\n"), argv[0], d->__nextchar); #else fprintf (stderr, _("%s: unrecognized option '--%s'\n"), argv[0], d->__nextchar); #endif } else { /* +option or -option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: unrecognized option '%c%s'\n"), argv[0], argv[d->optind][0], d->__nextchar); #else fprintf (stderr, _("%s: unrecognized option '%c%s'\n"), argv[0], argv[d->optind][0], d->__nextchar); #endif } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #endif } d->__nextchar = (char *) ""; d->optind++; d->optopt = 0; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *d->__nextchar++; const char *temp = strchr (optstring, c); /* Increment 'optind' when we start to process its last character. */ if (*d->__nextchar == '\0') ++d->optind; if (temp == NULL || c == ':' || c == ';') { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; int n; #endif #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"), argv[0], c); #else fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); #endif #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #endif } d->optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = 0; int option_index; if (longopts == NULL) goto no_longs; /* This is an option that requires an argument. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ d->optind++; } else if (d->optind == argc) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("%s: option requires an argument -- '%c'\n"), argv[0], c) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option requires an argument -- '%c'\n"), argv[0], c); #endif } d->optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else /* We already incremented 'd->optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) { if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("%s: option '-W %s' is ambiguous\n"), argv[0], d->optarg) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option '-W %s' is ambiguous\n"), argv[0], d->optarg); #endif } d->__nextchar += strlen (d->__nextchar); d->optind++; return '?'; } if (pfound != NULL) { option_index = indfound; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) d->optarg = nameend + 1; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option '-W %s' doesn't allow an argument\n"), argv[0], pfound->name) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("\ %s: option '-W %s' doesn't allow an argument\n"), argv[0], pfound->name); #endif } d->__nextchar += strlen (d->__nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (d->optind < argc) d->optarg = argv[d->optind++]; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option '-W %s' requires an argument\n"), argv[0], pfound->name) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("\ %s: option '-W %s' requires an argument\n"), argv[0], pfound->name); #endif } d->__nextchar += strlen (d->__nextchar); return optstring[0] == ':' ? ':' : '?'; } } else d->optarg = NULL; d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } no_longs: d->__nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; d->optind++; } else d->optarg = NULL; d->__nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ d->optind++; } else if (d->optind == argc) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option requires an argument -- '%c'\n"), argv[0], c) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option requires an argument -- '%c'\n"), argv[0], c); #endif } d->optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented 'optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; d->__nextchar = NULL; } } return c; } } int _getopt_internal (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, int posixly_correct) { int result; getopt_data.optind = optind; getopt_data.opterr = opterr; result = _getopt_internal_r (argc, argv, optstring, longopts, longind, long_only, &getopt_data, posixly_correct); optind = getopt_data.optind; optarg = getopt_data.optarg; optopt = getopt_data.optopt; return result; } /* glibc gets a LSB-compliant getopt. Standalone applications get a POSIX-compliant getopt. */ #if _LIBC enum { POSIXLY_CORRECT = 0 }; #else enum { POSIXLY_CORRECT = 1 }; #endif int getopt (int argc, char *const *argv, const char *optstring) { return _getopt_internal (argc, (char **) argv, optstring, (const struct option *) 0, (int *) 0, 0, POSIXLY_CORRECT); } #ifdef _LIBC int __posix_getopt (int argc, char *const *argv, const char *optstring) { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0, 1); } #endif #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of 'getopt'. */ int main (int argc, char **argv) { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value '%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/size_max.h��������������������������������������������������������������������������0000644�0000000�0000000�00000002211�12116370307�012233� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* size_max.h -- declare SIZE_MAX through system headers Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc. Written by Simon Josefsson. 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef GNULIB_SIZE_MAX_H #define GNULIB_SIZE_MAX_H /* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */ # include <limits.h> /* Get SIZE_MAX declaration on systems like glibc 2. */ # if HAVE_STDINT_H # include <stdint.h> # endif /* On systems where these include files don't define it, SIZE_MAX is defined in config.h. */ #endif /* GNULIB_SIZE_MAX_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/printf-args.h�����������������������������������������������������������������������0000644�0000000�0000000�00000007533�12116370307�012664� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be declared. STATIC Set to 'static' to declare the function static. */ /* Default parameters. */ #ifndef PRINTF_FETCHARGS # define PRINTF_FETCHARGS printf_fetchargs #endif /* Get size_t. */ #include <stddef.h> /* Get wchar_t. */ #if HAVE_WCHAR_T # include <stddef.h> #endif /* Get wint_t. */ #if HAVE_WINT_T # include <wchar.h> #endif /* Get va_list. */ #include <stdarg.h> /* Argument types */ typedef enum { TYPE_NONE, TYPE_SCHAR, TYPE_UCHAR, TYPE_SHORT, TYPE_USHORT, TYPE_INT, TYPE_UINT, TYPE_LONGINT, TYPE_ULONGINT, #if HAVE_LONG_LONG_INT TYPE_LONGLONGINT, TYPE_ULONGLONGINT, #endif TYPE_DOUBLE, TYPE_LONGDOUBLE, TYPE_CHAR, #if HAVE_WINT_T TYPE_WIDE_CHAR, #endif TYPE_STRING, #if HAVE_WCHAR_T TYPE_WIDE_STRING, #endif TYPE_POINTER, TYPE_COUNT_SCHAR_POINTER, TYPE_COUNT_SHORT_POINTER, TYPE_COUNT_INT_POINTER, TYPE_COUNT_LONGINT_POINTER #if HAVE_LONG_LONG_INT , TYPE_COUNT_LONGLONGINT_POINTER #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ , TYPE_U8_STRING , TYPE_U16_STRING , TYPE_U32_STRING #endif } arg_type; /* Polymorphic argument */ typedef struct { arg_type type; union { signed char a_schar; unsigned char a_uchar; short a_short; unsigned short a_ushort; int a_int; unsigned int a_uint; long int a_longint; unsigned long int a_ulongint; #if HAVE_LONG_LONG_INT long long int a_longlongint; unsigned long long int a_ulonglongint; #endif float a_float; double a_double; long double a_longdouble; int a_char; #if HAVE_WINT_T wint_t a_wide_char; #endif const char* a_string; #if HAVE_WCHAR_T const wchar_t* a_wide_string; #endif void* a_pointer; signed char * a_count_schar_pointer; short * a_count_short_pointer; int * a_count_int_pointer; long int * a_count_longint_pointer; #if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ const uint8_t * a_u8_string; const uint16_t * a_u16_string; const uint32_t * a_u32_string; #endif } a; } argument; /* Number of directly allocated arguments (no malloc() needed). */ #define N_DIRECT_ALLOC_ARGUMENTS 7 typedef struct { size_t count; argument *arg; argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS]; } arguments; /* Fetch the arguments, putting them into a. */ #ifdef STATIC STATIC #else extern #endif int PRINTF_FETCHARGS (va_list args, arguments *a); #endif /* _PRINTF_ARGS_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/regexec.c���������������������������������������������������������������������������0000644�0000000�0000000�00000400020�12116370307�012031� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extended regular expression matching and search library. Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, Idx n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function; static void match_ctx_free (re_match_context_t *cache) internal_function; static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node, Idx str_idx, Idx from, Idx to) internal_function; static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) internal_function; static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) internal_function; static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) internal_function; static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) internal_function; static reg_errcode_t re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags) internal_function; static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len) internal_function; static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len) internal_function; static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated) internal_function; static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx) internal_function; static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) internal_function; static Idx check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) internal_function; static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) internal_function; static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) internal_function; static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) internal_function; static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) internal_function; #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) internal_function; static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) internal_function; static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) internal_function; static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) internal_function; static bool check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) internal_function; static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) internal_function; static int check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx node, Idx str_idx, Idx bkref_idx) internal_function; static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) internal_function; static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) internal_function; static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) internal_function; static re_dfastate_t *find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) internal_function; static re_dfastate_t *transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) internal_function; static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) internal_function; static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) internal_function; #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *pstate) internal_function; #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) internal_function; static reg_errcode_t get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) internal_function; static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) internal_function; static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) internal_function; static reg_errcode_t check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) internal_function; static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) internal_function; static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) internal_function; static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) internal_function; static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) internal_function; static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) internal_function; #ifdef RE_ENABLE_I18N static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx idx) internal_function; # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, size_t name_len) internal_function; # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, bitset_t *states_ch) internal_function; static bool check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) internal_function; static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) internal_function; /* Entry point for POSIX code. */ /* regexec searches for a given pattern, specified by PREG, in the string STRING. If NMATCH is zero or REG_NOSUB was set in the cflags argument to 'regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at least NMATCH elements, and we set them to the offsets of the corresponding matched substrings. EFLAGS specifies "execution flags" which affect matching: if REG_NOTBOL is set, then ^ does not match at the beginning of the string; if REG_NOTEOL is set, then $ does not match at the end. We return 0 if we find a match and REG_NOMATCH if not. */ int regexec (preg, string, nmatch, pmatch, eflags) const regex_t *_Restrict_ preg; const char *_Restrict_ string; size_t nmatch; regmatch_t pmatch[_Restrict_arr_]; int eflags; { reg_errcode_t err; Idx start, length; #ifdef _LIBC re_dfa_t *dfa = preg->buffer; #endif if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND)) return REG_BADPAT; if (eflags & REG_STARTEND) { start = pmatch[0].rm_so; length = pmatch[0].rm_eo; } else { start = 0; length = strlen (string); } __libc_lock_lock (dfa->lock); if (preg->no_sub) err = re_search_internal (preg, string, length, start, length, length, 0, NULL, eflags); else err = re_search_internal (preg, string, length, start, length, length, nmatch, pmatch, eflags); __libc_lock_unlock (dfa->lock); return err != REG_NOERROR; } #ifdef _LIBC # include <shlib-compat.h> versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section __compat_regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, size_t nmatch, regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, eflags & (REG_NOTBOL | REG_NOTEOL)); } compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); # endif #endif /* Entry points for GNU code. */ /* re_match, re_search, re_match_2, re_search_2 The former two functions operate on STRING with length LENGTH, while the later two operate on concatenation of STRING1 and STRING2 with lengths LENGTH1 and LENGTH2, respectively. re_match() matches the compiled pattern in BUFP against the string, starting at index START. re_search() first tries matching at index START, then it tries to match starting from index START + 1, and so on. The last start position tried is START + RANGE. (Thus RANGE = 0 forces re_search to operate the same way as re_match().) The parameter STOP of re_{match,search}_2 specifies that no match exceeding the first STOP characters of the concatenation of the strings should be concerned. If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match and all groups is stored in REGS. (For the "_2" variants, the offsets are computed relative to the concatenation, not relative to the individual strings.) On success, re_match* functions return the length of the match, re_search* return the position of the start of the match. Return value -1 means no match was found and -2 indicates an internal error. */ regoff_t re_match (bufp, string, length, start, regs) struct re_pattern_buffer *bufp; const char *string; Idx length, start; struct re_registers *regs; { return re_search_stub (bufp, string, length, start, 0, length, regs, true); } #ifdef _LIBC weak_alias (__re_match, re_match) #endif regoff_t re_search (bufp, string, length, start, range, regs) struct re_pattern_buffer *bufp; const char *string; Idx length, start; regoff_t range; struct re_registers *regs; { return re_search_stub (bufp, string, length, start, range, length, regs, false); } #ifdef _LIBC weak_alias (__re_search, re_search) #endif regoff_t re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; Idx length1, length2, start, stop; struct re_registers *regs; { return re_search_2_stub (bufp, string1, length1, string2, length2, start, 0, regs, stop, true); } #ifdef _LIBC weak_alias (__re_match_2, re_match_2) #endif regoff_t re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; Idx length1, length2, start, stop; regoff_t range; struct re_registers *regs; { return re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs, stop, false); } #ifdef _LIBC weak_alias (__re_search_2, re_search_2) #endif static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len) { const char *str; regoff_t rval; Idx len = length1 + length2; char *s = NULL; if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0)) return -2; /* Concatenate the strings. */ if (length2 > 0) if (length1 > 0) { s = re_malloc (char, len); if (BE (s == NULL, 0)) return -2; #ifdef _LIBC memcpy (__mempcpy (s, string1, length1), string2, length2); #else memcpy (s, string1, length1); memcpy (s + length1, string2, length2); #endif str = s; } else str = string2; else str = string1; rval = re_search_stub (bufp, str, len, start, range, stop, regs, ret_len); re_free (s); return rval; } /* The parameters have the same meaning as those of re_search. Additional parameters: If RET_LEN is true the length of the match is returned (re_match style); otherwise the position of the match is returned. */ static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len) { reg_errcode_t result; regmatch_t *pmatch; Idx nregs; regoff_t rval; int eflags = 0; #ifdef _LIBC re_dfa_t *dfa = bufp->buffer; #endif Idx last_start = start + range; /* Check for out-of-range. */ if (BE (start < 0 || start > length, 0)) return -1; if (BE (length < last_start || (0 <= range && last_start < start), 0)) last_start = length; else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0)) last_start = 0; __libc_lock_lock (dfa->lock); eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; /* Compile fastmap if we haven't yet. */ if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate) re_compile_fastmap (bufp); if (BE (bufp->no_sub, 0)) regs = NULL; /* We need at least 1 register. */ if (regs == NULL) nregs = 1; else if (BE (bufp->regs_allocated == REGS_FIXED && regs->num_regs <= bufp->re_nsub, 0)) { nregs = regs->num_regs; if (BE (nregs < 1, 0)) { /* Nothing can be copied to regs. */ regs = NULL; nregs = 1; } } else nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); if (BE (pmatch == NULL, 0)) { rval = -2; goto out; } result = re_search_internal (bufp, string, length, start, last_start, stop, nregs, pmatch, eflags); rval = 0; /* I hope we needn't fill their regs with -1's when no match was found. */ if (result != REG_NOERROR) rval = result == REG_NOMATCH ? -1 : -2; else if (regs != NULL) { /* If caller wants register contents data back, copy them. */ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, bufp->regs_allocated); if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0)) rval = -2; } if (BE (rval == 0, 1)) { if (ret_len) { assert (pmatch[0].rm_so == start); rval = pmatch[0].rm_eo - start; } else rval = pmatch[0].rm_so; } re_free (pmatch); out: __libc_lock_unlock (dfa->lock); return rval; } static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated) { int rval = REGS_REALLOCATE; Idx i; Idx need_regs = nregs + 1; /* We need one extra element beyond 'num_regs' for the '-1' marker GNU code uses. */ /* Have the register data arrays been allocated? */ if (regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. */ regs->start = re_malloc (regoff_t, need_regs); if (BE (regs->start == NULL, 0)) return REGS_UNALLOCATED; regs->end = re_malloc (regoff_t, need_regs); if (BE (regs->end == NULL, 0)) { re_free (regs->start); return REGS_UNALLOCATED; } regs->num_regs = need_regs; } else if (regs_allocated == REGS_REALLOCATE) { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ if (BE (need_regs > regs->num_regs, 0)) { regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); regoff_t *new_end; if (BE (new_start == NULL, 0)) return REGS_UNALLOCATED; new_end = re_realloc (regs->end, regoff_t, need_regs); if (BE (new_end == NULL, 0)) { re_free (new_start); return REGS_UNALLOCATED; } regs->start = new_start; regs->end = new_end; regs->num_regs = need_regs; } } else { assert (regs_allocated == REGS_FIXED); /* This function may not be called with REGS_FIXED and nregs too big. */ assert (regs->num_regs >= nregs); rval = REGS_FIXED; } /* Copy the regs. */ for (i = 0; i < nregs; ++i) { regs->start[i] = pmatch[i].rm_so; regs->end[i] = pmatch[i].rm_eo; } for ( ; i < regs->num_regs; ++i) regs->start[i] = regs->end[i] = -1; return rval; } /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated using the malloc library routine, and must each be at least NUM_REGS * sizeof (regoff_t) bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ void re_set_registers (bufp, regs, num_regs, starts, ends) struct re_pattern_buffer *bufp; struct re_registers *regs; __re_size_t num_regs; regoff_t *starts, *ends; { if (num_regs) { bufp->regs_allocated = REGS_REALLOCATE; regs->num_regs = num_regs; regs->start = starts; regs->end = ends; } else { bufp->regs_allocated = REGS_UNALLOCATED; regs->num_regs = 0; regs->start = regs->end = NULL; } } #ifdef _LIBC weak_alias (__re_set_registers, re_set_registers) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC int # ifdef _LIBC weak_function # endif re_exec (s) const char *s; { return 0 == regexec (&re_comp_buf, s, 0, NULL, 0); } #endif /* _REGEX_RE_COMP */ /* Internal entry point. */ /* Searches for a compiled pattern PREG in the string STRING, whose length is LENGTH. NMATCH, PMATCH, and EFLAGS have the same meaning as with regexec. LAST_START is START + RANGE, where START and RANGE have the same meaning as with re_search. Return REG_NOERROR if we find a match, and REG_NOMATCH if not, otherwise return the error code. Note: We assume front end functions already check ranges. (0 <= LAST_START && LAST_START <= LENGTH) */ static reg_errcode_t __attribute_warn_unused_result__ re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; const re_dfa_t *dfa = preg->buffer; Idx left_lim, right_lim; int incr; bool fl_longest_match; int match_kind; Idx match_first; Idx match_last = REG_MISSING; Idx extra_nmatch; bool sb; int ch; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) re_match_context_t mctx = { .dfa = dfa }; #else re_match_context_t mctx; #endif char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate && start != last_start && !preg->can_be_null) ? preg->fastmap : NULL); RE_TRANSLATE_TYPE t = preg->translate; #if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) memset (&mctx, '\0', sizeof (re_match_context_t)); mctx.dfa = dfa; #endif extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0; nmatch -= extra_nmatch; /* Check if the DFA haven't been compiled. */ if (BE (preg->used == 0 || dfa->init_state == NULL || dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return REG_NOMATCH; #ifdef DEBUG /* We assume front-end functions already check them. */ assert (0 <= last_start && last_start <= length); #endif /* If initial states with non-begbuf contexts have no elements, the regex must be anchored. If preg->newline_anchor is set, we'll never use init_state_nl, so do not check it. */ if (dfa->init_state->nodes.nelem == 0 && dfa->init_state_word->nodes.nelem == 0 && (dfa->init_state_nl->nodes.nelem == 0 || !preg->newline_anchor)) { if (start != 0 && last_start != 0) return REG_NOMATCH; start = last_start = 0; } /* We must check the longest matching, if nmatch > 0. */ fl_longest_match = (nmatch != 0 || dfa->nbackref); err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, preg->translate, (preg->syntax & RE_ICASE) != 0, dfa); if (BE (err != REG_NOERROR, 0)) goto free_return; mctx.input.stop = stop; mctx.input.raw_stop = stop; mctx.input.newline_anchor = preg->newline_anchor; err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); if (BE (err != REG_NOERROR, 0)) goto free_return; /* We will log all the DFA states through which the dfa pass, if nmatch > 1, or this dfa has "multibyte node", which is a back-reference or a node which can accept multibyte character or multi character collating element. */ if (nmatch > 1 || dfa->has_mb_node) { /* Avoid overflow. */ if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= mctx.input.bufs_len), 0)) { err = REG_ESPACE; goto free_return; } mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); if (BE (mctx.state_log == NULL, 0)) { err = REG_ESPACE; goto free_return; } } else mctx.state_log = NULL; match_first = start; mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF; /* Check incrementally whether the input string matches. */ incr = (last_start < start) ? -1 : 1; left_lim = (last_start < start) ? last_start : start; right_lim = (last_start < start) ? start : last_start; sb = dfa->mb_cur_max == 1; match_kind = (fastmap ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) | (start <= last_start ? 2 : 0) | (t != NULL ? 1 : 0)) : 8); for (;; match_first += incr) { err = REG_NOMATCH; if (match_first < left_lim || right_lim < match_first) goto free_return; /* Advance as rapidly as possible through the string, until we find a plausible place to start matching. This may be done with varying efficiency, so there are various possibilities: only the most common of them are specialized, in order to save on code size. We use a switch statement for speed. */ switch (match_kind) { case 8: /* No fastmap. */ break; case 7: /* Fastmap with single-byte translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[t[(unsigned char) string[match_first]]]) ++match_first; goto forward_match_found_start_or_reached_end; case 6: /* Fastmap without translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[(unsigned char) string[match_first]]) ++match_first; forward_match_found_start_or_reached_end: if (BE (match_first == right_lim, 0)) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (!fastmap[t ? t[ch] : ch]) goto free_return; } break; case 4: case 5: /* Fastmap without multi-byte translation, match backwards. */ while (match_first >= left_lim) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (fastmap[t ? t[ch] : ch]) break; --match_first; } if (match_first < left_lim) goto free_return; break; default: /* In this case, we can't determine easily the current byte, since it might be a component byte of a multibyte character. Then we use the constructed buffer instead. */ for (;;) { /* If MATCH_FIRST is out of the valid range, reconstruct the buffers. */ __re_size_t offset = match_first - mctx.input.raw_mbs_idx; if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0)) { err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; offset = match_first - mctx.input.raw_mbs_idx; } /* If MATCH_FIRST is out of the buffer, leave it as '\0'. Note that MATCH_FIRST must not be smaller than 0. */ ch = (match_first >= length ? 0 : re_string_byte_at (&mctx.input, offset)); if (fastmap[ch]) break; match_first += incr; if (match_first < left_lim || match_first > right_lim) { err = REG_NOMATCH; goto free_return; } } break; } /* Reconstruct the buffers so that the matcher can assume that the matching starts from the beginning of the buffer. */ err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; #ifdef RE_ENABLE_I18N /* Don't consider this char as a possible match start if it part, yet isn't the head, of a multibyte character. */ if (!sb && !re_string_first_byte (&mctx.input, 0)) continue; #endif /* It seems to be appropriate one, then use the matcher. */ /* We assume that the matching starts from 0. */ mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0; match_last = check_matching (&mctx, fl_longest_match, start <= last_start ? &match_first : NULL); if (match_last != REG_MISSING) { if (BE (match_last == REG_ERROR, 0)) { err = REG_ESPACE; goto free_return; } else { mctx.match_last = match_last; if ((!preg->no_sub && nmatch > 1) || dfa->nbackref) { re_dfastate_t *pstate = mctx.state_log[match_last]; mctx.last_node = check_halt_state_context (&mctx, pstate, match_last); } if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match) || dfa->nbackref) { err = prune_impossible_nodes (&mctx); if (err == REG_NOERROR) break; if (BE (err != REG_NOMATCH, 0)) goto free_return; match_last = REG_MISSING; } else break; /* We found a match. */ } } match_ctx_clean (&mctx); } #ifdef DEBUG assert (match_last != REG_MISSING); assert (err == REG_NOERROR); #endif /* Set pmatch[] if we need. */ if (nmatch > 0) { Idx reg_idx; /* Initialize registers. */ for (reg_idx = 1; reg_idx < nmatch; ++reg_idx) pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1; /* Set the points where matching start/end. */ pmatch[0].rm_so = 0; pmatch[0].rm_eo = mctx.match_last; /* FIXME: This function should fail if mctx.match_last exceeds the maximum possible regoff_t value. We need a new error code REG_OVERFLOW. */ if (!preg->no_sub && nmatch > 1) { err = set_regs (preg, &mctx, nmatch, pmatch, dfa->has_plural_match && dfa->nbackref > 0); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* At last, add the offset to each register, since we slid the buffers so that we could assume that the matching starts from 0. */ for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so != -1) { #ifdef RE_ENABLE_I18N if (BE (mctx.input.offsets_needed != 0, 0)) { pmatch[reg_idx].rm_so = (pmatch[reg_idx].rm_so == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_so]); pmatch[reg_idx].rm_eo = (pmatch[reg_idx].rm_eo == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } #else assert (mctx.input.offsets_needed == 0); #endif pmatch[reg_idx].rm_so += match_first; pmatch[reg_idx].rm_eo += match_first; } for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx) { pmatch[nmatch + reg_idx].rm_so = -1; pmatch[nmatch + reg_idx].rm_eo = -1; } if (dfa->subexp_map) for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) if (dfa->subexp_map[reg_idx] != reg_idx) { pmatch[reg_idx + 1].rm_so = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; pmatch[reg_idx + 1].rm_eo = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; } } free_return: re_free (mctx.state_log); if (dfa->nbackref) match_ctx_free (&mctx); re_string_destruct (&mctx.input); return err; } static reg_errcode_t __attribute_warn_unused_result__ prune_impossible_nodes (re_match_context_t *mctx) { const re_dfa_t *const dfa = mctx->dfa; Idx halt_node, match_last; reg_errcode_t ret; re_dfastate_t **sifted_states; re_dfastate_t **lim_states = NULL; re_sift_context_t sctx; #ifdef DEBUG assert (mctx->state_log != NULL); #endif match_last = mctx->match_last; halt_node = mctx->last_node; /* Avoid overflow. */ if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0)) return REG_ESPACE; sifted_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (sifted_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } if (dfa->nbackref) { lim_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (lim_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } while (1) { memset (lim_states, '\0', sizeof (re_dfastate_t *) * (match_last + 1)); sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] != NULL || lim_states[0] != NULL) break; do { --match_last; if (! REG_VALID_INDEX (match_last)) { ret = REG_NOMATCH; goto free_return; } } while (mctx->state_log[match_last] == NULL || !mctx->state_log[match_last]->halt); halt_node = check_halt_state_context (mctx, mctx->state_log[match_last], match_last); } ret = merge_state_array (dfa, sifted_states, lim_states, match_last + 1); re_free (lim_states); lim_states = NULL; if (BE (ret != REG_NOERROR, 0)) goto free_return; } else { sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] == NULL) { ret = REG_NOMATCH; goto free_return; } } re_free (mctx->state_log); mctx->state_log = sifted_states; sifted_states = NULL; mctx->last_node = halt_node; mctx->match_last = match_last; ret = REG_NOERROR; free_return: re_free (sifted_states); re_free (lim_states); return ret; } /* Acquire an initial state and return it. We must select appropriate initial state depending on the context, since initial states may have constraints like "\<", "^", etc.. */ static inline re_dfastate_t * __attribute ((always_inline)) internal_function acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, Idx idx) { const re_dfa_t *const dfa = mctx->dfa; if (dfa->init_state->has_constraint) { unsigned int context; context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return dfa->init_state_word; else if (IS_ORDINARY_CONTEXT (context)) return dfa->init_state; else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context)) return dfa->init_state_begbuf; else if (IS_NEWLINE_CONTEXT (context)) return dfa->init_state_nl; else if (IS_BEGBUF_CONTEXT (context)) { /* It is relatively rare case, then calculate on demand. */ return re_acquire_state_context (err, dfa, dfa->init_state->entrance_nodes, context); } else /* Must not happen? */ return dfa->init_state; } else return dfa->init_state; } /* Check whether the regular expression match input string INPUT or not, and return the index where the matching end. Return REG_MISSING if there is no match, and return REG_ERROR in case of an error. FL_LONGEST_MATCH means we want the POSIX longest matching. If P_MATCH_FIRST is not NULL, and the match fails, it is set to the next place where we may want to try matching. Note that the matcher assumes that the matching starts from the current index of the buffer. */ static Idx internal_function __attribute_warn_unused_result__ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx match = 0; Idx match_last = REG_MISSING; Idx cur_str_idx = re_string_cur_idx (&mctx->input); re_dfastate_t *cur_state; bool at_init_state = p_match_first != NULL; Idx next_start_idx = cur_str_idx; err = REG_NOERROR; cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); /* An initial state must not be NULL (invalid). */ if (BE (cur_state == NULL, 0)) { assert (err == REG_ESPACE); return REG_ERROR; } if (mctx->state_log != NULL) { mctx->state_log[cur_str_idx] = cur_state; /* Check OP_OPEN_SUBEXP in the initial state in case that we use them later. E.g. Processing back references. */ if (BE (dfa->nbackref, 0)) { at_init_state = false; err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); if (BE (err != REG_NOERROR, 0)) return err; if (cur_state->has_backref) { err = transit_state_bkref (mctx, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } } } /* If the RE accepts NULL string. */ if (BE (cur_state->halt, 0)) { if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, cur_str_idx)) { if (!fl_longest_match) return cur_str_idx; else { match_last = cur_str_idx; match = 1; } } } while (!re_string_eoi (&mctx->input)) { re_dfastate_t *old_state = cur_state; Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1; if ((BE (next_char_idx >= mctx->input.bufs_len, 0) && mctx->input.bufs_len < mctx->input.len) || (BE (next_char_idx >= mctx->input.valid_len, 0) && mctx->input.valid_len < mctx->input.len)) { err = extend_buffers (mctx, next_char_idx + 1); if (BE (err != REG_NOERROR, 0)) { assert (err == REG_ESPACE); return REG_ERROR; } } cur_state = transit_state (&err, mctx, cur_state); if (mctx->state_log != NULL) cur_state = merge_state_with_log (&err, mctx, cur_state); if (cur_state == NULL) { /* Reached the invalid state or an error. Try to recover a valid state using the state log, if available and if we have not already found a valid (even if not the longest) match. */ if (BE (err != REG_NOERROR, 0)) return REG_ERROR; if (mctx->state_log == NULL || (match && !fl_longest_match) || (cur_state = find_recover_state (&err, mctx)) == NULL) break; } if (BE (at_init_state, 0)) { if (old_state == cur_state) next_start_idx = next_char_idx; else at_init_state = false; } if (cur_state->halt) { /* Reached a halt state. Check the halt state can satisfy the current context. */ if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, re_string_cur_idx (&mctx->input))) { /* We found an appropriate halt state. */ match_last = re_string_cur_idx (&mctx->input); match = 1; /* We found a match, do not modify match_first below. */ p_match_first = NULL; if (!fl_longest_match) break; } } } if (p_match_first) *p_match_first += next_start_idx; return match_last; } /* Check NODE match the current context. */ static bool internal_function check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; unsigned int constraint = dfa->nodes[node].constraint; if (type != END_OF_RE) return false; if (!constraint) return true; if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context)) return false; return true; } /* Check the halt state STATE match the current context. Return 0 if not match, if the node, STATE has, is a halt node and match the context, return the node. */ static Idx internal_function check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) { Idx i; unsigned int context; #ifdef DEBUG assert (state->halt); #endif context = re_string_context_at (&mctx->input, idx, mctx->eflags); for (i = 0; i < state->nodes.nelem; ++i) if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context)) return state->nodes.elems[i]; return 0; } /* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA corresponding to the DFA). Return the destination node, and update EPS_VIA_NODES; return REG_MISSING in case of errors. */ static Idx internal_function proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, Idx *pidx, Idx node, re_node_set *eps_via_nodes, struct re_fail_stack_t *fs) { const re_dfa_t *const dfa = mctx->dfa; Idx i; bool ok; if (IS_EPSILON_NODE (dfa->nodes[node].type)) { re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; re_node_set *edests = &dfa->edests[node]; Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return REG_ERROR; /* Pick up a valid destination, or return REG_MISSING if none is found. */ for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i) { Idx candidate = edests->elems[i]; if (!re_node_set_contains (cur_nodes, candidate)) continue; if (dest_node == REG_MISSING) dest_node = candidate; else { /* In order to avoid infinite loop like "(a*)*", return the second epsilon-transition if the first was already considered. */ if (re_node_set_contains (eps_via_nodes, dest_node)) return candidate; /* Otherwise, push the second epsilon-transition on the fail stack. */ else if (fs != NULL && push_fail_stack (fs, *pidx, candidate, nregs, regs, eps_via_nodes)) return REG_ERROR; /* We know we are going to exit. */ break; } } return dest_node; } else { Idx naccepted = 0; re_token_type_t type = dfa->nodes[node].type; #ifdef RE_ENABLE_I18N if (dfa->nodes[node].accept_mb) naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx); else #endif /* RE_ENABLE_I18N */ if (type == OP_BACK_REF) { Idx subexp_idx = dfa->nodes[node].opr.idx + 1; naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; if (fs != NULL) { if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1) return REG_MISSING; else if (naccepted) { char *buf = (char *) re_string_get_buffer (&mctx->input); if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, naccepted) != 0) return REG_MISSING; } } if (naccepted == 0) { Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return REG_ERROR; dest_node = dfa->edests[node].elems[0]; if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node)) return dest_node; } } if (naccepted != 0 || check_node_accept (mctx, dfa->nodes + node, *pidx)) { Idx dest_node = dfa->nexts[node]; *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted; if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node))) return REG_MISSING; re_node_set_empty (eps_via_nodes); return dest_node; } } return REG_MISSING; } static reg_errcode_t internal_function __attribute_warn_unused_result__ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { reg_errcode_t err; Idx num = fs->num++; if (fs->num == fs->alloc) { struct re_fail_stack_ent_t *new_array; new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t) * fs->alloc * 2)); if (new_array == NULL) return REG_ESPACE; fs->alloc *= 2; fs->stack = new_array; } fs->stack[num].idx = str_idx; fs->stack[num].node = dest_node; fs->stack[num].regs = re_malloc (regmatch_t, nregs); if (fs->stack[num].regs == NULL) return REG_ESPACE; memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs); err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes); return err; } static Idx internal_function pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { Idx num = --fs->num; assert (REG_VALID_INDEX (num)); *pidx = fs->stack[num].idx; memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs); re_node_set_free (eps_via_nodes); re_free (fs->stack[num].regs); *eps_via_nodes = fs->stack[num].eps_via_nodes; return fs->stack[num].node; } /* Set the positions where the subexpressions are starts/ends to registers PMATCH. Note: We assume that pmatch[0] is already set, and pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) { const re_dfa_t *dfa = preg->buffer; Idx idx, cur_node; re_node_set eps_via_nodes; struct re_fail_stack_t *fs; struct re_fail_stack_t fs_body = { 0, 2, NULL }; regmatch_t *prev_idx_match; bool prev_idx_match_malloced = false; #ifdef DEBUG assert (nmatch > 1); assert (mctx->state_log != NULL); #endif if (fl_backtrack) { fs = &fs_body; fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc); if (fs->stack == NULL) return REG_ESPACE; } else fs = NULL; cur_node = dfa->init_node; re_node_set_init_empty (&eps_via_nodes); if (__libc_use_alloca (nmatch * sizeof (regmatch_t))) prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t)); else { prev_idx_match = re_malloc (regmatch_t, nmatch); if (prev_idx_match == NULL) { free_fail_stack_return (fs); return REG_ESPACE; } prev_idx_match_malloced = true; } memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) { update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) { Idx reg_idx; if (fs) { for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1) break; if (reg_idx == nmatch) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); } else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOERROR; } } /* Proceed to next node. */ cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node, &eps_via_nodes, fs); if (BE (! REG_VALID_INDEX (cur_node), 0)) { if (BE (cur_node == REG_ERROR, 0)) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); free_fail_stack_return (fs); return REG_ESPACE; } if (fs) cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOMATCH; } } } re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } static reg_errcode_t internal_function free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) { Idx fs_idx; for (fs_idx = 0; fs_idx < fs->num; ++fs_idx) { re_node_set_free (&fs->stack[fs_idx].eps_via_nodes); re_free (fs->stack[fs_idx].regs); } re_free (fs->stack); } return REG_NOERROR; } static void internal_function update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) { int type = dfa->nodes[cur_node].type; if (type == OP_OPEN_SUBEXP) { Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; /* We are at the first node of this sub expression. */ if (reg_num < nmatch) { pmatch[reg_num].rm_so = cur_idx; pmatch[reg_num].rm_eo = -1; } } else if (type == OP_CLOSE_SUBEXP) { Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; if (reg_num < nmatch) { /* We are at the last node of this sub expression. */ if (pmatch[reg_num].rm_so < cur_idx) { pmatch[reg_num].rm_eo = cur_idx; /* This is a non-empty match or we are not inside an optional subexpression. Accept this right away. */ memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); } else { if (dfa->nodes[cur_node].opt_subexp && prev_idx_match[reg_num].rm_so != -1) /* We transited through an empty match for an optional subexpression, like (a?)*, and this is not the subexp's first match. Copy back the old content of the registers so that matches of an inner subexpression are undone as well, like in ((a?))*. */ memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch); else /* We completed a subexpression, but it may be part of an optional one, so do not update PREV_IDX_MATCH. */ pmatch[reg_num].rm_eo = cur_idx; } } } } /* This function checks the STATE_LOG from the SCTX->last_str_idx to 0 and sift the nodes in each states according to the following rules. Updated state_log will be wrote to STATE_LOG. Rules: We throw away the Node 'a' in the STATE_LOG[STR_IDX] if... 1. When STR_IDX == MATCH_LAST(the last index in the state_log): If 'a' isn't the LAST_NODE and 'a' can't epsilon transit to the LAST_NODE, we throw away the node 'a'. 2. When 0 <= STR_IDX < MATCH_LAST and 'a' accepts string 's' and transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw away the node 'a'. ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is thrown away, we throw away the node 'a'. 3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the node 'a'. ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away, we throw away the node 'a'. */ #define STATE_NODE_CONTAINS(state,node) \ ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t internal_function sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; int null_cnt = 0; Idx str_idx = sctx->last_str_idx; re_node_set cur_dest; #ifdef DEBUG assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); #endif /* Build sifted state_log[str_idx]. It has the nodes which can epsilon transit to the last_node and the last_node itself. */ err = re_node_set_init_1 (&cur_dest, sctx->last_node); if (BE (err != REG_NOERROR, 0)) return err; err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; /* Then check each states in the state_log. */ while (str_idx > 0) { /* Update counters. */ null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0; if (null_cnt > mctx->max_mb_elem_len) { memset (sctx->sifted_states, '\0', sizeof (re_dfastate_t *) * str_idx); re_node_set_free (&cur_dest); return REG_NOERROR; } re_node_set_empty (&cur_dest); --str_idx; if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* Add all the nodes which satisfy the following conditions: - It can epsilon transit to a node in CUR_DEST. - It is in CUR_SRC. And update state_log. */ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } err = REG_NOERROR; free_return: re_node_set_free (&cur_dest); return err; } static reg_errcode_t internal_function __attribute_warn_unused_result__ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; Idx i; /* Then build the next sifted state. We build the next sifted state on 'cur_dest', and update 'sifted_states[str_idx]' with 'cur_dest'. Note: 'cur_dest' is the sifted state from 'state_log[str_idx + 1]'. 'cur_src' points the node_set of the old 'state_log[str_idx]' (with the epsilon nodes pre-filtered out). */ for (i = 0; i < cur_src->nelem; i++) { Idx prev_node = cur_src->elems[i]; int naccepted = 0; bool ok; #ifdef DEBUG re_token_type_t type = dfa->nodes[prev_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[prev_node].accept_mb) naccepted = sift_states_iter_mb (mctx, sctx, prev_node, str_idx, sctx->last_str_idx); #endif /* RE_ENABLE_I18N */ /* We don't check backreferences here. See update_cur_sifted_state(). */ if (!naccepted && check_node_accept (mctx, dfa->nodes + prev_node, str_idx) && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1], dfa->nexts[prev_node])) naccepted = 1; if (naccepted == 0) continue; if (sctx->limits.nelem) { Idx to_idx = str_idx + naccepted; if (check_dst_limits (mctx, &sctx->limits, dfa->nexts[prev_node], to_idx, prev_node, str_idx)) continue; } ok = re_node_set_insert (cur_dest, prev_node); if (BE (! ok, 0)) return REG_ESPACE; } return REG_NOERROR; } /* Helper functions. */ static reg_errcode_t internal_function clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { Idx top = mctx->state_log_top; if ((next_state_log_idx >= mctx->input.bufs_len && mctx->input.bufs_len < mctx->input.len) || (next_state_log_idx >= mctx->input.valid_len && mctx->input.valid_len < mctx->input.len)) { reg_errcode_t err; err = extend_buffers (mctx, next_state_log_idx + 1); if (BE (err != REG_NOERROR, 0)) return err; } if (top < next_state_log_idx) { memset (mctx->state_log + top + 1, '\0', sizeof (re_dfastate_t *) * (next_state_log_idx - top)); mctx->state_log_top = next_state_log_idx; } return REG_NOERROR; } static reg_errcode_t internal_function merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) { Idx st_idx; reg_errcode_t err; for (st_idx = 0; st_idx < num; ++st_idx) { if (dst[st_idx] == NULL) dst[st_idx] = src[st_idx]; else if (src[st_idx] != NULL) { re_node_set merged_set; err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, &src[st_idx]->nodes); if (BE (err != REG_NOERROR, 0)) return err; dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); re_node_set_free (&merged_set); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } static reg_errcode_t internal_function update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; const re_node_set *candidates; candidates = ((mctx->state_log[str_idx] == NULL) ? NULL : &mctx->state_log[str_idx]->nodes); if (dest_nodes->nelem == 0) sctx->sifted_states[str_idx] = NULL; else { if (candidates) { /* At first, add the nodes which can epsilon transit to a node in DEST_NODE. */ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; /* Then, check the limitations in the current sift_context. */ if (sctx->limits.nelem) { err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, mctx->bkref_ents, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; } if (candidates && mctx->state_log[str_idx]->has_backref) { err = sift_states_bkref (mctx, sctx, str_idx, candidates); if (BE (err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { reg_errcode_t err = REG_NOERROR; Idx i; re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; if (!state->inveclosure.alloc) { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) { err = re_node_set_merge (&state->inveclosure, dfa->inveclosures + dest_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; } } return re_node_set_add_intersect (dest_nodes, candidates, &state->inveclosure); } static reg_errcode_t internal_function sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, const re_node_set *candidates) { Idx ecl_idx; reg_errcode_t err; re_node_set *inv_eclosure = dfa->inveclosures + node; re_node_set except_nodes; re_node_set_init_empty (&except_nodes); for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { Idx cur_node = inv_eclosure->elems[ecl_idx]; if (cur_node == node) continue; if (IS_EPSILON_NODE (dfa->nodes[cur_node].type)) { Idx edst1 = dfa->edests[cur_node].elems[0]; Idx edst2 = ((dfa->edests[cur_node].nelem > 1) ? dfa->edests[cur_node].elems[1] : REG_MISSING); if ((!re_node_set_contains (inv_eclosure, edst1) && re_node_set_contains (dest_nodes, edst1)) || (REG_VALID_NONZERO_INDEX (edst2) && !re_node_set_contains (inv_eclosure, edst2) && re_node_set_contains (dest_nodes, edst2))) { err = re_node_set_add_intersect (&except_nodes, candidates, dfa->inveclosures + cur_node); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&except_nodes); return err; } } } } for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { Idx cur_node = inv_eclosure->elems[ecl_idx]; if (!re_node_set_contains (&except_nodes, cur_node)) { Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1; re_node_set_remove_at (dest_nodes, idx); } } re_node_set_free (&except_nodes); return REG_NOERROR; } static bool internal_function check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx lim_idx, src_pos, dst_pos; Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx); Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx); for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { Idx subexp_idx; struct re_backref_cache_entry *ent; ent = mctx->bkref_ents + limits->elems[lim_idx]; subexp_idx = dfa->nodes[ent->node].opr.idx; dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, dst_node, dst_idx, dst_bkref_idx); src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, src_node, src_idx, src_bkref_idx); /* In case of: <src> <dst> ( <subexp> ) ( <subexp> ) <src> <dst> ( <subexp1> <src> <subexp2> <dst> <subexp3> ) */ if (src_pos == dst_pos) continue; /* This is unrelated limitation. */ else return true; } return false; } static int internal_function check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *eclosures = dfa->eclosures + from_node; Idx node_idx; /* Else, we are on the boundary: examine the nodes on the epsilon closure. */ for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx) { Idx node = eclosures->elems[node_idx]; switch (dfa->nodes[node].type) { case OP_BACK_REF: if (bkref_idx != REG_MISSING) { struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; do { Idx dst; int cpos; if (ent->node != node) continue; if (subexp_idx < BITSET_WORD_BITS && !(ent->eps_reachable_subexps_map & ((bitset_word_t) 1 << subexp_idx))) continue; /* Recurse trying to reach the OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP cases below. But, if the destination node is the same node as the source node, don't recurse because it would cause an infinite loop: a regex that exhibits this behavior is ()\1*\1* */ dst = dfa->edests[node].elems[0]; if (dst == from_node) { if (boundaries & 1) return -1; else /* if (boundaries & 2) */ return 0; } cpos = check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, dst, bkref_idx); if (cpos == -1 /* && (boundaries & 1) */) return -1; if (cpos == 0 && (boundaries & 2)) return 0; if (subexp_idx < BITSET_WORD_BITS) ent->eps_reachable_subexps_map &= ~((bitset_word_t) 1 << subexp_idx); } while (ent++->more); } break; case OP_OPEN_SUBEXP: if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx) return -1; break; case OP_CLOSE_SUBEXP: if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx) return 0; break; default: break; } } return (boundaries & 2) ? 1 : 0; } static int internal_function check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx from_node, Idx str_idx, Idx bkref_idx) { struct re_backref_cache_entry *lim = mctx->bkref_ents + limit; int boundaries; /* If we are outside the range of the subexpression, return -1 or 1. */ if (str_idx < lim->subexp_from) return -1; if (lim->subexp_to < str_idx) return 1; /* If we are within the subexpression, return 0. */ boundaries = (str_idx == lim->subexp_from); boundaries |= (str_idx == lim->subexp_to) << 1; if (boundaries == 0) return 0; /* Else, examine epsilon closure. */ return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, from_node, bkref_idx); } /* Check the limitations of sub expressions LIMITS, and remove the nodes which are against limitations from DEST_NODES. */ static reg_errcode_t internal_function check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) { reg_errcode_t err; Idx node_idx, lim_idx; for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { Idx subexp_idx; struct re_backref_cache_entry *ent; ent = bkref_ents + limits->elems[lim_idx]; if (str_idx <= ent->subexp_from || ent->str_idx < str_idx) continue; /* This is unrelated limitation. */ subexp_idx = dfa->nodes[ent->node].opr.idx; if (ent->subexp_to == str_idx) { Idx ops_node = REG_MISSING; Idx cls_node = REG_MISSING; for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_OPEN_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) ops_node = node; else if (type == OP_CLOSE_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) cls_node = node; } /* Check the limitation of the open subexpression. */ /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */ if (REG_VALID_INDEX (ops_node)) { err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } /* Check the limitation of the close subexpression. */ if (REG_VALID_INDEX (cls_node)) for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; if (!re_node_set_contains (dfa->inveclosures + node, cls_node) && !re_node_set_contains (dfa->eclosures + node, cls_node)) { /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; --node_idx; } } } else /* (ent->subexp_to != str_idx) */ { for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP) { if (subexp_idx != dfa->nodes[node].opr.idx) continue; /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } } } } return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx node_idx, node; re_sift_context_t local_sctx; Idx first_idx = search_cur_bkref_entry (mctx, str_idx); if (first_idx == REG_MISSING) return REG_NOERROR; local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */ for (node_idx = 0; node_idx < candidates->nelem; ++node_idx) { Idx enabled_idx; re_token_type_t type; struct re_backref_cache_entry *entry; node = candidates->elems[node_idx]; type = dfa->nodes[node].type; /* Avoid infinite loop for the REs like "()\1+". */ if (node == sctx->last_node && str_idx == sctx->last_str_idx) continue; if (type != OP_BACK_REF) continue; entry = mctx->bkref_ents + first_idx; enabled_idx = first_idx; do { Idx subexp_len; Idx to_idx; Idx dst_node; bool ok; re_dfastate_t *cur_state; if (entry->node != node) continue; subexp_len = entry->subexp_to - entry->subexp_from; to_idx = str_idx + subexp_len; dst_node = (subexp_len ? dfa->nexts[node] : dfa->edests[node].elems[0]); if (to_idx > sctx->last_str_idx || sctx->sifted_states[to_idx] == NULL || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node) || check_dst_limits (mctx, &sctx->limits, node, str_idx, dst_node, to_idx)) continue; if (local_sctx.sifted_states == NULL) { local_sctx = *sctx; err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; ok = re_node_set_insert (&local_sctx.limits, enabled_idx); if (BE (! ok, 0)) { err = REG_ESPACE; goto free_return; } cur_state = local_sctx.sifted_states[str_idx]; err = sift_states_backward (mctx, &local_sctx); if (BE (err != REG_NOERROR, 0)) goto free_return; if (sctx->limited_states != NULL) { err = merge_state_array (dfa, sctx->limited_states, local_sctx.sifted_states, str_idx + 1); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.sifted_states[str_idx] = cur_state; re_node_set_remove (&local_sctx.limits, enabled_idx); /* mctx->bkref_ents may have changed, reload the pointer. */ entry = mctx->bkref_ents + enabled_idx; } while (enabled_idx++, entry++->more); } err = REG_NOERROR; free_return: if (local_sctx.sifted_states != NULL) { re_node_set_free (&local_sctx.limits); } return err; } #ifdef RE_ENABLE_I18N static int internal_function sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) { const re_dfa_t *const dfa = mctx->dfa; int naccepted; /* Check the node can accept "multi byte". */ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); if (naccepted > 0 && str_idx + naccepted <= max_str_idx && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], dfa->nexts[node_idx])) /* The node can't accept the "multi byte", or the destination was already thrown away, then the node could't accept the current input "multi byte". */ naccepted = 0; /* Otherwise, it is sure that the node could accept 'naccepted' bytes input. */ return naccepted; } #endif /* RE_ENABLE_I18N */ /* Functions for state transition. */ /* Return the next state to which the current state STATE will transit by accepting the current input byte, and update STATE_LOG if necessary. If STATE can accept a multibyte char/collating element/back reference update the destination of STATE_LOG. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { re_dfastate_t **trtable; unsigned char ch; #ifdef RE_ENABLE_I18N /* If the current state can accept multibyte. */ if (BE (state->accept_mb, 0)) { *err = transit_state_mb (mctx, state); if (BE (*err != REG_NOERROR, 0)) return NULL; } #endif /* RE_ENABLE_I18N */ /* Then decide the next state with the single byte. */ #if 0 if (0) /* don't use transition table */ return transit_state_sb (err, mctx, state); #endif /* Use transition table */ ch = re_string_fetch_byte (&mctx->input); for (;;) { trtable = state->trtable; if (BE (trtable != NULL, 1)) return trtable[ch]; trtable = state->word_trtable; if (BE (trtable != NULL, 1)) { unsigned int context; context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return trtable[ch + SBC_MAX]; else return trtable[ch]; } if (!build_trtable (mctx->dfa, state)) { *err = REG_ESPACE; return NULL; } /* Retry, we now have a transition table. */ } } /* Update the state_log if we need */ static re_dfastate_t * internal_function merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) { const re_dfa_t *const dfa = mctx->dfa; Idx cur_idx = re_string_cur_idx (&mctx->input); if (cur_idx > mctx->state_log_top) { mctx->state_log[cur_idx] = next_state; mctx->state_log_top = cur_idx; } else if (mctx->state_log[cur_idx] == 0) { mctx->state_log[cur_idx] = next_state; } else { re_dfastate_t *pstate; unsigned int context; re_node_set next_nodes, *log_nodes, *table_nodes = NULL; /* If (state_log[cur_idx] != 0), it implies that cur_idx is the destination of a multibyte char/collating element/ back reference. Then the next state is the union set of these destinations and the results of the transition table. */ pstate = mctx->state_log[cur_idx]; log_nodes = pstate->entrance_nodes; if (next_state != NULL) { table_nodes = next_state->entrance_nodes; *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; } else next_nodes = *log_nodes; /* Note: We already add the nodes of the initial state, then we don't need to add them here. */ context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); next_state = mctx->state_log[cur_idx] = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ if (table_nodes != NULL) re_node_set_free (&next_nodes); } if (BE (dfa->nbackref, 0) && next_state != NULL) { /* Check OP_OPEN_SUBEXP in the current state in case that we use them later. We must check them here, since the back references in the next state might use them. */ *err = check_subexp_matching_top (mctx, &next_state->nodes, cur_idx); if (BE (*err != REG_NOERROR, 0)) return NULL; /* If the next state has back references. */ if (next_state->has_backref) { *err = transit_state_bkref (mctx, &next_state->nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; next_state = mctx->state_log[cur_idx]; } } return next_state; } /* Skip bytes in the input that correspond to part of a multi-byte match, then look in the log for a state from which to restart matching. */ static re_dfastate_t * internal_function find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { re_dfastate_t *cur_state; do { Idx max = mctx->state_log_top; Idx cur_str_idx = re_string_cur_idx (&mctx->input); do { if (++cur_str_idx > max) return NULL; re_string_skip_bytes (&mctx->input, 1); } while (mctx->state_log[cur_str_idx] == NULL); cur_state = merge_state_with_log (err, mctx, NULL); } while (*err == REG_NOERROR && cur_state == NULL); return cur_state; } /* Helper functions for transit_state. */ /* From the node set CUR_NODES, pick up the nodes whose types are OP_OPEN_SUBEXP and which have corresponding back references in the regular expression. And register them to use them later for evaluating the corresponding back references. */ static reg_errcode_t internal_function check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx node_idx; reg_errcode_t err; /* TODO: This isn't efficient. Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx) { Idx node = cur_nodes->elems[node_idx]; if (dfa->nodes[node].type == OP_OPEN_SUBEXP && dfa->nodes[node].opr.idx < BITSET_WORD_BITS && (dfa->used_bkref_map & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } #if 0 /* Return the next state to which the current state STATE will transit by accepting the current input byte. */ static re_dfastate_t * transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { const re_dfa_t *const dfa = mctx->dfa; re_node_set next_nodes; re_dfastate_t *next_state; Idx node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input); unsigned int context; *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); if (BE (*err != REG_NOERROR, 0)) return NULL; for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) { Idx cur_node = state->nodes.elems[node_cnt]; if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx)) { *err = re_node_set_merge (&next_nodes, dfa->eclosures + dfa->nexts[cur_node]); if (BE (*err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return NULL; } } } context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); next_state = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ re_node_set_free (&next_nodes); re_string_skip_bytes (&mctx->input, 1); return next_state; } #endif #ifdef RE_ENABLE_I18N static reg_errcode_t internal_function transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx i; for (i = 0; i < pstate->nodes.nelem; ++i) { re_node_set dest_nodes, *new_nodes; Idx cur_node_idx = pstate->nodes.elems[i]; int naccepted; Idx dest_idx; unsigned int context; re_dfastate_t *dest_state; if (!dfa->nodes[cur_node_idx].accept_mb) continue; if (dfa->nodes[cur_node_idx].constraint) { context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input), mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint, context)) continue; } /* How many bytes the node can accept? */ naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input, re_string_cur_idx (&mctx->input)); if (naccepted == 0) continue; /* The node can accepts 'naccepted' bytes. */ dest_idx = re_string_cur_idx (&mctx->input) + naccepted; mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); if (BE (err != REG_NOERROR, 0)) return err; #ifdef DEBUG assert (dfa->nexts[cur_node_idx] != REG_MISSING); #endif new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx]; dest_state = mctx->state_log[dest_idx]; if (dest_state == NULL) dest_nodes = *new_nodes; else { err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_nodes); if (BE (err != REG_NOERROR, 0)) return err; } context = re_string_context_at (&mctx->input, dest_idx - 1, mctx->eflags); mctx->state_log[dest_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ static reg_errcode_t internal_function transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx i; Idx cur_str_idx = re_string_cur_idx (&mctx->input); for (i = 0; i < nodes->nelem; ++i) { Idx dest_str_idx, prev_nelem, bkc_idx; Idx node_idx = nodes->elems[i]; unsigned int context; const re_token_t *node = dfa->nodes + node_idx; re_node_set *new_dest_nodes; /* Check whether 'node' is a backreference or not. */ if (node->type != OP_BACK_REF) continue; if (node->constraint) { context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) continue; } /* 'node' is a backreference. Check the substring which the substring matched. */ bkc_idx = mctx->nbkref_ents; err = get_subexp (mctx, node_idx, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; /* And add the epsilon closures (which is 'new_dest_nodes') of the backreference to appropriate state_log. */ #ifdef DEBUG assert (dfa->nexts[node_idx] != REG_MISSING); #endif for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx) { Idx subexp_len; re_dfastate_t *dest_state; struct re_backref_cache_entry *bkref_ent; bkref_ent = mctx->bkref_ents + bkc_idx; if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx) continue; subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from; new_dest_nodes = (subexp_len == 0 ? dfa->eclosures + dfa->edests[node_idx].elems[0] : dfa->eclosures + dfa->nexts[node_idx]); dest_str_idx = (cur_str_idx + bkref_ent->subexp_to - bkref_ent->subexp_from); context = re_string_context_at (&mctx->input, dest_str_idx - 1, mctx->eflags); dest_state = mctx->state_log[dest_str_idx]; prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0 : mctx->state_log[cur_str_idx]->nodes.nelem); /* Add 'new_dest_node' to state_log. */ if (dest_state == NULL) { mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, new_dest_nodes, context); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } else { re_node_set dest_nodes; err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&dest_nodes); goto free_return; } mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } /* We need to check recursively if the backreference can epsilon transit. */ if (subexp_len == 0 && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem) { err = check_subexp_matching_top (mctx, new_dest_nodes, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; err = transit_state_bkref (mctx, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) goto free_return; } } } err = REG_NOERROR; free_return: return err; } /* Enumerate all the candidates which the backreference BKREF_NODE can match at BKREF_STR_IDX, and register them by match_ctx_add_entry(). Note that we might collect inappropriate candidates here. However, the cost of checking them strictly here is too high, then we delay these checking for prune_impossible_nodes(). */ static reg_errcode_t internal_function __attribute_warn_unused_result__ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx subexp_num, sub_top_idx; const char *buf = (const char *) re_string_get_buffer (&mctx->input); /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); if (cache_idx != REG_MISSING) { const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; do if (entry->node == bkref_node) return REG_NOERROR; /* We already checked it. */ while (entry++->more); } subexp_num = dfa->nodes[bkref_node].opr.idx; /* For each sub expression */ for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx) { reg_errcode_t err; re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx]; re_sub_match_last_t *sub_last; Idx sub_last_idx, sl_str, bkref_str_off; if (dfa->nodes[sub_top->node].opr.idx != subexp_num) continue; /* It isn't related. */ sl_str = sub_top->str_idx; bkref_str_off = bkref_str_idx; /* At first, check the last node of sub expressions we already evaluated. */ for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx) { regoff_t sl_str_diff; sub_last = sub_top->lasts[sub_last_idx]; sl_str_diff = sub_last->str_idx - sl_str; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_diff > 0) { if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0)) { /* Not enough chars for a successful match. */ if (bkref_str_off + sl_str_diff > mctx->input.len) break; err = clean_state_log_if_needed (mctx, bkref_str_off + sl_str_diff); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0) /* We don't need to search this sub expression any more. */ break; } bkref_str_off += sl_str_diff; sl_str += sl_str_diff; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); /* Reload buf, since the preceding call might have reallocated the buffer. */ buf = (const char *) re_string_get_buffer (&mctx->input); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; } if (sub_last_idx < sub_top->nlasts) continue; if (sub_last_idx > 0) ++sl_str; /* Then, search for the other last nodes of the sub expression. */ for (; sl_str <= bkref_str_idx; ++sl_str) { Idx cls_node; regoff_t sl_str_off; const re_node_set *nodes; sl_str_off = sl_str - sub_top->str_idx; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_off > 0) { if (BE (bkref_str_off >= mctx->input.valid_len, 0)) { /* If we are at the end of the input, we cannot match. */ if (bkref_str_off >= mctx->input.len) break; err = extend_buffers (mctx, bkref_str_off + 1); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (buf [bkref_str_off++] != buf[sl_str - 1]) break; /* We don't need to search this sub expression any more. */ } if (mctx->state_log[sl_str] == NULL) continue; /* Does this state have a ')' of the sub expression? */ nodes = &mctx->state_log[sl_str]->nodes; cls_node = find_subexp_node (dfa, nodes, subexp_num, OP_CLOSE_SUBEXP); if (cls_node == REG_MISSING) continue; /* No. */ if (sub_top->path == NULL) { sub_top->path = calloc (sizeof (state_array_t), sl_str - sub_top->str_idx + 1); if (sub_top->path == NULL) return REG_ESPACE; } /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node in the current context? */ err = check_arrival (mctx, sub_top->path, sub_top->node, sub_top->str_idx, cls_node, sl_str, OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); if (BE (sub_last == NULL, 0)) return REG_ESPACE; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); if (err == REG_NOMATCH) continue; } } return REG_NOERROR; } /* Helper functions for get_subexp(). */ /* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR. If it can arrive, register the sub expression expressed with SUB_TOP and SUB_LAST. */ static reg_errcode_t internal_function get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) { reg_errcode_t err; Idx to_idx; /* Can the subexpression arrive the back reference? */ err = check_arrival (mctx, &sub_last->path, sub_last->node, sub_last->str_idx, bkref_node, bkref_str, OP_OPEN_SUBEXP); if (err != REG_NOERROR) return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, sub_last->str_idx); if (BE (err != REG_NOERROR, 0)) return err; to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; return clean_state_log_if_needed (mctx, to_idx); } /* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX. Search '(' if FL_OPEN, or search ')' otherwise. TODO: This function isn't efficient... Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ static Idx internal_function find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) { Idx cls_idx; for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx) { Idx cls_node = nodes->elems[cls_idx]; const re_token_t *node = dfa->nodes + cls_node; if (node->type == type && node->opr.idx == subexp_idx) return cls_node; } return REG_MISSING; } /* Check whether the node TOP_NODE at TOP_STR can arrive to the node LAST_NODE at LAST_STR. We record the path onto PATH since it will be heavily reused. Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; Idx subexp_num, backup_cur_idx, str_idx, null_cnt; re_dfastate_t *cur_state = NULL; re_node_set *cur_nodes, next_nodes; re_dfastate_t **backup_state_log; unsigned int context; subexp_num = dfa->nodes[top_node].opr.idx; /* Extend the buffer if we need. */ if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0)) { re_dfastate_t **new_array; Idx old_alloc = path->alloc; Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1; Idx new_alloc; if (BE (IDX_MAX - old_alloc < incr_alloc, 0)) return REG_ESPACE; new_alloc = old_alloc + incr_alloc; if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0)) return REG_ESPACE; new_array = re_realloc (path->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; path->array = new_array; path->alloc = new_alloc; memset (new_array + old_alloc, '\0', sizeof (re_dfastate_t *) * (path->alloc - old_alloc)); } str_idx = path->next_idx ? path->next_idx : top_str; /* Temporary modify MCTX. */ backup_state_log = mctx->state_log; backup_cur_idx = mctx->input.cur_idx; mctx->state_log = path->array; mctx->input.cur_idx = str_idx; /* Setup initial node set. */ context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); if (str_idx == top_str) { err = re_node_set_init_1 (&next_nodes, top_node); if (BE (err != REG_NOERROR, 0)) return err; err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } else { cur_state = mctx->state_log[str_idx]; if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } else re_node_set_init_empty (&next_nodes); } if (str_idx == top_str || (cur_state && cur_state->has_backref)) { if (next_nodes.nelem) { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; } for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;) { re_node_set_empty (&next_nodes); if (mctx->state_log[str_idx + 1]) { err = re_node_set_merge (&next_nodes, &mctx->state_log[str_idx + 1]->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } if (cur_state) { err = check_arrival_add_next_nodes (mctx, str_idx, &cur_state->non_eps_nodes, &next_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } ++str_idx; if (next_nodes.nelem) { err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; null_cnt = cur_state == NULL ? null_cnt + 1 : 0; } re_node_set_free (&next_nodes); cur_nodes = (mctx->state_log[last_str] == NULL ? NULL : &mctx->state_log[last_str]->nodes); path->next_idx = str_idx; /* Fix MCTX. */ mctx->state_log = backup_state_log; mctx->input.cur_idx = backup_cur_idx; /* Then check the current node set has the node LAST_NODE. */ if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node)) return REG_NOERROR; return REG_NOMATCH; } /* Helper functions for check_arrival. */ /* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them to NEXT_NODES. TODO: This function is similar to the functions transit_state*(), however this function has many additional works. Can't we unify them? */ static reg_errcode_t internal_function __attribute_warn_unused_result__ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { const re_dfa_t *const dfa = mctx->dfa; bool ok; Idx cur_idx; #ifdef RE_ENABLE_I18N reg_errcode_t err = REG_NOERROR; #endif re_node_set union_set; re_node_set_init_empty (&union_set); for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx) { int naccepted = 0; Idx cur_node = cur_nodes->elems[cur_idx]; #ifdef DEBUG re_token_type_t type = dfa->nodes[cur_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[cur_node].accept_mb) { naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input, str_idx); if (naccepted > 1) { re_dfastate_t *dest_state; Idx next_node = dfa->nexts[cur_node]; Idx next_idx = str_idx + naccepted; dest_state = mctx->state_log[next_idx]; re_node_set_empty (&union_set); if (dest_state) { err = re_node_set_merge (&union_set, &dest_state->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } ok = re_node_set_insert (&union_set, next_node); if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } mctx->state_log[next_idx] = re_acquire_state (&err, dfa, &union_set); if (BE (mctx->state_log[next_idx] == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } } #endif /* RE_ENABLE_I18N */ if (naccepted || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) { ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } } } re_node_set_free (&union_set); return REG_NOERROR; } /* For all the nodes in CUR_NODES, add the epsilon closures of them to CUR_NODES, however exclude the nodes which are: - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN. - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN. */ static reg_errcode_t internal_function check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) { reg_errcode_t err; Idx idx, outside_node; re_node_set new_nodes; #ifdef DEBUG assert (cur_nodes->nelem); #endif err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return err; /* Create a new node set NEW_NODES with the nodes which are epsilon closures of the node in CUR_NODES. */ for (idx = 0; idx < cur_nodes->nelem; ++idx) { Idx cur_node = cur_nodes->elems[idx]; const re_node_set *eclosure = dfa->eclosures + cur_node; outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); if (outside_node == REG_MISSING) { /* There are no problematic nodes, just merge them. */ err = re_node_set_merge (&new_nodes, eclosure); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } else { /* There are problematic nodes, re-calculate incrementally. */ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, ex_subexp, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } } re_node_set_free (cur_nodes); *cur_nodes = new_nodes; return REG_NOERROR; } /* Helper function for check_arrival_expand_ecl. Check incrementally the epsilon closure of TARGET, and if it isn't problematic append it to DST_NODES. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) { Idx cur_node; for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);) { bool ok; if (dfa->nodes[cur_node].type == type && dfa->nodes[cur_node].opr.idx == ex_subexp) { if (type == OP_CLOSE_SUBEXP) { ok = re_node_set_insert (dst_nodes, cur_node); if (BE (! ok, 0)) return REG_ESPACE; } break; } ok = re_node_set_insert (dst_nodes, cur_node); if (BE (! ok, 0)) return REG_ESPACE; if (dfa->edests[cur_node].nelem == 0) break; if (dfa->edests[cur_node].nelem == 2) { reg_errcode_t err; err = check_arrival_expand_ecl_sub (dfa, dst_nodes, dfa->edests[cur_node].elems[1], ex_subexp, type); if (BE (err != REG_NOERROR, 0)) return err; } cur_node = dfa->edests[cur_node].elems[0]; } return REG_NOERROR; } /* For all the back references in the current state, calculate the destination of the back references by the appropriate entry in MCTX->BKREF_ENTS. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str); struct re_backref_cache_entry *ent; if (cache_idx_start == REG_MISSING) return REG_NOERROR; restart: ent = mctx->bkref_ents + cache_idx_start; do { Idx to_idx, next_node; /* Is this entry ENT is appropriate? */ if (!re_node_set_contains (cur_nodes, ent->node)) continue; /* No. */ to_idx = cur_str + ent->subexp_to - ent->subexp_from; /* Calculate the destination of the back reference, and append it to MCTX->STATE_LOG. */ if (to_idx == cur_str) { /* The backreference did epsilon transit, we must re-check all the node in the current state. */ re_node_set new_dests; reg_errcode_t err2, err3; next_node = dfa->edests[ent->node].elems[0]; if (re_node_set_contains (cur_nodes, next_node)) continue; err = re_node_set_init_1 (&new_dests, next_node); err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); err3 = re_node_set_merge (cur_nodes, &new_dests); re_node_set_free (&new_dests); if (BE (err != REG_NOERROR || err2 != REG_NOERROR || err3 != REG_NOERROR, 0)) { err = (err != REG_NOERROR ? err : (err2 != REG_NOERROR ? err2 : err3)); return err; } /* TODO: It is still inefficient... */ goto restart; } else { re_node_set union_set; next_node = dfa->nexts[ent->node]; if (mctx->state_log[to_idx]) { bool ok; if (re_node_set_contains (&mctx->state_log[to_idx]->nodes, next_node)) continue; err = re_node_set_init_copy (&union_set, &mctx->state_log[to_idx]->nodes); ok = re_node_set_insert (&union_set, next_node); if (BE (err != REG_NOERROR || ! ok, 0)) { re_node_set_free (&union_set); err = err != REG_NOERROR ? err : REG_ESPACE; return err; } } else { err = re_node_set_init_1 (&union_set, next_node); if (BE (err != REG_NOERROR, 0)) return err; } mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); re_node_set_free (&union_set); if (BE (mctx->state_log[to_idx] == NULL && err != REG_NOERROR, 0)) return err; } } while (ent++->more); return REG_NOERROR; } /* Build transition table for the state. Return true if successful. */ static bool internal_function build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; Idx i, j; int ch; bool need_word_trtable = false; bitset_word_t elem, mask; bool dests_node_malloced = false; bool dest_states_malloced = false; Idx ndests; /* Number of the destination states from 'state'. */ re_dfastate_t **trtable; re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl; re_node_set follows, *dests_node; bitset_t *dests_ch; bitset_t acceptable; struct dests_alloc { re_node_set dests_node[SBC_MAX]; bitset_t dests_ch[SBC_MAX]; } *dests_alloc; /* We build DFA states which corresponds to the destination nodes from 'state'. 'dests_node[i]' represents the nodes which i-th destination state contains, and 'dests_ch[i]' represents the characters which i-th destination state accepts. */ if (__libc_use_alloca (sizeof (struct dests_alloc))) dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc)); else { dests_alloc = re_malloc (struct dests_alloc, 1); if (BE (dests_alloc == NULL, 0)) return false; dests_node_malloced = true; } dests_node = dests_alloc->dests_node; dests_ch = dests_alloc->dests_ch; /* Initialize transition table. */ state->word_trtable = state->trtable = NULL; /* At first, group all nodes belonging to 'state' into several destinations. */ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); if (BE (! REG_VALID_NONZERO_INDEX (ndests), 0)) { if (dests_node_malloced) free (dests_alloc); /* Return false in case of an error, true otherwise. */ if (ndests == 0) { state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (state->trtable == NULL, 0)) return false; return true; } return false; } err = re_node_set_alloc (&follows, ndests + 1); if (BE (err != REG_NOERROR, 0)) goto out_free; /* Avoid arithmetic overflow in size calculation. */ if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) / (3 * sizeof (re_dfastate_t *))) < ndests), 0)) goto out_free; if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + ndests * 3 * sizeof (re_dfastate_t *))) dest_states = (re_dfastate_t **) alloca (ndests * 3 * sizeof (re_dfastate_t *)); else { dest_states = (re_dfastate_t **) malloc (ndests * 3 * sizeof (re_dfastate_t *)); if (BE (dest_states == NULL, 0)) { out_free: if (dest_states_malloced) free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) free (dests_alloc); return false; } dest_states_malloced = true; } dest_states_word = dest_states + ndests; dest_states_nl = dest_states_word + ndests; bitset_empty (acceptable); /* Then build the states for all destinations. */ for (i = 0; i < ndests; ++i) { Idx next_node; re_node_set_empty (&follows); /* Merge the follows of this destination states. */ for (j = 0; j < dests_node[i].nelem; ++j) { next_node = dfa->nexts[dests_node[i].elems[j]]; if (next_node != REG_MISSING) { err = re_node_set_merge (&follows, dfa->eclosures + next_node); if (BE (err != REG_NOERROR, 0)) goto out_free; } } dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0)) goto out_free; /* If the new state has context constraint, build appropriate states for these contexts. */ if (dest_states[i]->has_constraint) { dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_WORD); if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) goto out_free; if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) need_word_trtable = true; dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_NEWLINE); if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0)) goto out_free; } else { dest_states_word[i] = dest_states[i]; dest_states_nl[i] = dest_states[i]; } bitset_merge (acceptable, dests_ch[i]); } if (!BE (need_word_trtable, 0)) { /* We don't care about whether the following character is a word character, or we are in a single-byte character set so we can discern by looking at the character code: allocate a 256-entry transition table. */ trtable = state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ if (dfa->word_char[i] & mask) trtable[ch] = dest_states_word[j]; else trtable[ch] = dest_states[j]; } } else { /* We care about whether the following character is a word character, and we are in a multi-byte character set: discern by looking at the character code: build two 256-entry transition tables, one starting at trtable[0] and one starting at trtable[SBC_MAX]. */ trtable = state->word_trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ trtable[ch] = dest_states[j]; trtable[ch + SBC_MAX] = dest_states_word[j]; } } /* new line */ if (bitset_contain (acceptable, NEWLINE_CHAR)) { /* The current state accepts newline character. */ for (j = 0; j < ndests; ++j) if (bitset_contain (dests_ch[j], NEWLINE_CHAR)) { /* k-th destination accepts newline character. */ trtable[NEWLINE_CHAR] = dest_states_nl[j]; if (need_word_trtable) trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j]; /* There must be only one destination which accepts newline. See group_nodes_into_DFAstates. */ break; } } if (dest_states_malloced) free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) free (dests_alloc); return true; } /* Group all nodes belonging to STATE into several destinations. Then for all destinations, set the nodes belonging to the destination to DESTS_NODE[i] and set the characters accepted by the destination to DEST_CH[i]. This function return the number of destinations. */ static Idx internal_function group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *dests_node, bitset_t *dests_ch) { reg_errcode_t err; bool ok; Idx i, j, k; Idx ndests; /* Number of the destinations from 'state'. */ bitset_t accepts; /* Characters a node can accept. */ const re_node_set *cur_nodes = &state->nodes; bitset_empty (accepts); ndests = 0; /* For all the nodes belonging to 'state', */ for (i = 0; i < cur_nodes->nelem; ++i) { re_token_t *node = &dfa->nodes[cur_nodes->elems[i]]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; /* Enumerate all single byte character this node can accept. */ if (type == CHARACTER) bitset_set (accepts, node->opr.c); else if (type == SIMPLE_BRACKET) { bitset_merge (accepts, node->opr.sbcset); } else if (type == OP_PERIOD) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) bitset_merge (accepts, dfa->sb_char); else #endif bitset_set_all (accepts); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) { if (ASCII_CHARS % BITSET_WORD_BITS == 0) memset (accepts, -1, ASCII_CHARS / CHAR_BIT); else bitset_merge (accepts, utf8_sb_map); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #endif else continue; /* Check the 'accepts' and sift the characters which are not match it the context. */ if (constraint) { if (constraint & NEXT_NEWLINE_CONSTRAINT) { bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); bitset_empty (accepts); if (accepts_newline) bitset_set (accepts, NEWLINE_CHAR); else continue; } if (constraint & NEXT_ENDBUF_CONSTRAINT) { bitset_empty (accepts); continue; } if (constraint & NEXT_WORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && !node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= dfa->word_char[j]); if (!any_set) continue; } if (constraint & NEXT_NOTWORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~dfa->word_char[j]); if (!any_set) continue; } } /* Then divide 'accepts' into DFA states, or create a new state. Above, we make sure that accepts is not empty. */ for (j = 0; j < ndests; ++j) { bitset_t intersec; /* Intersection sets, see below. */ bitset_t remains; /* Flags, see below. */ bitset_word_t has_intersec, not_subset, not_consumed; /* Optimization, skip if this state doesn't accept the character. */ if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c)) continue; /* Enumerate the intersection set of this state and 'accepts'. */ has_intersec = 0; for (k = 0; k < BITSET_WORDS; ++k) has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k]; /* And skip if the intersection set is empty. */ if (!has_intersec) continue; /* Then check if this state is a subset of 'accepts'. */ not_subset = not_consumed = 0; for (k = 0; k < BITSET_WORDS; ++k) { not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k]; not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k]; } /* If this state isn't a subset of 'accepts', create a new group state, which has the 'remains'. */ if (not_subset) { bitset_copy (dests_ch[ndests], remains); bitset_copy (dests_ch[j], intersec); err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; } /* Put the position in the current group. */ ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); if (BE (! ok, 0)) goto error_return; /* If all characters are consumed, go to next node. */ if (!not_consumed) break; } /* Some characters remain, create a new group. */ if (j == ndests) { bitset_copy (dests_ch[ndests], accepts); err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; bitset_empty (accepts); } } return ndests; error_return: for (j = 0; j < ndests; ++j) re_node_set_free (dests_node + j); return REG_MISSING; } #ifdef RE_ENABLE_I18N /* Check how many bytes the node 'dfa->nodes[node_idx]' accepts. Return the number of the bytes the node accepts. STR_IDX is the current index of the input string. This function handles the nodes which can accept one character, or one collating element like '.', '[a-z]', opposite to the other nodes can only accept one byte. */ static int internal_function check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx str_idx) { const re_token_t *node = dfa->nodes + node_idx; int char_len, elem_len; Idx i; if (BE (node->type == OP_UTF8_PERIOD, 0)) { unsigned char c = re_string_byte_at (input, str_idx), d; if (BE (c < 0xc2, 1)) return 0; if (str_idx + 2 > input->len) return 0; d = re_string_byte_at (input, str_idx + 1); if (c < 0xe0) return (d < 0x80 || d > 0xbf) ? 0 : 2; else if (c < 0xf0) { char_len = 3; if (c == 0xe0 && d < 0xa0) return 0; } else if (c < 0xf8) { char_len = 4; if (c == 0xf0 && d < 0x90) return 0; } else if (c < 0xfc) { char_len = 5; if (c == 0xf8 && d < 0x88) return 0; } else if (c < 0xfe) { char_len = 6; if (c == 0xfc && d < 0x84) return 0; } else return 0; if (str_idx + char_len > input->len) return 0; for (i = 1; i < char_len; ++i) { d = re_string_byte_at (input, str_idx + i); if (d < 0x80 || d > 0xbf) return 0; } return char_len; } char_len = re_string_char_size_at (input, str_idx); if (node->type == OP_PERIOD) { if (char_len <= 1) return 0; /* FIXME: I don't think this if is needed, as both '\n' and '\0' are char_len == 1. */ /* '.' accepts any one character except the following two cases. */ if ((!(dfa->syntax & RE_DOT_NEWLINE) && re_string_byte_at (input, str_idx) == '\n') || ((dfa->syntax & RE_DOT_NOT_NULL) && re_string_byte_at (input, str_idx) == '\0')) return 0; return char_len; } elem_len = re_string_elem_size_at (input, str_idx); if ((elem_len <= 1 && char_len <= 1) || char_len == 0) return 0; if (node->type == COMPLEX_BRACKET) { const re_charset_t *cset = node->opr.mbcset; # ifdef _LIBC const unsigned char *pin = ((const unsigned char *) re_string_get_buffer (input) + str_idx); Idx j; uint32_t nrules; # endif /* _LIBC */ int match_len = 0; wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) ? re_string_wchar_at (input, str_idx) : 0); /* match with multibyte character? */ for (i = 0; i < cset->nmbchars; ++i) if (wc == cset->mbchars[i]) { match_len = char_len; goto check_node_accept_bytes_match; } /* match with character_class? */ for (i = 0; i < cset->nchar_classes; ++i) { wctype_t wt = cset->char_classes[i]; if (__iswctype (wc, wt)) { match_len = char_len; goto check_node_accept_bytes_match; } } # ifdef _LIBC nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { unsigned int in_collseq = 0; const int32_t *table, *indirect; const unsigned char *weights, *extra; const char *collseqwc; /* This #include defines a local function! */ # include <locale/weight.h> /* match with collating_symbol? */ if (cset->ncoll_syms) extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); for (i = 0; i < cset->ncoll_syms; ++i) { const unsigned char *coll_sym = extra + cset->coll_syms[i]; /* Compare the length of input collating element and the length of current collating element. */ if (*coll_sym != elem_len) continue; /* Compare each bytes. */ for (j = 0; j < *coll_sym; j++) if (pin[j] != coll_sym[1 + j]) break; if (j == *coll_sym) { /* Match if every bytes is equal. */ match_len = j; goto check_node_accept_bytes_match; } } if (cset->nranges) { if (elem_len <= char_len) { collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); in_collseq = __collseq_table_lookup (collseqwc, wc); } else in_collseq = find_collation_sequence_value (pin, elem_len); } /* match with range expression? */ /* FIXME: Implement rational ranges here, too. */ for (i = 0; i < cset->nranges; ++i) if (cset->range_starts[i] <= in_collseq && in_collseq <= cset->range_ends[i]) { match_len = elem_len; goto check_node_accept_bytes_match; } /* match with equivalence_class? */ if (cset->nequiv_classes) { const unsigned char *cp = pin; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); int32_t idx = findidx (&cp, elem_len); if (idx > 0) for (i = 0; i < cset->nequiv_classes; ++i) { int32_t equiv_class_idx = cset->equiv_classes[i]; size_t weight_len = weights[idx & 0xffffff]; if (weight_len == weights[equiv_class_idx & 0xffffff] && (idx >> 24) == (equiv_class_idx >> 24)) { Idx cnt = 0; idx &= 0xffffff; equiv_class_idx &= 0xffffff; while (cnt <= weight_len && (weights[equiv_class_idx + 1 + cnt] == weights[idx + 1 + cnt])) ++cnt; if (cnt > weight_len) { match_len = elem_len; goto check_node_accept_bytes_match; } } } } } else # endif /* _LIBC */ { /* match with range expression? */ for (i = 0; i < cset->nranges; ++i) { if (cset->range_starts[i] <= wc && wc <= cset->range_ends[i]) { match_len = char_len; goto check_node_accept_bytes_match; } } } check_node_accept_bytes_match: if (!cset->non_match) return match_len; else { if (match_len > 0) return 0; else return (elem_len > char_len) ? elem_len : char_len; } } return 0; } # ifdef _LIBC static unsigned int internal_function find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules == 0) { if (mbs_len == 1) { /* No valid character. Match it as a single byte character. */ const unsigned char *collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); return collseq[mbs[0]]; } return UINT_MAX; } else { int32_t idx; const unsigned char *extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); int32_t extrasize = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra; for (idx = 0; idx < extrasize;) { int mbs_cnt; bool found = false; int32_t elem_mbs_len; /* Skip the name of collating element name. */ idx = idx + extra[idx] + 1; elem_mbs_len = extra[idx++]; if (mbs_len == elem_mbs_len) { for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt) if (extra[idx + mbs_cnt] != mbs[mbs_cnt]) break; if (mbs_cnt == elem_mbs_len) /* Found the entry. */ found = true; } /* Skip the byte sequence of the collating element. */ idx += elem_mbs_len; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the collation sequence value. */ idx += sizeof (uint32_t); /* Skip the wide char sequence of the collating element. */ idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1); /* If we found the entry, return the sequence value. */ if (found) return *(uint32_t *) (extra + idx); /* Skip the collation sequence value. */ idx += sizeof (uint32_t); } return UINT_MAX; } } # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ /* Check whether the node accepts the byte which is IDX-th byte of the INPUT. */ static bool internal_function check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) { unsigned char ch; ch = re_string_byte_at (&mctx->input, idx); switch (node->type) { case CHARACTER: if (node->opr.c != ch) return false; break; case SIMPLE_BRACKET: if (!bitset_contain (node->opr.sbcset, ch)) return false; break; #ifdef RE_ENABLE_I18N case OP_UTF8_PERIOD: if (ch >= ASCII_CHARS) return false; /* FALLTHROUGH */ #endif case OP_PERIOD: if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) return false; break; default: return false; } if (node->constraint) { /* The node has constraints. Check whether the current context satisfies the constraints. */ unsigned int context = re_string_context_at (&mctx->input, idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) return false; } return true; } /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ extend_buffers (re_match_context_t *mctx, int min_len) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; /* Avoid overflow. */ if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 <= pstr->bufs_len, 0)) return REG_ESPACE; /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ ret = re_string_realloc_buffers (pstr, MAX (min_len, MIN (pstr->len, pstr->bufs_len * 2))); if (BE (ret != REG_NOERROR, 0)) return ret; if (mctx->state_log != NULL) { /* And double the length of state_log. */ /* XXX We have no indication of the size of this buffer. If this allocation fail we have no indication that the state_log array does not have the right size. */ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, pstr->bufs_len + 1); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->state_log = new_array; } /* Then reconstruct the buffers. */ if (pstr->icase) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (pstr->trans != NULL) re_string_translate_buffer (pstr); } } return REG_NOERROR; } /* Functions for matching context. */ /* Initialize MCTX. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) { mctx->eflags = eflags; mctx->match_last = REG_MISSING; if (n > 0) { /* Avoid overflow. */ size_t max_object_size = MAX (sizeof (struct re_backref_cache_entry), sizeof (re_sub_match_top_t *)); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0)) return REG_ESPACE; mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0)) return REG_ESPACE; } /* Already zero-ed by the caller. else mctx->bkref_ents = NULL; mctx->nbkref_ents = 0; mctx->nsub_tops = 0; */ mctx->abkref_ents = n; mctx->max_mb_elem_len = 1; mctx->asub_tops = n; return REG_NOERROR; } /* Clean the entries which depend on the current input in MCTX. This function must be invoked when the matcher changes the start index of the input, or changes the input string. */ static void internal_function match_ctx_clean (re_match_context_t *mctx) { Idx st_idx; for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) { Idx sl_idx; re_sub_match_top_t *top = mctx->sub_tops[st_idx]; for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx) { re_sub_match_last_t *last = top->lasts[sl_idx]; re_free (last->path.array); re_free (last); } re_free (top->lasts); if (top->path) { re_free (top->path->array); re_free (top->path); } free (top); } mctx->nsub_tops = 0; mctx->nbkref_ents = 0; } /* Free all the memory associated with MCTX. */ static void internal_function match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ match_ctx_clean (mctx); re_free (mctx->sub_tops); re_free (mctx->bkref_ents); } /* Add a new backreference entry to MCTX. Note that we assume that caller never call this function with duplicate entry, and call with STR_IDX which isn't smaller than any existing entry. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, Idx to) { if (mctx->nbkref_ents >= mctx->abkref_ents) { struct re_backref_cache_entry* new_entry; new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, mctx->abkref_ents * 2); if (BE (new_entry == NULL, 0)) { re_free (mctx->bkref_ents); return REG_ESPACE; } mctx->bkref_ents = new_entry; memset (mctx->bkref_ents + mctx->nbkref_ents, '\0', sizeof (struct re_backref_cache_entry) * mctx->abkref_ents); mctx->abkref_ents *= 2; } if (mctx->nbkref_ents > 0 && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx) mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1; mctx->bkref_ents[mctx->nbkref_ents].node = node; mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx; mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from; mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to; /* This is a cache that saves negative results of check_dst_limits_calc_pos. If bit N is clear, means that this entry won't epsilon-transition to an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression. If it is set, check_dst_limits_calc_pos_1 will recurse and try to find one such node. A backreference does not epsilon-transition unless it is empty, so set to all zeros if FROM != TO. */ mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map = (from == to ? -1 : 0); mctx->bkref_ents[mctx->nbkref_ents++].more = 0; if (mctx->max_mb_elem_len < to - from) mctx->max_mb_elem_len = to - from; return REG_NOERROR; } /* Return the first entry with the same str_idx, or REG_MISSING if none is found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static Idx internal_function search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) { Idx left, right, mid, last; last = right = mctx->nbkref_ents; for (left = 0; left < right;) { mid = (left + right) / 2; if (mctx->bkref_ents[mid].str_idx < str_idx) left = mid + 1; else right = mid; } if (left < last && mctx->bkref_ents[left].str_idx == str_idx) return left; else return REG_MISSING; } /* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches at STR_IDX. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) { #ifdef DEBUG assert (mctx->sub_tops != NULL); assert (mctx->asub_tops > 0); #endif if (BE (mctx->nsub_tops == mctx->asub_tops, 0)) { Idx new_asub_tops = mctx->asub_tops * 2; re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, re_sub_match_top_t *, new_asub_tops); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->sub_tops = new_array; mctx->asub_tops = new_asub_tops; } mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0)) return REG_ESPACE; mctx->sub_tops[mctx->nsub_tops]->node = node; mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; return REG_NOERROR; } /* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * internal_function match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) { re_sub_match_last_t *new_entry; if (BE (subtop->nlasts == subtop->alasts, 0)) { Idx new_alasts = 2 * subtop->alasts + 1; re_sub_match_last_t **new_array = re_realloc (subtop->lasts, re_sub_match_last_t *, new_alasts); if (BE (new_array == NULL, 0)) return NULL; subtop->lasts = new_array; subtop->alasts = new_alasts; } new_entry = calloc (1, sizeof (re_sub_match_last_t)); if (BE (new_entry != NULL, 1)) { subtop->lasts[subtop->nlasts] = new_entry; new_entry->node = node; new_entry->str_idx = str_idx; ++subtop->nlasts; } return new_entry; } static void internal_function sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) { sctx->sifted_states = sifted_sts; sctx->limited_states = limited_sts; sctx->last_node = last_node; sctx->last_str_idx = last_str_idx; re_node_set_init_empty (&sctx->limits); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/stdio.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000140420�12116370307�012150� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <stdio.h>. Copyright (C) 2004, 2007-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H /* Special invocation convention: - Inside glibc header files. - On OSF/1 5.1 we have a sequence of nested includes <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> -> <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>. In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #undef _GL_ALREADY_INCLUDING_STDIO_H #ifndef _@GUARD_PREFIX@_STDIO_H #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include <stdarg.h> #include <stddef.h> /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 and eglibc 2.11.2. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, except that it indicates to GCC that the supported format string directives are the ones of the system scanf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) /* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ && ! defined __GLIBC__ # include <unistd.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Macros for stringification. */ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); # endif _GL_CXXALIASWARN (dprintf); #elif defined GNULIB_POSIXCHECK # undef dprintf # if HAVE_RAW_DECL_DPRINTF _GL_WARN_ON_USE (dprintf, "dprintf is unportable - " "use gnulib module dprintf for portability"); # endif #endif #if @GNULIB_FCLOSE@ /* Close STREAM and its underlying file descriptor. */ # if @REPLACE_FCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fclose rpl_fclose # endif _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fclose); #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #elif defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); #endif #if @GNULIB_FFLUSH@ /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. Note! LOSS OF DATA can occur if fflush is applied on an input stream that is _not_seekable_ or on an update stream that is _not_seekable_ and in which the most recent operation was input. Seekability can be tested with lseek(fileno(fp),0,SEEK_CUR). */ # if @REPLACE_FFLUSH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fflush rpl_fflush # endif _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fflush); #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " "use gnulib module fflush for portable POSIX compliance"); #endif #if @GNULIB_FGETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgetc # define fgetc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fgetc); #endif #if @GNULIB_FGETS@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgets # define fgets rpl_fgets # endif _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); # else _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); # endif _GL_CXXALIASWARN (fgets); #endif #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif _GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); # else _GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); # endif _GL_CXXALIASWARN (fopen); #elif defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); # endif _GL_CXXALIASWARN (fprintf); #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf # undef fprintf # endif /* Assume fprintf is always declared. */ _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " "use gnulib module fprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_FPURGE@ /* Discard all pending buffered I/O data on STREAM. STREAM must not be wide-character oriented. When discarding pending output, the file position is set back to where it was before the write calls. When discarding pending input, the file position is advanced to match the end of the previously read input. Return 0 if successful. Upon error, return -1 and set errno. */ # if @REPLACE_FPURGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fpurge rpl_fpurge # endif _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); # else # if !@HAVE_DECL_FPURGE@ _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fpurge); #elif defined GNULIB_POSIXCHECK # undef fpurge # if HAVE_RAW_DECL_FPURGE _GL_WARN_ON_USE (fpurge, "fpurge is not always present - " "use gnulib module fpurge for portability"); # endif #endif #if @GNULIB_FPUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (fputc); #endif #if @GNULIB_FPUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs # endif _GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); # else _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); # endif _GL_CXXALIASWARN (fputs); #endif #if @GNULIB_FREAD@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fread # define fread rpl_fread # endif _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # endif _GL_CXXALIASWARN (fread); #endif #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freopen # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # endif _GL_CXXALIASWARN (freopen); #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif #if @GNULIB_FSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fscanf # define fscanf rpl_fscanf # endif _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); # else _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); # endif _GL_CXXALIASWARN (fscanf); #endif /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes an arbitrary limitation on some 32-bit hosts. Remember that the fseek module depends on the fseeko module, so we only have three cases to consider: 1. The developer is not using either module. Issue a warning under GNULIB_POSIXCHECK for both functions, to remind them that both functions have bugs on some systems. _GL_NO_LARGE_FILES has no impact on this warning. 2. The developer is using both modules. They may be unaware of the arbitrary limitations of fseek, so issue a warning under GNULIB_POSIXCHECK. On the other hand, they may be using both modules intentionally, so the developer can define _GL_NO_LARGE_FILES in the compilation units where the use of fseek is safe, to silence the warning. 3. The developer is using the fseeko module, but not fseek. Gnulib guarantees that fseek will still work around platform bugs in that case, but we presume that the developer is aware of the pitfalls of fseek and was trying to avoid it, so issue a warning even when GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be defined to silence the warning in particular compilation units. In C++ compilations with GNULIB_NAMESPACE, in order to avoid that fseek gets defined as a macro, it is recommended that the developer uses the fseek module, even if he is not calling the fseek function. Most gnulib clients that perform stream operations should fall into category 3. */ #if @GNULIB_FSEEK@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 2, above. */ # undef fseek # endif # if @REPLACE_FSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseek # define fseek rpl_fseek # endif _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif _GL_CXXALIASWARN (fseek); #endif #if @GNULIB_FSEEKO@ # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 3, above. */ # undef fseek # endif # if @REPLACE_FSEEKO@ /* Provide an fseeko function that is aware of a preceding fflush(), and which detects pipes. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseeko # define fseeko rpl_fseeko # endif _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); # else # if ! @HAVE_DECL_FSEEKO@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek # undef fseeko # if HAVE_RAW_DECL_FSEEKO _GL_WARN_ON_USE (fseeko, "fseeko is unportable - " "use gnulib module fseeko for portability"); # endif #endif #ifdef _GL_FSEEK_WARN # undef _GL_FSEEK_WARN /* Here, either fseek is undefined (but C89 guarantees that it is declared), or it is defined as rpl_fseek (declared above). */ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " "on 32-bit platforms - " "use fseeko function for handling of large files"); #endif /* ftell, ftello. See the comments on fseek/fseeko. */ #if @GNULIB_FTELL@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 2, above. */ # undef ftell # endif # if @REPLACE_FTELL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftell # define ftell rpl_ftell # endif _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif _GL_CXXALIASWARN (ftell); #endif #if @GNULIB_FTELLO@ # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 3, above. */ # undef ftell # endif # if @REPLACE_FTELLO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftello # define ftello rpl_ftello # endif _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell # undef ftello # if HAVE_RAW_DECL_FTELLO _GL_WARN_ON_USE (ftello, "ftello is unportable - " "use gnulib module ftello for portability"); # endif #endif #ifdef _GL_FTELL_WARN # undef _GL_FTELL_WARN /* Here, either ftell is undefined (but C89 guarantees that it is declared), or it is defined as rpl_ftell (declared above). */ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " "on 32-bit platforms - " "use ftello function for handling of large files"); #endif #if @GNULIB_FWRITE@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>, which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) # undef fwrite # define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; }) # endif # endif _GL_CXXALIASWARN (fwrite); #endif #if @GNULIB_GETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getc # define getc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (getc); #endif #if @GNULIB_GETCHAR@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getchar # define getchar rpl_getchar # endif _GL_FUNCDECL_RPL (getchar, int, (void)); _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif _GL_CXXALIASWARN (getchar); #endif #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETDELIM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdelim # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # endif _GL_CXXALIASWARN (getdelim); #elif defined GNULIB_POSIXCHECK # undef getdelim # if HAVE_RAW_DECL_GETDELIM _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " "use gnulib module getdelim for portability"); # endif #endif #if @GNULIB_GETLINE@ /* Read a line, up to (and including) the next newline, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETLINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getline # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # endif # if @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); # endif #elif defined GNULIB_POSIXCHECK # undef getline # if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is unportable - " "use gnulib module getline for portability"); # endif #endif /* It is very rare that the developer ever has full control of stdin, so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets #if HAVE_RAW_DECL_GETS _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of bytes added to OBS. No trailing nul byte is added, and the object should be closed with obstack_finish before use. Upon memory allocation error, call obstack_alloc_failed_handler. Upon other error, return -1. */ # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_printf rpl_obstack_printf # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # endif _GL_CXXALIASWARN (obstack_printf); # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_vprintf rpl_obstack_vprintf # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # endif _GL_CXXALIASWARN (obstack_vprintf); #endif #if @GNULIB_PCLOSE@ # if !@HAVE_PCLOSE@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); _GL_CXXALIASWARN (pclose); #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE _GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif #if @GNULIB_PERROR@ /* Print a message to standard error, describing the value of ERRNO, (if STRING is not NULL and not empty) prefixed with STRING and ": ", and terminated with a newline. */ # if @REPLACE_PERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define perror rpl_perror # endif _GL_FUNCDECL_RPL (perror, void, (const char *string)); _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif _GL_CXXALIASWARN (perror); #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " "use gnulib module perror for portability"); #endif #if @GNULIB_POPEN@ # if @REPLACE_POPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef popen # define popen rpl_popen # endif _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); #elif defined GNULIB_POSIXCHECK # undef popen # if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif # define GNULIB_overrides_printf 1 # else _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (printf); #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf # undef printf # endif /* Assume printf is always declared. */ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " "use gnulib module printf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_PUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (putc); #endif #if @GNULIB_PUTCHAR@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar # endif _GL_FUNCDECL_RPL (putchar, int, (int c)); _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif _GL_CXXALIASWARN (putchar); #endif #if @GNULIB_PUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts # endif _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif _GL_CXXALIASWARN (puts); #endif #if @GNULIB_REMOVE@ # if @REPLACE_REMOVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remove # define remove rpl_remove # endif _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif _GL_CXXALIASWARN (remove); #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " "use gnulib module remove for more portability"); #endif #if @GNULIB_RENAME@ # if @REPLACE_RENAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rename # define rename rpl_rename # endif _GL_FUNCDECL_RPL (rename, int, (const char *old_filename, const char *new_filename) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (rename, int, (const char *old_filename, const char *new_filename)); # else _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif _GL_CXXALIASWARN (rename); #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " "use gnulib module rename for more portability"); #endif #if @GNULIB_RENAMEAT@ # if @REPLACE_RENAMEAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef renameat # define renameat rpl_renameat # endif _GL_FUNCDECL_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # else # if !@HAVE_RENAMEAT@ _GL_FUNCDECL_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # endif _GL_CXXALIASWARN (renameat); #elif defined GNULIB_POSIXCHECK # undef renameat # if HAVE_RAW_DECL_RENAMEAT _GL_WARN_ON_USE (renameat, "renameat is not portable - " "use gnulib module renameat for portability"); # endif #endif #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); # endif # else _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (scanf); #endif #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif _GL_FUNCDECL_RPL (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *str, size_t size, const char *format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, (char *str, size_t size, const char *format, ...)); # endif _GL_CXXALIASWARN (snprintf); #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " "use gnulib module snprintf for portability"); # endif #endif /* Some people would argue that all sprintf uses should be warned about (for example, OpenBSD issues a link warning for it), since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header intentionally avoids adding a warning to sprintf except when GNULIB_POSIXCHECK is defined. */ #if @GNULIB_SPRINTF_POSIX@ # if @REPLACE_SPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else _GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); # endif _GL_CXXALIASWARN (sprintf); #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "use gnulib module sprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif _GL_CXXALIASWARN (tmpfile); #elif defined GNULIB_POSIXCHECK # undef tmpfile # if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); # endif #endif #if @GNULIB_VASPRINTF@ /* Write formatted output to a string dynamically allocated with malloc(). If the memory allocation succeeds, store the address of the string in *RESULT and return the number of resulting bytes, excluding the trailing NUL. Upon memory allocation error, or some other error, return -1. */ # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, (char **result, const char *format, ...)); # endif _GL_CXXALIASWARN (asprintf); # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, (char **result, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vasprintf); #endif #if @GNULIB_VDPRINTF@ # if @REPLACE_VDPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, (int fd, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vdprintf); #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " "use gnulib module vdprintf for portability"); # endif #endif #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, (FILE *fp, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfprintf); #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf # undef vfprintf # endif /* Assume vfprintf is always declared. */ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " "use gnulib module vfprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VFSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vfscanf # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, (FILE *stream, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfscanf); #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vprintf); #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf # undef vprintf # endif /* Assume vprintf is always declared. */ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " "use gnulib module vprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vscanf # define vscanf rpl_vscanf # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vscanf); #endif #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif _GL_FUNCDECL_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsnprintf); #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " "use gnulib module vsnprintf for portability"); # endif #endif #if @GNULIB_VSPRINTF_POSIX@ # if @REPLACE_VSPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif _GL_FUNCDECL_RPL (vsprintf, int, (char *str, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *str, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, (char *str, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsprintf); #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " "use gnulib module vsprintf-posix for portable " "POSIX compliance"); #endif #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/asnprintf.c�������������������������������������������������������������������������0000644�0000000�0000000�00000002046�12116370307�012421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Formatted output to strings. Copyright (C) 1999, 2002, 2006, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "vasnprintf.h" #include <stdarg.h> char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) { va_list args; char *result; va_start (args, format); result = vasnprintf (resultbuf, lengthp, format, args); va_end (args); return result; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/xmalloc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000006467�12116370307�012067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990-2000, 2002-2006, 2008-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #define XALLOC_INLINE _GL_EXTERN_INLINE #include "xalloc.h" #include <stdlib.h> #include <string.h> /* 1 if calloc is known to be compatible with GNU calloc. This matters if we are not also using the calloc module, which defines HAVE_CALLOC_GNU and supports the GNU API even on non-GNU platforms. */ #if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__) enum { HAVE_GNU_CALLOC = 1 }; #else enum { HAVE_GNU_CALLOC = 0 }; #endif /* Allocate N bytes of memory dynamically, with error checking. */ void * xmalloc (size_t n) { void *p = malloc (n); if (!p && n != 0) xalloc_die (); return p; } /* Change the size of an allocated block of memory P to N bytes, with error checking. */ void * xrealloc (void *p, size_t n) { if (!n && p) { /* The GNU and C99 realloc behaviors disagree here. Act like GNU, even if the underlying realloc is C99. */ free (p); return NULL; } p = realloc (p, n); if (!p && n) xalloc_die (); return p; } /* If P is null, allocate a block of at least *PN bytes; otherwise, reallocate P so that it contains more than *PN bytes. *PN must be nonzero unless P is null. Set *PN to the new block's size, and return the pointer to the new block. *PN is never set to zero, and the returned pointer is never null. */ void * x2realloc (void *p, size_t *pn) { return x2nrealloc (p, pn, 1); } /* Allocate S bytes of zeroed memory dynamically, with error checking. There's no need for xnzalloc (N, S), since it would be equivalent to xcalloc (N, S). */ void * xzalloc (size_t s) { return memset (xmalloc (s), 0, s); } /* Allocate zeroed memory for N elements of S bytes, with error checking. S must be nonzero. */ void * xcalloc (size_t n, size_t s) { void *p; /* Test for overflow, since some calloc implementations don't have proper overflow checks. But omit overflow and size-zero tests if HAVE_GNU_CALLOC, since GNU calloc catches overflow and never returns NULL if successful. */ if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s)) || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0))) xalloc_die (); return p; } /* Clone an object P of size S, with error checking. There's no need for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any need for an arithmetic overflow check. */ void * xmemdup (void const *p, size_t s) { return memcpy (xmalloc (s), p, s); } /* Clone STRING. */ char * xstrdup (char const *string) { return xmemdup (string, strlen (string) + 1); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/string.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000116461�12116370307�012344� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <string.h>. Copyright (C) 1995-1996, 2001-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include <wchar.h> #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* NetBSD 5.0 declares strsignal in <unistd.h>, not in <string.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include <unistd.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else # if ! @HAVE_MEMCHR@ _GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # else _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); # endif _GL_CXXALIASWARN (strncat); #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # else _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: http://www.opengroup.org/susv3xsh/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif _GL_CXXALIASWARN (strerror); #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/printf-parse.h����������������������������������������������������������������������0000644�0000000�0000000�00000012163�12116370307�013035� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Parse printf format string. Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. STATIC Set to 'static' to declare the function static. */ #if HAVE_FEATURES_H # include <features.h> /* for __GLIBC__, __UCLIBC__ */ #endif #include "printf-args.h" /* Flags */ #define FLAG_GROUP 1 /* ' flag */ #define FLAG_LEFT 2 /* - flag */ #define FLAG_SHOWSIGN 4 /* + flag */ #define FLAG_SPACE 8 /* space flag */ #define FLAG_ALT 16 /* # flag */ #define FLAG_ZERO 32 #if __GLIBC__ >= 2 && !defined __UCLIBC__ # define FLAG_LOCALIZED 64 /* I flag, uses localized digits */ #endif /* arg_index value indicating that no argument is consumed. */ #define ARG_NONE (~(size_t)0) /* xxx_directive: A parsed directive. xxx_directives: A parsed format string. */ /* Number of directly allocated directives (no malloc() needed). */ #define N_DIRECT_ALLOC_DIRECTIVES 7 /* A parsed directive. */ typedef struct { const char* dir_start; const char* dir_end; int flags; const char* width_start; const char* width_end; size_t width_arg_index; const char* precision_start; const char* precision_end; size_t precision_arg_index; char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } char_directive; /* A parsed format string. */ typedef struct { size_t count; char_directive *dir; size_t max_width_length; size_t max_precision_length; char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } char_directives; #if ENABLE_UNISTDIO /* A parsed directive. */ typedef struct { const uint8_t* dir_start; const uint8_t* dir_end; int flags; const uint8_t* width_start; const uint8_t* width_end; size_t width_arg_index; const uint8_t* precision_start; const uint8_t* precision_end; size_t precision_arg_index; uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u8_directive; /* A parsed format string. */ typedef struct { size_t count; u8_directive *dir; size_t max_width_length; size_t max_precision_length; u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u8_directives; /* A parsed directive. */ typedef struct { const uint16_t* dir_start; const uint16_t* dir_end; int flags; const uint16_t* width_start; const uint16_t* width_end; size_t width_arg_index; const uint16_t* precision_start; const uint16_t* precision_end; size_t precision_arg_index; uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u16_directive; /* A parsed format string. */ typedef struct { size_t count; u16_directive *dir; size_t max_width_length; size_t max_precision_length; u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u16_directives; /* A parsed directive. */ typedef struct { const uint32_t* dir_start; const uint32_t* dir_end; int flags; const uint32_t* width_start; const uint32_t* width_end; size_t width_arg_index; const uint32_t* precision_start; const uint32_t* precision_end; size_t precision_arg_index; uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u32_directive; /* A parsed format string. */ typedef struct { size_t count; u32_directive *dir; size_t max_width_length; size_t max_precision_length; u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u32_directives; #endif /* Parses the format string. Fills in the number N of directives, and fills in directives[0], ..., directives[N-1], and sets directives[N].dir_start to the end of the format string. Also fills in the arg_type fields of the arguments and the needed count of arguments. */ #if ENABLE_UNISTDIO extern int ulc_printf_parse (const char *format, char_directives *d, arguments *a); extern int u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a); extern int u16_printf_parse (const uint16_t *format, u16_directives *d, arguments *a); extern int u32_printf_parse (const uint32_t *format, u32_directives *d, arguments *a); #else # ifdef STATIC STATIC # else extern # endif int printf_parse (const char *format, char_directives *d, arguments *a); #endif #endif /* _PRINTF_PARSE_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/mbuiter.c���������������������������������������������������������������������������0000644�0000000�0000000�00000000122�12116370307�012055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #define MBUITER_INLINE _GL_EXTERN_INLINE #include "mbuiter.h" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/malloca.h���������������������������������������������������������������������������0000644�0000000�0000000�00000011037�12116370307�012032� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _MALLOCA_H #define _MALLOCA_H #include <alloca.h> #include <stddef.h> #include <stdlib.h> #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - sa_increment \ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void * mmalloca (size_t n); /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. S must be positive and N must be nonnegative. The array must be freed using freea() before the function returns. */ #if 1 /* Cf. the definition of xalloc_oversized. */ # define nmalloca(n, s) \ ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \ ? NULL \ : malloca ((n) * (s))) #else extern void * nmalloca (size_t n, size_t s); #endif #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ # define sa_alignof __alignof__ #elif defined __cplusplus template <class type> struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), #if HAVE_LONG_LONG_INT sa_alignment_longlong = sa_alignof (long long), #endif sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) #if HAVE_LONG_LONG_INT | (sa_alignment_longlong - 1) #endif | (sa_alignment_longdouble - 1) ) + 1, /* The increment that guarantees room for a magic word must be >= sizeof (int) and a multiple of sa_alignment_max. */ sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max }; #endif /* _MALLOCA_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/stdlib.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000100456�12116370307�012314� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <stdlib.h>. Copyright (C) 1995, 2001-2004, 2006-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>. */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include <sys/wait.h> #endif /* Solaris declares getloadavg() in <sys/loadavg.h>. */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ # include <sys/loadavg.h> #endif /* Native Windows platforms declare mktemp() in <io.h>. */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include <io.h> #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included from <stdlib.h> if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include <random.h> # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include <stdint.h> # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated <stdlib.h> replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On Mac OS X 10.3, only <unistd.h> declares mkstemp. */ /* On Mac OS X 10.5, only <unistd.h> declares mkstemps. */ /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include <unistd.h> #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif _GL_CXXALIASWARN (calloc); #elif defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif _GL_CXXALIASWARN (canonicalize_file_name); #elif defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIASWARN (getloadavg); #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX:2001 specification. http://www.opengroup.org/susv3xsh/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); _GL_CXXALIASWARN (getsubopt); #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif _GL_CXXALIASWARN (mbtowc); #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemp); #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemps); #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIASWARN (posix_openpt); #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif _GL_CXXALIAS_SYS (random, long, (void)); _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); # endif _GL_CXXALIASWARN (strtod); #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif _GL_CXXALIASWARN (wctomb); #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/xalloc-oversized.h������������������������������������������������������������������0000644�0000000�0000000�00000003227�12116370307�013716� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef XALLOC_OVERSIZED_H_ # define XALLOC_OVERSIZED_H_ # include <stddef.h> /* Return 1 if an array of N objects, each of size S, cannot exist due to size arithmetic overflow. S must be positive and N must be nonnegative. This is a macro, not a function, so that it works correctly even when SIZE_MAX < N. By gnulib convention, SIZE_MAX represents overflow in size calculations, so the conservative dividend to use here is SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. However, malloc (SIZE_MAX) fails on all known hosts where sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for exactly-SIZE_MAX allocations on such hosts; this avoids a test and branch when S is known to be 1. */ # define xalloc_oversized(n, s) \ ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) #endif /* !XALLOC_OVERSIZED_H_ */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/unistd.c����������������������������������������������������������������������������0000644�0000000�0000000�00000000124�12116370307�011716� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/strerror.c��������������������������������������������������������������������������0000644�0000000�0000000�00000004043�12116370307�012276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "intprops.h" #include "strerror-override.h" #include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf char * strerror (int n) #undef strerror { static char buf[STACKBUF_LEN]; size_t len; /* Cast away const, due to the historical signature of strerror; callers should not be modifying the string. */ const char *msg = strerror_override (n); if (msg) return (char *) msg; msg = strerror (n); /* Our strerror_r implementation might use the system's strerror buffer, so all other clients of strerror have to see the error copied into a buffer that we manage. This is not thread-safe, even if the system strerror is, but portable programs shouldn't be using strerror if they care about thread-safety. */ if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; } /* Fix STACKBUF_LEN if this ever aborts. */ len = strlen (msg); if (sizeof buf <= len) abort (); return memcpy (buf, msg, len + 1); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/errno.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000016463�12116370307�012164� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A POSIX-like <errno.h>. Copyright (C) 2008-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ #ifndef _@GUARD_PREFIX@_ERRNO_H #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ # ifndef ENOMSG # define ENOMSG 122 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 111 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 121 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 134 # define GNULIB_defined_EPROTO 1 # endif # ifndef EBADMSG # define EBADMSG 104 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 132 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 129 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 117 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 106 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ECANCELED # define ECANCELED 105 # define GNULIB_defined_ECANCELED 1 # endif # ifndef EOWNERDEAD # define EOWNERDEAD 133 # define GNULIB_defined_EOWNERDEAD 1 # endif # ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 127 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EINPROGRESS # define EINPROGRESS 112 # define EALREADY 103 # define ENOTSOCK 128 # define EDESTADDRREQ 109 # define EMSGSIZE 115 # define EPROTOTYPE 136 # define ENOPROTOOPT 123 # define EPROTONOSUPPORT 135 # define EOPNOTSUPP 130 # define EAFNOSUPPORT 102 # define EADDRINUSE 100 # define EADDRNOTAVAIL 101 # define ENETDOWN 116 # define ENETUNREACH 118 # define ECONNRESET 108 # define ENOBUFS 119 # define EISCONN 113 # define ENOTCONN 126 # define ETIMEDOUT 138 # define ECONNREFUSED 107 # define ELOOP 114 # define EHOSTUNREACH 110 # define EWOULDBLOCK 140 # define GNULIB_defined_ESOCK 1 # endif # ifndef ETXTBSY # define ETXTBSY 139 # define ENODATA 120 /* not required by POSIX */ # define ENOSR 124 /* not required by POSIX */ # define ENOSTR 125 /* not required by POSIX */ # define ETIME 137 /* not required by POSIX */ # define EOTHER 131 /* not required by POSIX */ # define GNULIB_defined_ESTREAMS 1 # endif /* These are intentionally the same values as the WSA* error numbers, defined in <winsock2.h>. */ # define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ # define EPFNOSUPPORT 10046 /* not required by POSIX */ # define ESHUTDOWN 10058 /* not required by POSIX */ # define ETOOMANYREFS 10059 /* not required by POSIX */ # define EHOSTDOWN 10064 /* not required by POSIX */ # define EPROCLIM 10067 /* not required by POSIX */ # define EUSERS 10068 /* not required by POSIX */ # define EDQUOT 10069 # define ESTALE 10070 # define EREMOTE 10071 /* not required by POSIX */ # define GNULIB_defined_EWINSOCK 1 # endif /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ # if @EMULTIHOP_HIDDEN@ # define EMULTIHOP @EMULTIHOP_VALUE@ # define GNULIB_defined_EMULTIHOP 1 # endif # if @ENOLINK_HIDDEN@ # define ENOLINK @ENOLINK_VALUE@ # define GNULIB_defined_ENOLINK 1 # endif # if @EOVERFLOW_HIDDEN@ # define EOVERFLOW @EOVERFLOW_VALUE@ # define GNULIB_defined_EOVERFLOW 1 # endif /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. Note: When one of these systems defines some of these macros some day, binaries will have to be recompiled so that they recognizes the new errno values from the system. */ # ifndef ENOMSG # define ENOMSG 2000 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 2001 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 2002 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 2003 # define GNULIB_defined_EPROTO 1 # endif # ifndef EMULTIHOP # define EMULTIHOP 2004 # define GNULIB_defined_EMULTIHOP 1 # endif # ifndef EBADMSG # define EBADMSG 2005 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 2006 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 2007 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 2011 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 2012 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ESTALE # define ESTALE 2009 # define GNULIB_defined_ESTALE 1 # endif # ifndef EDQUOT # define EDQUOT 2010 # define GNULIB_defined_EDQUOT 1 # endif # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 # endif /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not defined. */ # ifndef EOWNERDEAD # if defined __sun /* Use the same values as defined for Solaris >= 8, for interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 # elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS /* Use the same values as defined by pthreads-win32, for interoperability. */ # define EOWNERDEAD 43 # define ENOTRECOVERABLE 44 # else /* Use the same values as defined by MSVC 10, for interoperability. */ # define EOWNERDEAD 133 # define ENOTRECOVERABLE 127 # endif # else # define EOWNERDEAD 2013 # define ENOTRECOVERABLE 2014 # endif # define GNULIB_defined_EOWNERDEAD 1 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EILSEQ # define EILSEQ 2015 # define GNULIB_defined_EILSEQ 1 # endif #endif /* _@GUARD_PREFIX@_ERRNO_H */ #endif /* _@GUARD_PREFIX@_ERRNO_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/lstat.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000006674�12116370307�011557� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around a bug of lstat on some systems Copyright (C) 1997-2006, 2008-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_lstat doesn't recurse to rpl_lstat. */ #define __need_system_sys_stat_h #include <config.h> #if !HAVE_LSTAT /* On systems that lack symlinks, our replacement <sys/stat.h> already defined lstat as stat, so there is nothing further to do other than avoid an empty file. */ typedef int dummy; #else /* HAVE_LSTAT */ /* Get the original definition of lstat. It might be defined as a macro. */ # include <sys/types.h> # include <sys/stat.h> # undef __need_system_sys_stat_h static int orig_lstat (const char *filename, struct stat *buf) { return lstat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" # include <string.h> # include <errno.h> /* lstat works differently on Linux and Solaris systems. POSIX (see "pathname resolution" in the glossary) requires that programs like 'ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux and Solaris 10 systems, the lstat function already has the desired semantics (in treating 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)', but on Solaris 9 and earlier it does not. If FILE has a trailing slash and specifies a symbolic link, then use stat() to get more info on the referent of FILE. If the referent is a non-directory, then set errno to ENOTDIR and return -1. Otherwise, return stat's result. */ int rpl_lstat (const char *file, struct stat *sbuf) { size_t len; int lstat_result = orig_lstat (file, sbuf); if (lstat_result != 0) return lstat_result; /* This replacement file can blindly check against '/' rather than using the ISSLASH macro, because all platforms with '\\' either lack symlinks (mingw) or have working lstat (cygwin) and thus do not compile this file. 0 len should have already been filtered out above, with a failure return of ENOENT. */ len = strlen (file); if (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode)) return 0; /* At this point, a trailing slash is only permitted on symlink-to-dir; but it should have found information on the directory, not the symlink. Call stat() to get info about the link's referent. Our replacement stat guarantees valid results, even if the symlink is not pointing to a directory. */ if (!S_ISLNK (sbuf->st_mode)) { errno = ENOTDIR; return -1; } return stat (file, sbuf); } #endif /* HAVE_LSTAT */ ��������������������������������������������������������������������wdiff-1.2.1/lib/config.charset����������������������������������������������������������������������0000644�0000000�0000000�00000055123�12116370307�013075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Output a system dependent table of character encoding aliases. # # Copyright (C) 2000-2004, 2006-2013 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 3, 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, see <http://www.gnu.org/licenses/>. # # The table consists of lines of the form # ALIAS CANONICAL # # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". # ALIAS is compared in a case sensitive way. # # CANONICAL is the GNU canonical name for this character encoding. # It must be an encoding supported by libiconv. Support by GNU libc is # also desirable. CANONICAL is case insensitive. Usually an upper case # MIME charset name is preferred. # The current list of GNU canonical charset names is as follows. # # name MIME? used by which systems # (darwin = Mac OS X, woe32 = native Windows) # # ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin # ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin # ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin # ISO-8859-3 Y glibc solaris cygwin # ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin # ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin # ISO-8859-6 Y glibc aix hpux solaris cygwin # ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin # ISO-8859-8 Y glibc aix hpux osf solaris cygwin # ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin # ISO-8859-13 glibc netbsd openbsd darwin cygwin # ISO-8859-14 glibc cygwin # ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin # KOI8-R Y glibc solaris freebsd netbsd openbsd darwin # KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin # KOI8-T glibc # CP437 dos # CP775 dos # CP850 aix osf dos # CP852 dos # CP855 dos # CP856 aix # CP857 dos # CP861 dos # CP862 dos # CP864 dos # CP865 dos # CP866 freebsd netbsd openbsd darwin dos # CP869 dos # CP874 woe32 dos # CP922 aix # CP932 aix cygwin woe32 dos # CP943 aix # CP949 osf darwin woe32 dos # CP950 woe32 dos # CP1046 aix # CP1124 aix # CP1125 dos # CP1129 aix # CP1131 darwin # CP1250 woe32 # CP1251 glibc solaris netbsd openbsd darwin cygwin woe32 # CP1252 aix woe32 # CP1253 woe32 # CP1254 woe32 # CP1255 glibc woe32 # CP1256 woe32 # CP1257 woe32 # GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin # EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin # EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin # EUC-TW glibc aix hpux irix osf solaris netbsd # BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin # BIG5-HKSCS glibc solaris darwin # GBK glibc aix osf solaris darwin cygwin woe32 dos # GB18030 glibc solaris netbsd darwin # SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin # JOHAB glibc solaris woe32 # TIS-620 glibc aix hpux osf solaris cygwin # VISCII Y glibc # TCVN5712-1 glibc # ARMSCII-8 glibc darwin # GEORGIAN-PS glibc cygwin # PT154 glibc # HP-ROMAN8 hpux # HP-ARABIC8 hpux # HP-GREEK8 hpux # HP-HEBREW8 hpux # HP-TURKISH8 hpux # HP-KANA8 hpux # DEC-KANJI osf # DEC-HANYU osf # UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin # # Note: Names which are not marked as being a MIME name should not be used in # Internet protocols for information interchange (mail, news, etc.). # # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications # must understand both names and treat them as equivalent. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM host="$1" os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` echo "# This file contains a table of character encoding aliases," echo "# suitable for operating system '${os}'." echo "# It was automatically generated from config.charset." # List of references, updated during installation: echo "# Packages using this file: " case "$os" in linux-gnulibc1*) # Linux libc5 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" echo "POSIX ASCII" for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ sv_FI sv_SE; do echo "$l ISO-8859-1" echo "$l.iso-8859-1 ISO-8859-1" echo "$l.iso-8859-15 ISO-8859-15" echo "$l.iso-8859-15@euro ISO-8859-15" echo "$l@euro ISO-8859-15" echo "$l.cp-437 CP437" echo "$l.cp-850 CP850" echo "$l.cp-1252 CP1252" echo "$l.cp-1252@euro CP1252" #echo "$l.atari-st ATARI-ST" # not a commonly used encoding echo "$l.utf-8 UTF-8" echo "$l.utf-8@euro UTF-8" done for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ sl_SI sr sr_CS sr_YU; do echo "$l ISO-8859-2" echo "$l.iso-8859-2 ISO-8859-2" echo "$l.cp-852 CP852" echo "$l.cp-1250 CP1250" echo "$l.utf-8 UTF-8" done for l in mk mk_MK ru ru_RU; do echo "$l ISO-8859-5" echo "$l.iso-8859-5 ISO-8859-5" echo "$l.koi8-r KOI8-R" echo "$l.cp-866 CP866" echo "$l.cp-1251 CP1251" echo "$l.utf-8 UTF-8" done for l in ar ar_SA; do echo "$l ISO-8859-6" echo "$l.iso-8859-6 ISO-8859-6" echo "$l.cp-864 CP864" #echo "$l.cp-868 CP868" # not a commonly used encoding echo "$l.cp-1256 CP1256" echo "$l.utf-8 UTF-8" done for l in el el_GR gr gr_GR; do echo "$l ISO-8859-7" echo "$l.iso-8859-7 ISO-8859-7" echo "$l.cp-869 CP869" echo "$l.cp-1253 CP1253" echo "$l.cp-1253@euro CP1253" echo "$l.utf-8 UTF-8" echo "$l.utf-8@euro UTF-8" done for l in he he_IL iw iw_IL; do echo "$l ISO-8859-8" echo "$l.iso-8859-8 ISO-8859-8" echo "$l.cp-862 CP862" echo "$l.cp-1255 CP1255" echo "$l.utf-8 UTF-8" done for l in tr tr_TR; do echo "$l ISO-8859-9" echo "$l.iso-8859-9 ISO-8859-9" echo "$l.cp-857 CP857" echo "$l.cp-1254 CP1254" echo "$l.utf-8 UTF-8" done for l in lt lt_LT lv lv_LV; do #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name echo "$l ISO-8859-13" done for l in ru_UA uk uk_UA; do echo "$l KOI8-U" done for l in zh zh_CN; do #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name echo "$l GB2312" done for l in ja ja_JP ja_JP.EUC; do echo "$l EUC-JP" done for l in ko ko_KR; do echo "$l EUC-KR" done for l in th th_TH; do echo "$l TIS-620" done for l in fa fa_IR; do #echo "$l ISIRI-3342" # a broken encoding echo "$l.utf-8 UTF-8" done ;; linux* | *-gnu*) # With glibc-2.1 or newer, we don't need any canonicalization, # because glibc has iconv and both glibc and libiconv support all # GNU canonical names directly. Therefore, the Makefile does not # need to install the alias file at all. # The following applies only to glibc-2.0.x and older libcs. echo "ISO_646.IRV:1983 ASCII" ;; aix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "IBM-850 CP850" echo "IBM-856 CP856" echo "IBM-921 ISO-8859-13" echo "IBM-922 CP922" echo "IBM-932 CP932" echo "IBM-943 CP943" echo "IBM-1046 CP1046" echo "IBM-1124 CP1124" echo "IBM-1129 CP1129" echo "IBM-1252 CP1252" echo "IBM-eucCN GB2312" echo "IBM-eucJP EUC-JP" echo "IBM-eucKR EUC-KR" echo "IBM-eucTW EUC-TW" echo "big5 BIG5" echo "GBK GBK" echo "TIS-620 TIS-620" echo "UTF-8 UTF-8" ;; hpux*) echo "iso88591 ISO-8859-1" echo "iso88592 ISO-8859-2" echo "iso88595 ISO-8859-5" echo "iso88596 ISO-8859-6" echo "iso88597 ISO-8859-7" echo "iso88598 ISO-8859-8" echo "iso88599 ISO-8859-9" echo "iso885915 ISO-8859-15" echo "roman8 HP-ROMAN8" echo "arabic8 HP-ARABIC8" echo "greek8 HP-GREEK8" echo "hebrew8 HP-HEBREW8" echo "turkish8 HP-TURKISH8" echo "kana8 HP-KANA8" echo "tis620 TIS-620" echo "big5 BIG5" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "hp15CN GB2312" #echo "ccdc ?" # what is this? echo "SJIS SHIFT_JIS" echo "utf8 UTF-8" ;; irix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" ;; osf*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "cp850 CP850" echo "big5 BIG5" echo "dechanyu DEC-HANYU" echo "dechanzi GB2312" echo "deckanji DEC-KANJI" echo "deckorean EUC-KR" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "GBK GBK" echo "KSC5601 CP949" echo "sdeckanji EUC-JP" echo "SJIS SHIFT_JIS" echo "TACTIS TIS-620" echo "UTF-8 UTF-8" ;; solaris*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-3 ISO-8859-3" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "koi8-r KOI8-R" echo "ansi-1251 CP1251" echo "BIG5 BIG5" echo "Big5-HKSCS BIG5-HKSCS" echo "gb2312 GB2312" echo "GBK GBK" echo "GB18030 GB18030" echo "cns11643 EUC-TW" echo "5601 EUC-KR" echo "ko_KR.johap92 JOHAB" echo "eucJP EUC-JP" echo "PCK SHIFT_JIS" echo "TIS620.2533 TIS-620" #echo "sun_eu_greek ?" # what is this? echo "UTF-8 UTF-8" ;; freebsd* | os2*) # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just # reuse FreeBSD's locale data for OS/2. echo "C ASCII" echo "US-ASCII ASCII" for l in la_LN lt_LN; do echo "$l.ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do echo "$l.ISO_8859-1 ISO-8859-1" echo "$l.DIS_8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do echo "$l.ISO_8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO_8859-4 ISO-8859-4" done for l in ru_RU ru_SU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO_8859-5 ISO-8859-5" echo "$l.CP866 CP866" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ja_JP.Shift_JIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; netbsd*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "BIG5 BIG5" echo "SJIS SHIFT_JIS" ;; openbsd*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" ;; darwin[56]*) # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" for l in en_AU en_CA en_GB en_US la_LN; do echo "$l.US-ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ nl_NL no_NO pt_PT sv_SE; do echo "$l ISO-8859-1" echo "$l.ISO8859-1 ISO-8859-1" echo "$l.ISO8859-15 ISO-8859-15" done for l in la_LN; do echo "$l.ISO8859-1 ISO-8859-1" echo "$l.ISO8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do echo "$l.ISO8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO8859-4 ISO-8859-4" done for l in ru_RU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO8859-5 ISO-8859-5" echo "$l.CP866 CP866" done for l in bg_BG; do echo "$l.CP1251 CP1251" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; darwin*) # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is # useless: # - It returns the empty string when LANG is set to a locale of the # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 # LC_CTYPE file. # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. # - The documentation says: # "... all code that calls BSD system routines should ensure # that the const *char parameters of these routines are in UTF-8 # encoding. All BSD system functions expect their string # parameters to be in UTF-8 encoding and nothing else." # It also says # "An additional caveat is that string parameters for files, # paths, and other file-system entities must be in canonical # UTF-8. In a canonical UTF-8 Unicode string, all decomposable # characters are decomposed ..." # but this is not true: You can pass non-decomposed UTF-8 strings # to file system functions, and it is the OS which will convert # them to decomposed UTF-8 before accessing the file system. # - The Apple Terminal application displays UTF-8 by default. # - However, other applications are free to use different encodings: # - xterm uses ISO-8859-1 by default. # - TextEdit uses MacRoman by default. # We prefer UTF-8 over decomposed UTF-8-MAC because one should # minimize the use of decomposed Unicode. Unfortunately, through the # Darwin file system, decomposed UTF-8 strings are leaked into user # space nevertheless. # Then there are also the locales with encodings other than US-ASCII # and UTF-8. These locales can be occasionally useful to users (e.g. # when grepping through ISO-8859-1 encoded text files), when all their # file names are in US-ASCII. echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" echo "KOI8-R KOI8-R" echo "KOI8-U KOI8-U" echo "CP866 CP866" echo "CP949 CP949" echo "CP1131 CP1131" echo "CP1251 CP1251" echo "eucCN GB2312" echo "GB2312 GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "Big5 BIG5" echo "Big5HKSCS BIG5-HKSCS" echo "GBK GBK" echo "GB18030 GB18030" echo "SJIS SHIFT_JIS" echo "ARMSCII-8 ARMSCII-8" echo "PT154 PT154" #echo "ISCII-DEV ?" echo "* UTF-8" ;; beos* | haiku*) # BeOS and Haiku have a single locale, and it has UTF-8 encoding. echo "* UTF-8" ;; msdosdjgpp*) # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "#" echo "# The encodings given here may not all be correct." echo "# If you find that the encoding given for your language and" echo "# country is not the one your DOS machine actually uses, just" echo "# correct it in this file, and send a mail to" echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>" echo "# and Bruno Haible <bruno@clisp.org>." echo "#" echo "C ASCII" # ISO-8859-1 languages echo "ca CP850" echo "ca_ES CP850" echo "da CP865" # not CP850 ?? echo "da_DK CP865" # not CP850 ?? echo "de CP850" echo "de_AT CP850" echo "de_CH CP850" echo "de_DE CP850" echo "en CP850" echo "en_AU CP850" # not CP437 ?? echo "en_CA CP850" echo "en_GB CP850" echo "en_NZ CP437" echo "en_US CP437" echo "en_ZA CP850" # not CP437 ?? echo "es CP850" echo "es_AR CP850" echo "es_BO CP850" echo "es_CL CP850" echo "es_CO CP850" echo "es_CR CP850" echo "es_CU CP850" echo "es_DO CP850" echo "es_EC CP850" echo "es_ES CP850" echo "es_GT CP850" echo "es_HN CP850" echo "es_MX CP850" echo "es_NI CP850" echo "es_PA CP850" echo "es_PY CP850" echo "es_PE CP850" echo "es_SV CP850" echo "es_UY CP850" echo "es_VE CP850" echo "et CP850" echo "et_EE CP850" echo "eu CP850" echo "eu_ES CP850" echo "fi CP850" echo "fi_FI CP850" echo "fr CP850" echo "fr_BE CP850" echo "fr_CA CP850" echo "fr_CH CP850" echo "fr_FR CP850" echo "ga CP850" echo "ga_IE CP850" echo "gd CP850" echo "gd_GB CP850" echo "gl CP850" echo "gl_ES CP850" echo "id CP850" # not CP437 ?? echo "id_ID CP850" # not CP437 ?? echo "is CP861" # not CP850 ?? echo "is_IS CP861" # not CP850 ?? echo "it CP850" echo "it_CH CP850" echo "it_IT CP850" echo "lt CP775" echo "lt_LT CP775" echo "lv CP775" echo "lv_LV CP775" echo "nb CP865" # not CP850 ?? echo "nb_NO CP865" # not CP850 ?? echo "nl CP850" echo "nl_BE CP850" echo "nl_NL CP850" echo "nn CP865" # not CP850 ?? echo "nn_NO CP865" # not CP850 ?? echo "no CP865" # not CP850 ?? echo "no_NO CP865" # not CP850 ?? echo "pt CP850" echo "pt_BR CP850" echo "pt_PT CP850" echo "sv CP850" echo "sv_SE CP850" # ISO-8859-2 languages echo "cs CP852" echo "cs_CZ CP852" echo "hr CP852" echo "hr_HR CP852" echo "hu CP852" echo "hu_HU CP852" echo "pl CP852" echo "pl_PL CP852" echo "ro CP852" echo "ro_RO CP852" echo "sk CP852" echo "sk_SK CP852" echo "sl CP852" echo "sl_SI CP852" echo "sq CP852" echo "sq_AL CP852" echo "sr CP852" # CP852 or CP866 or CP855 ?? echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? # ISO-8859-3 languages echo "mt CP850" echo "mt_MT CP850" # ISO-8859-5 languages echo "be CP866" echo "be_BE CP866" echo "bg CP866" # not CP855 ?? echo "bg_BG CP866" # not CP855 ?? echo "mk CP866" # not CP855 ?? echo "mk_MK CP866" # not CP855 ?? echo "ru CP866" echo "ru_RU CP866" echo "uk CP1125" echo "uk_UA CP1125" # ISO-8859-6 languages echo "ar CP864" echo "ar_AE CP864" echo "ar_DZ CP864" echo "ar_EG CP864" echo "ar_IQ CP864" echo "ar_IR CP864" echo "ar_JO CP864" echo "ar_KW CP864" echo "ar_MA CP864" echo "ar_OM CP864" echo "ar_QA CP864" echo "ar_SA CP864" echo "ar_SY CP864" # ISO-8859-7 languages echo "el CP869" echo "el_GR CP869" # ISO-8859-8 languages echo "he CP862" echo "he_IL CP862" # ISO-8859-9 languages echo "tr CP857" echo "tr_TR CP857" # Japanese echo "ja CP932" echo "ja_JP CP932" # Chinese echo "zh_CN GBK" echo "zh_TW CP950" # not CP938 ?? # Korean echo "kr CP949" # not CP934 ?? echo "kr_KR CP949" # not CP934 ?? # Thai echo "th CP874" echo "th_TH CP874" # Other echo "eo CP850" echo "eo_EO CP850" ;; esac ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/memchr.c����������������������������������������������������������������������������0000644�0000000�0000000�00000013346�12116370307�011675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and commentary by Jim Blandy (jimb@ai.mit.edu); adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), and implemented by Roland McGrath (roland@ai.mit.edu). NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. 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 3 of the License, or 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, see <http://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> #endif #include <string.h> #include <stddef.h> #if defined _LIBC # include <memcopy.h> #else # define reg_char char #endif #include <limits.h> #if HAVE_BP_SYM_H || defined _LIBC # include <bp-sym.h> #else # define BP_SYM(sym) sym #endif #undef __memchr #ifdef _LIBC # undef memchr #endif #ifndef weak_alias # define __memchr memchr #endif /* Search no more than N bytes of S for C. */ void * __memchr (void const *s, int c_in, size_t n) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned reg_char c; c = (unsigned char) c_in; /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; n > 0 && (size_t) char_ptr % sizeof (longword) != 0; --n, ++char_ptr) if (*char_ptr == c) return (void *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 is zero. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. So, the test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. */ while (n >= sizeof (longword)) { longword longword1 = *longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & (repeated_one << 7)) != 0) break; longword_ptr++; n -= sizeof (longword); } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that either n < sizeof (longword), or one of the sizeof (longword) bytes starting at char_ptr is == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ for (; n > 0; --n, ++char_ptr) { if (*char_ptr == c) return (void *) char_ptr; } return NULL; } #ifdef weak_alias weak_alias (__memchr, BP_SYM (memchr)) #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/malloc.c����������������������������������������������������������������������������0000644�0000000�0000000�00000002732�12116370307�011666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include <config.h> /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ #ifdef malloc # define NEED_MALLOC_GNU 1 # undef malloc /* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU # define NEED_MALLOC_GNU 1 #endif #include <stdlib.h> #include <errno.h> /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { void *result; #if NEED_MALLOC_GNU if (n == 0) n = 1; #endif result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } ��������������������������������������wdiff-1.2.1/lib/mbtowc-impl.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002626�12116370307�012660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert multibyte character to wide character. Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. 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 3 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, see <http://www.gnu.org/licenses/>. */ /* We don't need a static internal state, because the encoding is not state dependent, and when mbrtowc returns (size_t)(-2). we throw the result away. */ int mbtowc (wchar_t *pwc, const char *s, size_t n) { if (s == NULL) return 0; else { mbstate_t state; wchar_t wc; size_t result; memset (&state, 0, sizeof (mbstate_t)); result = mbrtowc (&wc, s, n, &state); if (result == (size_t)-1 || result == (size_t)-2) { errno = EILSEQ; return -1; } if (pwc != NULL) *pwc = wc; return (wc == 0 ? 0 : result); } } ����������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/stdint.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000044610�12116370307�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* * ISO C 99 <stdint.h> for platforms that lack it. * <http://www.opengroup.org/susv3xbd/stdint.h.html> */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes <inttypes.h>, use the system <inttypes.h>, not our substitute. This avoids problems with (for example) VMS, whose <sys/bitypes.h> includes <inttypes.h>. */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), <sys/types.h> includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's <stdint.h>. Ideally we should test __BIONIC__ here, but it is only defined after <sys/cdefs.h> has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ \ && defined _SYS_TYPES_H_ && !defined __need_size_t # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 <stdint.h> implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy <stdint.h>. Include it before <inttypes.h>, since any "#include <stdint.h>" in <inttypes.h> would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* <sys/types.h> defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). AIX 5.2 <sys/types.h> isn't needed and causes troubles. Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but relies on the system <stdint.h> definitions, so include <sys/types.h> after @NEXT_STDINT_H@. */ #if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include <sys/types.h> #endif /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX. */ #include <limits.h> #if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. <inttypes.h> also defines intptr_t and uintptr_t. */ # include <inttypes.h> #elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include <sys/inttypes.h> #endif #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by <sys/types.h>. */ # include <sys/bitypes.h> #endif #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ #define _STDINT_MIN(signed, bits, zero) \ ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) #define _STDINT_MAX(signed, bits, zero) \ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ : /* The expression for the unsigned case. The subtraction of (signed) \ is a nop in the unsigned case and avoids "signed integer overflow" \ warnings in the signed case. */ \ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ #undef int8_t #undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; #define int8_t gl_int8_t #define uint8_t gl_uint8_t #undef int16_t #undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; #define int16_t gl_int16_t #define uint16_t gl_uint16_t #undef int32_t #undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; #define int32_t gl_int32_t #define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ #ifdef INT64_MAX # define GL_INT64_T #else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif @HAVE_LONG_LONG_INT@ # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif #endif #ifdef UINT64_MAX # define GL_UINT64_T #else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif #endif /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ #define _UINT8_T #define _UINT32_T #define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ #undef int_least8_t #undef uint_least8_t #undef int_least16_t #undef uint_least16_t #undef int_least32_t #undef uint_least32_t #undef int_least64_t #undef uint_least64_t #define int_least8_t int8_t #define uint_least8_t uint8_t #define int_least16_t int16_t #define uint_least16_t uint16_t #define int_least32_t int32_t #define uint_least32_t uint32_t #ifdef GL_INT64_T # define int_least64_t int64_t #endif #ifdef GL_UINT64_T # define uint_least64_t uint64_t #endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other <stdint.h> substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ #undef int_fast8_t #undef uint_fast8_t #undef int_fast16_t #undef uint_fast16_t #undef int_fast32_t #undef uint_fast32_t #undef int_fast64_t #undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; #ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; #else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; #endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; #define int_fast8_t gl_int_fast8_t #define uint_fast8_t gl_uint_fast8_t #define int_fast16_t gl_int_fast16_t #define uint_fast16_t gl_uint_fast16_t #define int_fast32_t gl_int_fast32_t #define uint_fast32_t gl_uint_fast32_t #ifdef GL_INT64_T # define int_fast64_t int64_t #endif #ifdef GL_UINT64_T # define uint_fast64_t uint64_t #endif /* 7.18.1.4. Integer types capable of holding object pointers */ #undef intptr_t #undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; #define intptr_t gl_intptr_t #define uintptr_t gl_uintptr_t /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ #ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif #endif #ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif #endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; #define GNULIB_defined_stdint_types 1 #endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ #undef INT8_MIN #undef INT8_MAX #undef UINT8_MAX #define INT8_MIN (~ INT8_MAX) #define INT8_MAX 127 #define UINT8_MAX 255 #undef INT16_MIN #undef INT16_MAX #undef UINT16_MAX #define INT16_MIN (~ INT16_MAX) #define INT16_MAX 32767 #define UINT16_MAX 65535 #undef INT32_MIN #undef INT32_MAX #undef UINT32_MAX #define INT32_MIN (~ INT32_MAX) #define INT32_MAX 2147483647 #define UINT32_MAX 4294967295U #if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) #endif #if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) #endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ #undef INT_LEAST8_MIN #undef INT_LEAST8_MAX #undef UINT_LEAST8_MAX #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST8_MAX INT8_MAX #define UINT_LEAST8_MAX UINT8_MAX #undef INT_LEAST16_MIN #undef INT_LEAST16_MAX #undef UINT_LEAST16_MAX #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST16_MAX INT16_MAX #define UINT_LEAST16_MAX UINT16_MAX #undef INT_LEAST32_MIN #undef INT_LEAST32_MAX #undef UINT_LEAST32_MAX #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST32_MAX INT32_MAX #define UINT_LEAST32_MAX UINT32_MAX #undef INT_LEAST64_MIN #undef INT_LEAST64_MAX #ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX #endif #undef UINT_LEAST64_MAX #ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX #endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ #undef INT_FAST8_MIN #undef INT_FAST8_MAX #undef UINT_FAST8_MAX #define INT_FAST8_MIN SCHAR_MIN #define INT_FAST8_MAX SCHAR_MAX #define UINT_FAST8_MAX UCHAR_MAX #undef INT_FAST16_MIN #undef INT_FAST16_MAX #undef UINT_FAST16_MAX #define INT_FAST16_MIN INT_FAST32_MIN #define INT_FAST16_MAX INT_FAST32_MAX #define UINT_FAST16_MAX UINT_FAST32_MAX #undef INT_FAST32_MIN #undef INT_FAST32_MAX #undef UINT_FAST32_MAX #ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX #else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX #endif #undef INT_FAST64_MIN #undef INT_FAST64_MAX #ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX #endif #undef UINT_FAST64_MAX #ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX #endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ #undef INTPTR_MIN #undef INTPTR_MAX #undef UINTPTR_MAX #define INTPTR_MIN LONG_MIN #define INTPTR_MAX LONG_MAX #define UINTPTR_MAX ULONG_MAX /* 7.18.2.5. Limits of greatest-width integer types */ #ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif #endif #ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif #endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ #undef PTRDIFF_MIN #undef PTRDIFF_MAX #if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif #else # define PTRDIFF_MIN \ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) #endif /* sig_atomic_t limits */ #undef SIG_ATOMIC_MIN #undef SIG_ATOMIC_MAX #define SIG_ATOMIC_MIN \ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) #define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ #undef SIZE_MAX #if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif #else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) #endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes <stdint.h> and assumes its types are already defined. */ #if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ # include <stddef.h> # include <stdio.h> # include <time.h> # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include <wchar.h> # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H #endif #undef WCHAR_MIN #undef WCHAR_MAX #define WCHAR_MIN \ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) #define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ #undef WINT_MIN #undef WINT_MAX #define WINT_MIN \ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) #define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ #undef INT8_C #undef UINT8_C #define INT8_C(x) x #define UINT8_C(x) x #undef INT16_C #undef UINT16_C #define INT16_C(x) x #define UINT16_C(x) x #undef INT32_C #undef UINT32_C #define INT32_C(x) x #define UINT32_C(x) x ## U #undef INT64_C #undef UINT64_C #if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L #elif defined _MSC_VER # define INT64_C(x) x##i64 #elif @HAVE_LONG_LONG_INT@ # define INT64_C(x) x##LL #endif #if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL #elif defined _MSC_VER # define UINT64_C(x) x##ui64 #elif @HAVE_UNSIGNED_LONG_LONG_INT@ # define UINT64_C(x) x##ULL #endif /* 7.18.4.2. Macros for greatest-width integer constants */ #ifndef INTMAX_C # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif #endif #ifndef UINTMAX_C # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif #endif #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ ������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/msvc-nothrow.c����������������������������������������������������������������������0000644�0000000�0000000�00000002434�12116370307�013064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "msvc-nothrow.h" /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include "msvc-inval.h" #undef _get_osfhandle #if HAVE_MSVC_INVALID_PARAMETER_HANDLER intptr_t _gl_nothrow_get_osfhandle (int fd) { intptr_t result; TRY_MSVC_INVAL { result = _get_osfhandle (fd); } CATCH_MSVC_INVAL { result = (intptr_t) INVALID_HANDLE_VALUE; } DONE_MSVC_INVAL; return result; } #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/iswblank.c��������������������������������������������������������������������������0000644�0000000�0000000�00000001531�12116370307�012225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Test wide character for being blank. Copyright (C) 2008-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wctype.h> int iswblank (wint_t wc) { return wc == ' ' || wc == '\t'; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/getline.c���������������������������������������������������������������������������0000644�0000000�0000000�00000001666�12116370307�012053� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getline.c --- Implementation of replacement getline function. Copyright (C) 2005-2007, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Written by Simon Josefsson. */ #include <config.h> #include <stdio.h> ssize_t getline (char **lineptr, size_t *n, FILE *stream) { return getdelim (lineptr, n, '\n', stream); } ��������������������������������������������������������������������������wdiff-1.2.1/lib/getopt_int.h������������������������������������������������������������������������0000644�0000000�0000000�00000011742�12116370307�012601� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Internal declarations for getopt. Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _GETOPT_INT_H #define _GETOPT_INT_H 1 #include <getopt.h> extern int _getopt_internal (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only, int __posixly_correct); /* Reentrant versions which can handle parsing multiple argument vectors at the same time. */ /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using '+' as the first character of the list of option characters, or by calling getopt. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using '-' as the first character of the list of option characters selects this mode of operation. The special argument '--' forces an end of option-scanning regardless of the value of 'ordering'. In the case of RETURN_IN_ORDER, only '--' can cause 'getopt' to return -1 with 'optind' != ARGC. */ enum __ord { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER }; /* Data type for reentrant functions. */ struct _getopt_data { /* These have exactly the same meaning as the corresponding global variables, except that they are used for the reentrant versions of getopt. */ int optind; int opterr; int optopt; char *optarg; /* Internal members. */ /* True if the internal members have been initialized. */ int __initialized; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ char *__nextchar; /* See __ord above. */ enum __ord __ordering; /* If the POSIXLY_CORRECT environment variable is set or getopt was called. */ int __posixly_correct; /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. 'first_nonopt' is the index in ARGV of the first of them; 'last_nonopt' is the index after the last of them. */ int __first_nonopt; int __last_nonopt; #if defined _LIBC && defined USE_NONOPTION_FLAGS int __nonoption_flags_max_len; int __nonoption_flags_len; #endif }; /* The initializer is necessary to set OPTIND and OPTERR to their default values and to clear the initialization flag. */ #define _GETOPT_DATA_INITIALIZER { 1, 1 } extern int _getopt_internal_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only, struct _getopt_data *__data, int __posixly_correct); extern int _getopt_long_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, struct _getopt_data *__data); extern int _getopt_long_only_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, struct _getopt_data *__data); #endif /* getopt_int.h */ ������������������������������wdiff-1.2.1/lib/wcwidth.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002777�12116370307�012101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine the number of screen columns needed for a character. Copyright (C) 2006-2007, 2010-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> /* Get iswprint. */ #include <wctype.h> #include "localcharset.h" #include "streq.h" #include "uniwidth.h" int wcwidth (wchar_t wc) #undef wcwidth { /* In UTF-8 locales, use a Unicode aware width function. */ const char *encoding = locale_charset (); if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0)) { /* We assume that in a UTF-8 locale, a wide character is the same as a Unicode character. */ return uc_width (wc, encoding); } else { /* Otherwise, fall back to the system's wcwidth function. */ #if HAVE_WCWIDTH return wcwidth (wc); #else return wc == 0 ? 0 : iswprint (wc) ? 1 : -1; #endif } } �wdiff-1.2.1/lib/getopt1.c���������������������������������������������������������������������������0000644�0000000�0000000�00000010552�12116370307�012001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifdef _LIBC # include <getopt.h> #else # include <config.h> # include "getopt.h" #endif #include "getopt_int.h" #include <stdio.h> /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include <stdlib.h> #endif #ifndef NULL #define NULL 0 #endif int getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, opt_index, 0, 0); } int _getopt_long_r (int argc, char **argv, const char *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, 0, d, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, opt_index, 1, 0); } int _getopt_long_only_r (int argc, char **argv, const char *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, 1, d, 0); } #ifdef TEST #include <stdio.h> int main (int argc, char **argv) { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static const struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value '%s'\n", optarg); break; case 'd': printf ("option d with value '%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ ������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/strerror-override.c�����������������������������������������������������������������0000644�0000000�0000000�00000021465�12116370307�014122� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2010. */ #include <config.h> #include "strerror-override.h" #include <errno.h> #if GNULIB_defined_EWINSOCK /* native Windows platforms */ # if HAVE_WINSOCK2_H # include <winsock2.h> # endif #endif /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * strerror_override (int errnum) { /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { #if REPLACE_STRERROR_0 case 0: return "Success"; #endif #if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: return "Operation already in progress"; case ENOTSOCK: return "Socket operation on non-socket"; case EDESTADDRREQ: return "Destination address required"; case EMSGSIZE: return "Message too long"; case EPROTOTYPE: return "Protocol wrong type for socket"; case ENOPROTOOPT: return "Protocol not available"; case EPROTONOSUPPORT: return "Protocol not supported"; case EOPNOTSUPP: return "Operation not supported"; case EAFNOSUPPORT: return "Address family not supported by protocol"; case EADDRINUSE: return "Address already in use"; case EADDRNOTAVAIL: return "Cannot assign requested address"; case ENETDOWN: return "Network is down"; case ENETUNREACH: return "Network is unreachable"; case ECONNRESET: return "Connection reset by peer"; case ENOBUFS: return "No buffer space available"; case EISCONN: return "Transport endpoint is already connected"; case ENOTCONN: return "Transport endpoint is not connected"; case ETIMEDOUT: return "Connection timed out"; case ECONNREFUSED: return "Connection refused"; case ELOOP: return "Too many levels of symbolic links"; case EHOSTUNREACH: return "No route to host"; case EWOULDBLOCK: return "Operation would block"; #endif #if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */ case ETXTBSY: return "Text file busy"; case ENODATA: return "No data available"; case ENOSR: return "Out of streams resources"; case ENOSTR: return "Device not a stream"; case ETIME: return "Timer expired"; case EOTHER: return "Other error"; #endif #if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: return "Protocol family not supported"; case ESHUTDOWN: return "Cannot send after transport endpoint shutdown"; case ETOOMANYREFS: return "Too many references: cannot splice"; case EHOSTDOWN: return "Host is down"; case EPROCLIM: return "Too many processes"; case EUSERS: return "Too many users"; case EDQUOT: return "Disk quota exceeded"; case ESTALE: return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; # if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ case WSA_OPERATION_ABORTED: return "Overlapped operation aborted"; case WSA_IO_INCOMPLETE: return "Overlapped I/O event object not in signaled state"; case WSA_IO_PENDING: return "Overlapped operations will complete later"; /* WSAEINTR maps to EINTR */ /* WSAEBADF maps to EBADF */ /* WSAEACCES maps to EACCES */ /* WSAEFAULT maps to EFAULT */ /* WSAEINVAL maps to EINVAL */ /* WSAEMFILE maps to EMFILE */ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ /* WSAEINPROGRESS maps to EINPROGRESS */ /* WSAEALREADY maps to EALREADY */ /* WSAENOTSOCK maps to ENOTSOCK */ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ /* WSAEMSGSIZE maps to EMSGSIZE */ /* WSAEPROTOTYPE maps to EPROTOTYPE */ /* WSAENOPROTOOPT maps to ENOPROTOOPT */ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ /* WSAEADDRINUSE maps to EADDRINUSE */ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ /* WSAENETDOWN maps to ENETDOWN */ /* WSAENETUNREACH maps to ENETUNREACH */ /* WSAENETRESET maps to ENETRESET */ /* WSAECONNABORTED maps to ECONNABORTED */ /* WSAECONNRESET maps to ECONNRESET */ /* WSAENOBUFS maps to ENOBUFS */ /* WSAEISCONN maps to EISCONN */ /* WSAENOTCONN maps to ENOTCONN */ /* WSAESHUTDOWN is ESHUTDOWN */ /* WSAETOOMANYREFS is ETOOMANYREFS */ /* WSAETIMEDOUT maps to ETIMEDOUT */ /* WSAECONNREFUSED maps to ECONNREFUSED */ /* WSAELOOP maps to ELOOP */ /* WSAENAMETOOLONG maps to ENAMETOOLONG */ /* WSAEHOSTDOWN is EHOSTDOWN */ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ /* WSAENOTEMPTY maps to ENOTEMPTY */ /* WSAEPROCLIM is EPROCLIM */ /* WSAEUSERS is EUSERS */ /* WSAEDQUOT is EDQUOT */ /* WSAESTALE is ESTALE */ /* WSAEREMOTE is EREMOTE */ case WSASYSNOTREADY: return "Network subsystem is unavailable"; case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; case WSANOTINITIALISED: return "Successful WSAStartup not yet performed"; case WSAEDISCON: return "Graceful shutdown in progress"; case WSAENOMORE: case WSA_E_NO_MORE: return "No more results"; case WSAECANCELLED: case WSA_E_CANCELLED: return "Call was canceled"; case WSAEINVALIDPROCTABLE: return "Procedure call table is invalid"; case WSAEINVALIDPROVIDER: return "Service provider is invalid"; case WSAEPROVIDERFAILEDINIT: return "Service provider failed to initialize"; case WSASYSCALLFAILURE: return "System call failure"; case WSASERVICE_NOT_FOUND: return "Service not found"; case WSATYPE_NOT_FOUND: return "Class type not found"; case WSAEREFUSED: return "Database query was refused"; case WSAHOST_NOT_FOUND: return "Host not found"; case WSATRY_AGAIN: return "Nonauthoritative host not found"; case WSANO_RECOVERY: return "Nonrecoverable error"; case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ # endif #endif #if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; #endif #if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; #endif #if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; #endif #if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; #endif #if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; #endif #if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; #endif #if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; #endif #if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; #endif #if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; #endif #if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; #endif #if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; #endif #if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; #endif #if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; #endif #if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; #endif #if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; #endif #if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; #endif default: return NULL; } } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/vasprintf.c�������������������������������������������������������������������������0000644�0000000�0000000�00000002472�12116370307�012434� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Formatted output to strings. Copyright (C) 1999, 2002, 2006-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #ifdef IN_LIBASPRINTF # include "vasprintf.h" #else # include <stdio.h> #endif #include <errno.h> #include <limits.h> #include <stdlib.h> #include "vasnprintf.h" int vasprintf (char **resultp, const char *format, va_list args) { size_t length; char *result = vasnprintf (NULL, &length, format, args); if (result == NULL) return -1; if (length > INT_MAX) { free (result); errno = EOVERFLOW; return -1; } *resultp = result; /* Return the number of resulting bytes, excluding the trailing NUL. */ return length; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/alloca.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000003724�12116370307�012266� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include <malloc.h> # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # else # include <stddef.h> # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ ��������������������������������������������wdiff-1.2.1/lib/mbtowc.c����������������������������������������������������������������������������0000644�0000000�0000000�00000001646�12116370307�011715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert multibyte character to wide character. Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <wchar.h> #include "mbtowc-impl.h" ������������������������������������������������������������������������������������������wdiff-1.2.1/lib/vasnprintf.c������������������������������������������������������������������������0000644�0000000�0000000�00000664642�12116370307�012627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* vsprintf with automatic memory allocation. Copyright (C) 1999, 2002-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* This file can be parametrized with the following macros: VASNPRINTF The name of the function being defined. FCHAR_T The element type of the format string. DCHAR_T The element type of the destination (result) string. FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. MUST be set if FCHAR_T and DCHAR_T are not the same type. DIRECTIVE Structure denoting a format directive. Depends on FCHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on FCHAR_T. PRINTF_PARSE Function that parses a format string. Depends on FCHAR_T. DCHAR_CPY memcpy like function for DCHAR_T[] arrays. DCHAR_SET memset like function for DCHAR_T[] arrays. DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. SNPRINTF The system's snprintf (or similar) function. This may be either snprintf or swprintf. TCHAR_T The element type of the argument and result string of the said SNPRINTF function. This may be either char or wchar_t. The code exploits that sizeof (TCHAR_T) | sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ /* Tell glibc's <stdio.h> to provide a prototype for snprintf(). This must come before <config.h> because <config.h> may include <features.h>, and once <features.h> has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifndef VASNPRINTF # include <config.h> #endif #ifndef IN_LIBINTL # include <alloca.h> #endif /* Specification. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "vasnwprintf.h" # else # include "vasnprintf.h" # endif #endif #include <locale.h> /* localeconv() */ #include <stdio.h> /* snprintf(), sprintf() */ #include <stdlib.h> /* abort(), malloc(), realloc(), free() */ #include <string.h> /* memcpy(), strlen() */ #include <errno.h> /* errno */ #include <limits.h> /* CHAR_BIT */ #include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */ #if HAVE_NL_LANGINFO # include <langinfo.h> #endif #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "wprintf-parse.h" # else # include "printf-parse.h" # endif #endif /* Checked size_t computations. */ #include "xsize.h" #include "verify.h" #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include <math.h> # include "float+.h" #endif #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL # include <math.h> # include "isnand-nolibm.h" #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL # include <math.h> # include "isnanl-nolibm.h" # include "fpucw.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL # include <math.h> # include "isnand-nolibm.h" # include "printf-frexp.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include <math.h> # include "isnanl-nolibm.h" # include "printf-frexpl.h" # include "fpucw.h" #endif /* Default parameters. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # define VASNPRINTF vasnwprintf # define FCHAR_T wchar_t # define DCHAR_T wchar_t # define TCHAR_T wchar_t # define DCHAR_IS_TCHAR 1 # define DIRECTIVE wchar_t_directive # define DIRECTIVES wchar_t_directives # define PRINTF_PARSE wprintf_parse # define DCHAR_CPY wmemcpy # define DCHAR_SET wmemset # else # define VASNPRINTF vasnprintf # define FCHAR_T char # define DCHAR_T char # define TCHAR_T char # define DCHAR_IS_TCHAR 1 # define DIRECTIVE char_directive # define DIRECTIVES char_directives # define PRINTF_PARSE printf_parse # define DCHAR_CPY memcpy # define DCHAR_SET memset # endif #endif #if WIDE_CHAR_VERSION /* TCHAR_T is wchar_t. */ # define USE_SNPRINTF 1 # if HAVE_DECL__SNWPRINTF /* On Windows, the function swprintf() has a different signature than on Unix; we use the function _snwprintf() or - on mingw - snwprintf() instead. The mingw function snwprintf() has fewer bugs than the MSVCRT function _snwprintf(), so prefer that. */ # if defined __MINGW32__ # define SNPRINTF snwprintf # else # define SNPRINTF _snwprintf # endif # else /* Unix. */ # define SNPRINTF swprintf # endif #else /* TCHAR_T is char. */ /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. But don't use it on BeOS, since BeOS snprintf produces no output if the size argument is >= 0x3000000. Also don't use it on Linux libc5, since there snprintf with size = 1 writes any output without bounds, like sprintf. */ # if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1) # define USE_SNPRINTF 1 # else # define USE_SNPRINTF 0 # endif # if HAVE_DECL__SNPRINTF /* Windows. The mingw function snprintf() has fewer bugs than the MSVCRT function _snprintf(), so prefer that. */ # if defined __MINGW32__ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # else # define SNPRINTF _snprintf # endif # else /* Unix. */ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # endif #endif /* Here we need to call the native sprintf, not rpl_sprintf. */ #undef sprintf /* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized" warnings in this file. Use -Dlint to suppress them. */ #ifdef lint # define IF_LINT(Code) Code #else # define IF_LINT(Code) /* empty */ #endif /* Avoid some warnings from "gcc -Wshadow". This file doesn't use the exp() and remainder() functions. */ #undef exp #define exp expo #undef remainder #define remainder rem #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && !WIDE_CHAR_VERSION # if (HAVE_STRNLEN && !defined _AIX) # define local_strnlen strnlen # else # ifndef local_strnlen_defined # define local_strnlen_defined 1 static size_t local_strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); return end ? (size_t) (end - string) : maxlen; } # endif # endif #endif #if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T # if HAVE_WCSLEN # define local_wcslen wcslen # else /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid a dependency towards this library, here is a local substitute. Define this substitute only once, even if this file is included twice in the same compilation unit. */ # ifndef local_wcslen_defined # define local_wcslen_defined 1 static size_t local_wcslen (const wchar_t *s) { const wchar_t *ptr; for (ptr = s; *ptr != (wchar_t) 0; ptr++) ; return ptr - s; } # endif # endif #endif #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && HAVE_WCHAR_T && WIDE_CHAR_VERSION # if HAVE_WCSNLEN # define local_wcsnlen wcsnlen # else # ifndef local_wcsnlen_defined # define local_wcsnlen_defined 1 static size_t local_wcsnlen (const wchar_t *s, size_t maxlen) { const wchar_t *ptr; for (ptr = s; maxlen > 0 && *ptr != (wchar_t) 0; ptr++, maxlen--) ; return ptr - s; } # endif # endif #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL /* Determine the decimal-point character according to the current locale. */ # ifndef decimal_point_char_defined # define decimal_point_char_defined 1 static char decimal_point_char (void) { const char *point; /* Determine it in a multithread-safe way. We know nl_langinfo is multithread-safe on glibc systems and Mac OS X systems, but is not required to be multithread-safe by POSIX. sprintf(), however, is multithread-safe. localeconv() is rarely multithread-safe. */ # if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__)) point = nl_langinfo (RADIXCHAR); # elif 1 char pointbuf[5]; sprintf (pointbuf, "%#.0f", 1.0); point = &pointbuf[1]; # else point = localeconv () -> decimal_point; # endif /* The decimal point is always a single byte: either '.' or ','. */ return (point[0] != '\0' ? point[0] : '.'); } # endif #endif #if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zero (double x) { return isnand (x) || x + x == x; } #endif #if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zerol (long double x) { return isnanl (x) || x + x == x; } #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL /* Converting 'long double' to decimal without rare rounding bugs requires real bignums. We use the naming conventions of GNU gmp, but vastly simpler (and slower) algorithms. */ typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Representation of a bignum >= 0. */ typedef struct { size_t nlimbs; mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ } mpn_t; /* Compute the product of two bignums >= 0. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * multiply (mpn_t src1, mpn_t src2, mpn_t *dest) { const mp_limb_t *p1; const mp_limb_t *p2; size_t len1; size_t len2; if (src1.nlimbs <= src2.nlimbs) { len1 = src1.nlimbs; p1 = src1.limbs; len2 = src2.nlimbs; p2 = src2.limbs; } else { len1 = src2.nlimbs; p1 = src2.limbs; len2 = src1.nlimbs; p2 = src1.limbs; } /* Now 0 <= len1 <= len2. */ if (len1 == 0) { /* src1 or src2 is zero. */ dest->nlimbs = 0; dest->limbs = (mp_limb_t *) malloc (1); } else { /* Here 1 <= len1 <= len2. */ size_t dlen; mp_limb_t *dp; size_t k, i, j; dlen = len1 + len2; dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); if (dp == NULL) return NULL; for (k = len2; k > 0; ) dp[--k] = 0; for (i = 0; i < len1; i++) { mp_limb_t digit1 = p1[i]; mp_twolimb_t carry = 0; for (j = 0; j < len2; j++) { mp_limb_t digit2 = p2[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; carry += dp[i + j]; dp[i + j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } dp[i + len2] = (mp_limb_t) carry; } /* Normalise. */ while (dlen > 0 && dp[dlen - 1] == 0) dlen--; dest->nlimbs = dlen; dest->limbs = dp; } return dest->limbs; } /* Compute the quotient of a bignum a >= 0 and a bignum b > 0. a is written as a = q * b + r with 0 <= r < b. q is the quotient, r the remainder. Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, q is incremented. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * divide (mpn_t a, mpn_t b, mpn_t *q) { /* Algorithm: First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). If m<n, then q:=0 and r:=a. If m>=n=1, perform a single-precision division: r:=0, j:=m, while j>0 do {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta} j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j]. Normalise [q[m-1],...,q[0]], yields q. If m>=n>1, perform a multiple-precision division: We have a/b < beta^(m-n+1). s:=intDsize-1-(highest bit in b[n-1]), 0<=s<intDsize. Shift a and b left by s bits, copying them. r:=a. r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2. For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} Compute q* : q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). In case of overflow (q* >= beta) set q* := beta-1. Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] and c3 := b[n-2] * q*. {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow occurred. Furthermore 0 <= c3 < beta^2. If there was overflow and r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, the next test can be skipped.} While c3 > c2, {Here 0 <= c2 < c3 < beta^2} Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. If q* > 0: Put r := r - b * q* * beta^j. In detail: [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. hence: u:=0, for i:=0 to n-1 do u := u + q* * b[i], r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), u:=u div beta (+ 1, if carry in subtraction) r[n+j]:=r[n+j]-u. {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 < q* + 1 <= beta, the carry u does not overflow.} If a negative carry occurs, put q* := q* - 1 and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. Set q[j] := q*. Normalise [q[m-n],..,q[0]]; this yields the quotient q. Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the rest r. The room for q[j] can be allocated at the memory location of r[n+j]. Finally, round-to-even: Shift r left by 1 bit. If r > b or if r = b and q[0] is odd, q := q+1. */ const mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; const mp_limb_t *b_ptr = b.limbs; size_t b_len = b.nlimbs; mp_limb_t *roomptr; mp_limb_t *tmp_roomptr = NULL; mp_limb_t *q_ptr; size_t q_len; mp_limb_t *r_ptr; size_t r_len; /* Allocate room for a_len+2 digits. (Need a_len+1 digits for the real division and 1 more digit for the final rounding of q.) */ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); if (roomptr == NULL) return NULL; /* Normalise a. */ while (a_len > 0 && a_ptr[a_len - 1] == 0) a_len--; /* Normalise b. */ for (;;) { if (b_len == 0) /* Division by zero. */ abort (); if (b_ptr[b_len - 1] == 0) b_len--; else break; } /* Here m = a_len >= 0 and n = b_len > 0. */ if (a_len < b_len) { /* m<n: trivial case. q=0, r := copy of a. */ r_ptr = roomptr; r_len = a_len; memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); q_ptr = roomptr + a_len; q_len = 0; } else if (b_len == 1) { /* n=1: single precision division. beta^(m-1) <= a < beta^m ==> beta^(m-2) <= a/b < beta^m */ r_ptr = roomptr; q_ptr = roomptr + 1; { mp_limb_t den = b_ptr[0]; mp_limb_t remainder = 0; const mp_limb_t *sourceptr = a_ptr + a_len; mp_limb_t *destptr = q_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; *--destptr = num / den; remainder = num % den; } /* Normalise and store r. */ if (remainder > 0) { r_ptr[0] = remainder; r_len = 1; } else r_len = 0; /* Normalise q. */ q_len = a_len; if (q_ptr[q_len - 1] == 0) q_len--; } } else { /* n>1: multiple precision division. beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> beta^(m-n-1) <= a/b < beta^(m-n+1). */ /* Determine s. */ size_t s; { mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ /* Determine s = GMP_LIMB_BITS - integer_length (msd). Code copied from gnulib's integer_length.c. */ # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) s = __builtin_clz (msd); # else # if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT if (GMP_LIMB_BITS <= DBL_MANT_BIT) { /* Use 'double' operations. Assumes an IEEE 754 'double' implementation. */ # define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) # define DBL_EXP_BIAS (DBL_EXP_MASK / 2 - 1) # define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) union { double value; unsigned int word[NWORDS]; } m; /* Use a single integer to floating-point conversion. */ m.value = msd; s = GMP_LIMB_BITS - (((m.word[DBL_EXPBIT0_WORD] >> DBL_EXPBIT0_BIT) & DBL_EXP_MASK) - DBL_EXP_BIAS); } else # undef NWORDS # endif { s = 31; if (msd >= 0x10000) { msd = msd >> 16; s -= 16; } if (msd >= 0x100) { msd = msd >> 8; s -= 8; } if (msd >= 0x10) { msd = msd >> 4; s -= 4; } if (msd >= 0x4) { msd = msd >> 2; s -= 2; } if (msd >= 0x2) { msd = msd >> 1; s -= 1; } } # endif } /* 0 <= s < GMP_LIMB_BITS. Copy b, shifting it left by s bits. */ if (s > 0) { tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); if (tmp_roomptr == NULL) { free (roomptr); return NULL; } { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = tmp_roomptr; mp_twolimb_t accu = 0; size_t count; for (count = b_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } /* accu must be zero, since that was how s was determined. */ if (accu != 0) abort (); } b_ptr = tmp_roomptr; } /* Copy a, shifting it left by s bits, yields r. Memory layout: At the beginning: r = roomptr[0..a_len], at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ r_ptr = roomptr; if (s == 0) { memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); r_ptr[a_len] = 0; } else { const mp_limb_t *sourceptr = a_ptr; mp_limb_t *destptr = r_ptr; mp_twolimb_t accu = 0; size_t count; for (count = a_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } *destptr++ = (mp_limb_t) accu; } q_ptr = roomptr + b_len; q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ { size_t j = a_len - b_len; /* m-n */ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; /* Division loop, traversed m-n+1 times. j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ for (;;) { mp_limb_t q_star; mp_limb_t c1; if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ { /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ mp_twolimb_t num = ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) | r_ptr[j + b_len - 1]; q_star = num / b_msd; c1 = num % b_msd; } else { /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) {<= beta !}. If yes, jump directly to the subtraction loop. (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ if (r_ptr[j + b_len] > b_msd || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) /* r[j+n] >= b[n-1]+1 or r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a carry. */ goto subtract; } /* q_star = q*, c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta). */ { mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */ ((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2]; mp_twolimb_t c3 = /* b[n-2] * q* */ (mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star; /* While c2 < c3, increase c2 and decrease c3. Consider c3-c2. While it is > 0, decrease it by b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 this can happen only twice. */ if (c3 > c2) { q_star = q_star - 1; /* q* := q* - 1 */ if (c3 - c2 > b_msdd) q_star = q_star - 1; /* q* := q* - 1 */ } } if (q_star > 0) subtract: { /* Subtract r := r - b * q* * beta^j. */ mp_limb_t cr; { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_twolimb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { /* Here 0 <= carry <= q*. */ carry = carry + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ + (mp_limb_t) ~(*destptr); /* Here 0 <= carry <= beta*q* + beta-1. */ *destptr++ = ~(mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; /* <= q* */ } cr = (mp_limb_t) carry; } /* Subtract cr from r_ptr[j + b_len], then forget about r_ptr[j + b_len]. */ if (cr > r_ptr[j + b_len]) { /* Subtraction gave a carry. */ q_star = q_star - 1; /* q* := q* - 1 */ /* Add b back. */ { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_limb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { mp_limb_t source1 = *sourceptr++; mp_limb_t source2 = *destptr; *destptr++ = source1 + source2 + carry; carry = (carry ? source1 >= (mp_limb_t) ~source2 : source1 > (mp_limb_t) ~source2); } } /* Forget about the carry and about r[j+n]. */ } } /* q* is determined. Store it as q[j]. */ q_ptr[j] = q_star; if (j == 0) break; j--; } } r_len = b_len; /* Normalise q. */ if (q_ptr[q_len - 1] == 0) q_len--; # if 0 /* Not needed here, since we need r only to compare it with b/2, and b is shifted left by s bits. */ /* Shift r right by s bits. */ if (s > 0) { mp_limb_t ptr = r_ptr + r_len; mp_twolimb_t accu = 0; size_t count; for (count = r_len; count > 0; count--) { accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); } } # endif /* Normalise r. */ while (r_len > 0 && r_ptr[r_len - 1] == 0) r_len--; } /* Compare r << 1 with b. */ if (r_len > b_len) goto increment_q; { size_t i; for (i = b_len;;) { mp_limb_t r_i = (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) | (i < r_len ? r_ptr[i] << 1 : 0); mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); if (r_i > b_i) goto increment_q; if (r_i < b_i) goto keep_q; if (i == 0) break; i--; } } if (q_len > 0 && ((q_ptr[0] & 1) != 0)) /* q is odd. */ increment_q: { size_t i; for (i = 0; i < q_len; i++) if (++(q_ptr[i]) != 0) goto keep_q; q_ptr[q_len++] = 1; } keep_q: if (tmp_roomptr != NULL) free (tmp_roomptr); q->limbs = q_ptr; q->nlimbs = q_len; return roomptr; } /* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal representation. Destroys the contents of a. Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * convert_to_decimal (mpn_t a, size_t extra_zeroes) { mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); if (c_ptr != NULL) { char *d_ptr = c_ptr; for (; extra_zeroes > 0; extra_zeroes--) *d_ptr++ = '0'; while (a_len > 0) { /* Divide a by 10^9, in-place. */ mp_limb_t remainder = 0; mp_limb_t *ptr = a_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; *ptr = num / 1000000000; remainder = num % 1000000000; } /* Store the remainder as 9 decimal digits. */ for (count = 9; count > 0; count--) { *d_ptr++ = '0' + (remainder % 10); remainder = remainder / 10; } /* Normalize a. */ if (a_ptr[a_len - 1] == 0) a_len--; } /* Remove leading zeroes. */ while (d_ptr > c_ptr && d_ptr[-1] == '0') d_ptr--; /* But keep at least one zero. */ if (d_ptr == c_ptr) *d_ptr++ = '0'; /* Terminate the string. */ *d_ptr = '\0'; } return c_ptr; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_long_double (long double x, int *ep, mpn_t *mp) { mpn_t m; int exp; long double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * 2^LDBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'long double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess precision. */ if (!(y == 0.0L)) abort (); # endif /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - LDBL_MANT_BIT; return m.limbs; } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_double (double x, int *ep, mpn_t *mp) { mpn_t m; int exp; double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * 2^DBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } if (!(y == 0.0)) abort (); /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - DBL_MANT_BIT; return m.limbs; } # endif /* Assuming x = 2^e * m is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) { int s; size_t extra_zeroes; unsigned int abs_n; unsigned int abs_s; mp_limb_t *pow5_ptr; size_t pow5_len; unsigned int s_limbs; unsigned int s_bits; mpn_t pow5; mpn_t z; void *z_memory; char *digits; if (memory == NULL) return NULL; /* x = 2^e * m, hence y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) = round (2^s * 5^n * m). */ s = e + n; extra_zeroes = 0; /* Factor out a common power of 10 if possible. */ if (s > 0 && n > 0) { extra_zeroes = (s < n ? s : n); s -= extra_zeroes; n -= extra_zeroes; } /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. Before converting to decimal, we need to compute z = round (2^s * 5^n * m). */ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same sign. 2.322 is slightly larger than log(5)/log(2). */ abs_n = (n >= 0 ? n : -n); abs_s = (s >= 0 ? s : -s); pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 + abs_s / GMP_LIMB_BITS + 1) * sizeof (mp_limb_t)); if (pow5_ptr == NULL) { free (memory); return NULL; } /* Initialize with 1. */ pow5_ptr[0] = 1; pow5_len = 1; /* Multiply with 5^|n|. */ if (abs_n > 0) { static mp_limb_t const small_pow5[13 + 1] = { 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125 }; unsigned int n13; for (n13 = 0; n13 <= abs_n; n13 += 13) { mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; size_t j; mp_twolimb_t carry = 0; for (j = 0; j < pow5_len; j++) { mp_limb_t digit2 = pow5_ptr[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; pow5_ptr[j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } if (carry > 0) pow5_ptr[pow5_len++] = (mp_limb_t) carry; } } s_limbs = abs_s / GMP_LIMB_BITS; s_bits = abs_s % GMP_LIMB_BITS; if (n >= 0 ? s >= 0 : s <= 0) { /* Multiply with 2^|s|. */ if (s_bits > 0) { mp_limb_t *ptr = pow5_ptr; mp_twolimb_t accu = 0; size_t count; for (count = pow5_len; count > 0; count--) { accu += (mp_twolimb_t) *ptr << s_bits; *ptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) { *ptr = (mp_limb_t) accu; pow5_len++; } } if (s_limbs > 0) { size_t count; for (count = pow5_len; count > 0;) { count--; pow5_ptr[s_limbs + count] = pow5_ptr[count]; } for (count = s_limbs; count > 0;) { count--; pow5_ptr[count] = 0; } pow5_len += s_limbs; } pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* Multiply m with pow5. No division needed. */ z_memory = multiply (m, pow5, &z); } else { /* Divide m by pow5 and round. */ z_memory = divide (m, pow5, &z); } } else { pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* n >= 0, s < 0. Multiply m with pow5, then divide by 2^|s|. */ mpn_t numerator; mpn_t denominator; void *tmp_memory; tmp_memory = multiply (m, pow5, &numerator); if (tmp_memory == NULL) { free (pow5_ptr); free (memory); return NULL; } /* Construct 2^|s|. */ { mp_limb_t *ptr = pow5_ptr + pow5_len; size_t i; for (i = 0; i < s_limbs; i++) ptr[i] = 0; ptr[s_limbs] = (mp_limb_t) 1 << s_bits; denominator.limbs = ptr; denominator.nlimbs = s_limbs + 1; } z_memory = divide (numerator, denominator, &z); free (tmp_memory); } else { /* n < 0, s > 0. Multiply m with 2^s, then divide by pow5. */ mpn_t numerator; mp_limb_t *num_ptr; num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) * sizeof (mp_limb_t)); if (num_ptr == NULL) { free (pow5_ptr); free (memory); return NULL; } { mp_limb_t *destptr = num_ptr; { size_t i; for (i = 0; i < s_limbs; i++) *destptr++ = 0; } if (s_bits > 0) { const mp_limb_t *sourceptr = m.limbs; mp_twolimb_t accu = 0; size_t count; for (count = m.nlimbs; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s_bits; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) *destptr++ = (mp_limb_t) accu; } else { const mp_limb_t *sourceptr = m.limbs; size_t count; for (count = m.nlimbs; count > 0; count--) *destptr++ = *sourceptr++; } numerator.limbs = num_ptr; numerator.nlimbs = destptr - num_ptr; } z_memory = divide (numerator, pow5, &z); free (num_ptr); } } free (pow5_ptr); free (memory); /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ if (z_memory == NULL) return NULL; digits = convert_to_decimal (z, extra_zeroes); free (z_memory); return digits; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_long_double (long double x, int n) { int e IF_LINT(= 0); mpn_t m; void *memory = decode_long_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_double (double x, int n) { int e IF_LINT(= 0); mpn_t m; void *memory = decode_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10l (long double x) { int exp; long double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); if (y == 0.0L) return INT_MIN; if (y < 0.5L) { while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0L / (1 << 16))) { y *= 1.0L * (1 << 16); exp -= 16; } if (y < (1.0L / (1 << 8))) { y *= 1.0L * (1 << 8); exp -= 8; } if (y < (1.0L / (1 << 4))) { y *= 1.0L * (1 << 4); exp -= 4; } if (y < (1.0L / (1 << 2))) { y *= 1.0L * (1 << 2); exp -= 2; } if (y < (1.0L / (1 << 1))) { y *= 1.0L * (1 << 1); exp -= 1; } } if (!(y >= 0.5L && y < 1.0L)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) Four terms are enough to get an approximation with error < 10^-7. */ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10 (double x) { int exp; double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); if (y == 0.0) return INT_MIN; if (y < 0.5) { while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0 / (1 << 16))) { y *= 1.0 * (1 << 16); exp -= 16; } if (y < (1.0 / (1 << 8))) { y *= 1.0 * (1 << 8); exp -= 8; } if (y < (1.0 / (1 << 4))) { y *= 1.0 * (1 << 4); exp -= 4; } if (y < (1.0 / (1 << 2))) { y *= 1.0 * (1 << 2); exp -= 2; } if (y < (1.0 / (1 << 1))) { y *= 1.0 * (1 << 1); exp -= 1; } } if (!(y >= 0.5 && y < 1.0)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) Four terms are enough to get an approximation with error < 10^-7. */ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif /* Tests whether a string of digits consists of exactly PRECISION zeroes and a single '1' digit. */ static int is_borderline (const char *digits, size_t precision) { for (; precision > 0; precision--, digits++) if (*digits != '0') return 0; if (*digits != '1') return 0; digits++; return *digits == '\0'; } #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 /* Use a different function name, to make it possible that the 'wchar_t' parametrization and the 'char' parametrization get compiled in the same translation unit. */ # if WIDE_CHAR_VERSION # define MAX_ROOM_NEEDED wmax_room_needed # else # define MAX_ROOM_NEEDED max_room_needed # endif /* Returns the number of TCHAR_T units needed as temporary space for the result of sprintf or SNPRINTF of a single conversion directive. */ static size_t MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, arg_type type, int flags, size_t width, int has_precision, size_t precision, int pad_ourselves) { size_t tmp_length; switch (conversion) { case 'd': case 'i': case 'u': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Multiply by 2, as an estimate for FLAG_GROUP. */ tmp_length = xsum (tmp_length, tmp_length); /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'o': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'x': case 'X': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 2, to account for a leading sign or alternate form. */ tmp_length = xsum (tmp_length, 2); break; case 'f': case 'F': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ else tmp_length = (unsigned int) (DBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ tmp_length = xsum (tmp_length, precision); break; case 'e': case 'E': case 'g': case 'G': tmp_length = 12; /* sign, decimal point, exponent etc. */ tmp_length = xsum (tmp_length, precision); break; case 'a': case 'A': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (DBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); break; case 'c': # if HAVE_WINT_T && !WIDE_CHAR_VERSION if (type == TYPE_WIDE_CHAR) tmp_length = MB_CUR_MAX; else # endif tmp_length = 1; break; case 's': # if HAVE_WCHAR_T if (type == TYPE_WIDE_STRING) { # if WIDE_CHAR_VERSION /* ISO C says about %ls in fwprintf: "If the precision is not specified or is greater than the size of the array, the array shall contain a null wide character." So if there is a precision, we must not use wcslen. */ const wchar_t *arg = ap->arg[arg_index].a.a_wide_string; if (has_precision) tmp_length = local_wcsnlen (arg, precision); else tmp_length = local_wcslen (arg); # else /* ISO C says about %ls in fprintf: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." So if there is a precision, we must not use wcslen. */ /* This case has already been handled separately in VASNPRINTF. */ abort (); # endif } else # endif { # if WIDE_CHAR_VERSION /* ISO C says about %s in fwprintf: "If the precision is not specified or is greater than the size of the converted array, the converted array shall contain a null wide character." So if there is a precision, we must not use strlen. */ /* This case has already been handled separately in VASNPRINTF. */ abort (); # else /* ISO C says about %s in fprintf: "If the precision is not specified or greater than the size of the array, the array shall contain a null character." So if there is a precision, we must not use strlen. */ const char *arg = ap->arg[arg_index].a.a_string; if (has_precision) tmp_length = local_strnlen (arg, precision); else tmp_length = strlen (arg); # endif } break; case 'p': tmp_length = (unsigned int) (sizeof (void *) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1 /* turn floor into ceil */ + 2; /* account for leading 0x */ break; default: abort (); } if (!pad_ourselves) { # if ENABLE_UNISTDIO /* Padding considers the number of characters, therefore the number of elements after padding may be > max (tmp_length, width) but is certainly <= tmp_length + width. */ tmp_length = xsum (tmp_length, width); # else /* Padding considers the number of elements, says POSIX. */ if (tmp_length < width) tmp_length = width; # endif } tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ return tmp_length; } #endif DCHAR_T * VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, va_list args) { DIRECTIVES d; arguments a; if (PRINTF_PARSE (format, &d, &a) < 0) /* errno is already set. */ return NULL; #define CLEANUP() \ if (d.dir != d.direct_alloc_dir) \ free (d.dir); \ if (a.arg != a.direct_alloc_arg) \ free (a.arg); if (PRINTF_FETCHARGS (args, &a) < 0) { CLEANUP (); errno = EINVAL; return NULL; } { size_t buf_neededlength; TCHAR_T *buf; TCHAR_T *buf_malloced; const FCHAR_T *cp; size_t i; DIRECTIVE *dp; /* Output string accumulator. */ DCHAR_T *result; size_t allocated; size_t length; /* Allocate a small buffer that will hold a directive passed to sprintf or snprintf. */ buf_neededlength = xsum4 (7, d.max_width_length, d.max_precision_length, 6); #if HAVE_ALLOCA if (buf_neededlength < 4000 / sizeof (TCHAR_T)) { buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); buf_malloced = NULL; } else #endif { size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); if (size_overflow_p (buf_memsize)) goto out_of_memory_1; buf = (TCHAR_T *) malloc (buf_memsize); if (buf == NULL) goto out_of_memory_1; buf_malloced = buf; } if (resultbuf != NULL) { result = resultbuf; allocated = *lengthp; } else { result = NULL; allocated = 0; } length = 0; /* Invariants: result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ /* Ensures that allocated >= needed. Aborts through a jump to out_of_memory if needed is SIZE_MAX or otherwise too big. */ #define ENSURE_ALLOCATION(needed) \ if ((needed) > allocated) \ { \ size_t memory_size; \ DCHAR_T *memory; \ \ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ if ((needed) > allocated) \ allocated = (needed); \ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ if (size_overflow_p (memory_size)) \ goto out_of_memory; \ if (result == resultbuf || result == NULL) \ memory = (DCHAR_T *) malloc (memory_size); \ else \ memory = (DCHAR_T *) realloc (result, memory_size); \ if (memory == NULL) \ goto out_of_memory; \ if (result == resultbuf && length > 0) \ DCHAR_CPY (memory, result, length); \ result = memory; \ } for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) { if (cp != dp->dir_start) { size_t n = dp->dir_start - cp; size_t augmented_length = xsum (length, n); ENSURE_ALLOCATION (augmented_length); /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we need that the format string contains only ASCII characters if FCHAR_T and DCHAR_T are not the same type. */ if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) { DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); length = augmented_length; } else { do result[length++] = (unsigned char) *cp++; while (--n > 0); } } if (i == d.count) break; /* Execute a single directive. */ if (dp->conversion == '%') { size_t augmented_length; if (!(dp->arg_index == ARG_NONE)) abort (); augmented_length = xsum (length, 1); ENSURE_ALLOCATION (augmented_length); result[length] = '%'; length = augmented_length; } else { if (!(dp->arg_index != ARG_NONE)) abort (); if (dp->conversion == 'n') { switch (a.arg[dp->arg_index].type) { case TYPE_COUNT_SCHAR_POINTER: *a.arg[dp->arg_index].a.a_count_schar_pointer = length; break; case TYPE_COUNT_SHORT_POINTER: *a.arg[dp->arg_index].a.a_count_short_pointer = length; break; case TYPE_COUNT_INT_POINTER: *a.arg[dp->arg_index].a.a_count_int_pointer = length; break; case TYPE_COUNT_LONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longint_pointer = length; break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; break; #endif default: abort (); } } #if ENABLE_UNISTDIO /* The unistdio extensions. */ else if (dp->conversion == 'U') { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } switch (type) { case TYPE_U8_STRING: { const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; const uint8_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u8_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT8_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-8 to locale encoding. */ converted = u8_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-8 to UTF-16/UTF-32. */ converted = U8_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U16_STRING: { const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; const uint16_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u16_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT16_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-16 to locale encoding. */ converted = u16_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-16 to UTF-8/UTF-32. */ converted = U16_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U32_STRING: { const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; const uint32_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u32_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT32_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-32 to locale encoding. */ converted = u32_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-32 to UTF-8/UTF-16. */ converted = U32_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; default: abort (); } } #endif #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T else if (dp->conversion == 's' # if WIDE_CHAR_VERSION && a.arg[dp->arg_index].type != TYPE_WIDE_STRING # else && a.arg[dp->arg_index].type == TYPE_WIDE_STRING # endif ) { /* The normal handling of the 's' directive below requires allocating a temporary buffer. The determination of its length (tmp_length), in the case when a precision is specified, below requires a conversion between a char[] string and a wchar_t[] wide string. It could be done, but we have no guarantee that the implementation of sprintf will use the exactly same algorithm. Without this guarantee, it is possible to have buffer overrun bugs. In order to avoid such bugs, we implement the entire processing of the 's' directive ourselves. */ int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } # if WIDE_CHAR_VERSION /* %s in vasnwprintf. See the specification of fwprintf. */ { const char *arg = a.arg[dp->arg_index].a.a_string; const char *arg_end; size_t characters; if (has_precision) { /* Use only as many bytes as needed to produce PRECISION wide characters, from the left. */ # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count; # if HAVE_MBRTOWC count = mbrlen (arg_end, MB_CUR_MAX, &state); # else count = mblen (arg_end, MB_CUR_MAX); # endif if (count == 0) /* Found the terminating NUL. */ break; if (count < 0) { /* Invalid or incomplete multibyte character. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of wide characters. */ # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (;;) { int count; # if HAVE_MBRTOWC count = mbrlen (arg_end, MB_CUR_MAX, &state); # else count = mblen (arg_end, MB_CUR_MAX); # endif if (count == 0) /* Found the terminating NUL. */ break; if (count < 0) { /* Invalid or incomplete multibyte character. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } if (has_precision || has_width) { /* We know the number of wide characters in advance. */ size_t remaining; # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif ENSURE_ALLOCATION (xsum (length, characters)); for (remaining = characters; remaining > 0; remaining--) { wchar_t wc; int count; # if HAVE_MBRTOWC count = mbrtowc (&wc, arg, arg_end - arg, &state); # else count = mbtowc (&wc, arg, arg_end - arg); # endif if (count <= 0) /* mbrtowc not consistent with mbrlen, or mbtowc not consistent with mblen. */ abort (); result[length++] = wc; arg += count; } if (!(arg == arg_end)) abort (); } else { # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif while (arg < arg_end) { wchar_t wc; int count; # if HAVE_MBRTOWC count = mbrtowc (&wc, arg, arg_end - arg, &state); # else count = mbtowc (&wc, arg, arg_end - arg); # endif if (count <= 0) /* mbrtowc not consistent with mbrlen, or mbtowc not consistent with mblen. */ abort (); ENSURE_ALLOCATION (xsum (length, 1)); result[length++] = wc; arg += count; } } if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } # else /* %ls in vasnprintf. See the specification of fprintf. */ { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; const wchar_t *arg_end; size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ verify (sizeof (TCHAR_T) == 1); TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; # endif size_t w; if (has_precision) { /* Use only as many wide characters as needed to produce at most PRECISION bytes, from the left. */ # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; while (precision > 0) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg_end == 0) /* Found the terminating null wide character. */ break; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg_end, &state); # else count = wctomb (cbuf, *arg_end); # endif if (count < 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } if (precision < count) break; arg_end++; characters += count; precision -= count; } } # if DCHAR_IS_TCHAR else if (has_width) # else else # endif { /* Use the entire string, and count the number of bytes. */ # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (;;) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg_end == 0) /* Found the terminating null wide character. */ break; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg_end, &state); # else count = wctomb (cbuf, *arg_end); # endif if (count < 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end++; characters += count; } } # if DCHAR_IS_TCHAR else { /* Use the entire string. */ arg_end = arg + local_wcslen (arg); /* The number of bytes doesn't matter. */ characters = 0; } # endif # if !DCHAR_IS_TCHAR /* Convert the string into a piece of temporary memory. */ tmpsrc = (TCHAR_T *) malloc (characters * sizeof (TCHAR_T)); if (tmpsrc == NULL) goto out_of_memory; { TCHAR_T *tmpptr = tmpsrc; size_t remaining; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif for (remaining = characters; remaining > 0; ) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) /* Inconsistency. */ abort (); memcpy (tmpptr, cbuf, count); tmpptr += count; arg++; remaining -= count; } if (!(arg == arg_end)) abort (); } /* Convert from TCHAR_T[] to DCHAR_T[]. */ tmpdst = DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, characters, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) { int saved_errno = errno; free (tmpsrc); if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } free (tmpsrc); # endif if (has_width) { # if ENABLE_UNISTDIO /* Outside POSIX, it's preferable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, characters); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = characters; # endif } else /* w doesn't matter. */ w = 0; if (has_width && width > w && !(dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_TCHAR if (has_precision || has_width) { /* We know the number of bytes in advance. */ size_t remaining; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif ENSURE_ALLOCATION (xsum (length, characters)); for (remaining = characters; remaining > 0; ) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) /* Inconsistency. */ abort (); memcpy (result + length, cbuf, count); length += count; arg++; remaining -= count; } if (!(arg == arg_end)) abort (); } else { # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif while (arg < arg_end) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } ENSURE_ALLOCATION (xsum (length, count)); memcpy (result + length, cbuf, count); length += count; arg++; } } # else ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); length += tmpdst_len; # endif if (has_width && width > w && (dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } # endif } #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'a' || dp->conversion == 'A') # if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # endif ) # endif ) { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* Allocate a temporary buffer of sufficient size. */ if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) ((LDBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) ((DBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; if (type == TYPE_LONGDOUBLE) { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; long double mantissa; if (arg > 0.0L) mantissa = printf_frexpl (arg, &exponent); else { exponent = 0; mantissa = 0.0L; } if (has_precision && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ long double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5L : tail > 0.5L) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0L; } if (tail != 0.0L) for (q = precision; q > 0; q--) tail *= 0.0625L; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0L || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0L) { mantissa *= 16.0L; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } END_LONG_DOUBLE_ROUNDING (); } # else abort (); # endif } else { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE double arg = a.arg[dp->arg_index].a.a_double; if (isnand (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; double mantissa; if (arg > 0.0) mantissa = printf_frexp (arg, &exponent); else { exponent = 0; mantissa = 0.0; } if (has_precision && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5 : tail > 0.5) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0; } if (tail != 0.0) for (q = precision; q > 0; q--) tail *= 0.0625; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0 || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0) { mantissa *= 16.0; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } } # else abort (); # endif } /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ if (has_width && p - tmp < width) { size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } { size_t count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } } #endif #if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'f' || dp->conversion == 'F' || dp->conversion == 'e' || dp->conversion == 'E' || dp->conversion == 'g' || dp->conversion == 'G' || dp->conversion == 'a' || dp->conversion == 'A') && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # elif NEED_PRINTF_INFINITE_DOUBLE || (a.arg[dp->arg_index].type == TYPE_DOUBLE /* The systems (mingw) which produce wrong output for Inf, -Inf, and NaN also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # elif NEED_PRINTF_INFINITE_LONG_DOUBLE || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE /* Some systems produce wrong output for Inf, -Inf, and NaN. Some systems in this category (IRIX 5.3) also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble)) # endif )) { # if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) arg_type type = a.arg[dp->arg_index].type; # endif int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* POSIX specifies the default precision to be 6 for %f, %F, %e, %E, but not for %g, %G. Implementations appear to use the same default precision also for %g, %G. But for %a, %A, the default precision is 0. */ if (!has_precision) if (!(dp->conversion == 'a' || dp->conversion == 'A')) precision = 6; /* Allocate a temporary buffer of sufficient size. */ # if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); # elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); # elif NEED_PRINTF_LONG_DOUBLE tmp_length = LDBL_DIG + 1; # elif NEED_PRINTF_DOUBLE tmp_length = DBL_DIG + 1; # else tmp_length = 0; # endif if (tmp_length < precision) tmp_length = precision; # if NEED_PRINTF_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (!(isnanl (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10l (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif # if NEED_PRINTF_DOUBLE # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE if (type == TYPE_DOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { double arg = a.arg[dp->arg_index].a.a_double; if (!(isnand (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10 (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_LONG_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_long_double (arg, precision); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0L) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0L. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)precision - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ if (is_borderline (digits, precision)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_long_double (arg, (int)precision - exponent + 1); if (digits2 == NULL) { free (digits); END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } if (strlen (digits2) == precision + 1) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0L) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0L. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ if (is_borderline (digits, precision - 1)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent + 1); if (digits2 == NULL) { free (digits); END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } if (strlen (digits2) == precision) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0L)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else if (dp->conversion == 'a' || dp->conversion == 'A') { *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion - 'A' + 'P'; *p++ = '+'; *p++ = '0'; } else abort (); # endif } END_LONG_DOUBLE_ROUNDING (); } } # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE else # endif # endif # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE { double arg = a.arg[dp->arg_index].a.a_double; if (isnand (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_double (arg, precision); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)precision - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ if (is_borderline (digits, precision)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_double (arg, (int)precision - exponent + 1); if (digits2 == NULL) { free (digits); goto out_of_memory; } if (strlen (digits2) == precision + 1) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ if (is_borderline (digits, precision - 1)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent + 1); if (digits2 == NULL) { free (digits); goto out_of_memory; } if (strlen (digits2) == precision) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *p++ = '0'; # endif *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else abort (); # endif } } } # endif /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ if (has_width && p - tmp < width) { size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } { size_t count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } } #endif else { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int has_width; size_t width; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION int has_precision; size_t precision; #endif #if NEED_PRINTF_UNBOUNDED_PRECISION int prec_ourselves; #else # define prec_ourselves 0 #endif #if NEED_PRINTF_FLAG_LEFTADJUST # define pad_ourselves 1 #elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int pad_ourselves; #else # define pad_ourselves 0 #endif TCHAR_T *fbp; unsigned int prefix_count; int prefixes[2] IF_LINT (= { 0 }); int orig_errno; #if !USE_SNPRINTF size_t tmp_length; TCHAR_T tmpbuf[700]; TCHAR_T *tmp; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } #endif /* Decide whether to handle the precision ourselves. */ #if NEED_PRINTF_UNBOUNDED_PRECISION switch (dp->conversion) { case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': prec_ourselves = has_precision && (precision > 0); break; default: prec_ourselves = 0; break; } #endif /* Decide whether to perform the padding ourselves. */ #if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION) switch (dp->conversion) { # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need to perform the padding after this conversion. Functions with unistdio extensions perform the padding based on character count rather than element count. */ case 'c': case 's': # endif # if NEED_PRINTF_FLAG_ZERO case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': # endif pad_ourselves = 1; break; default: pad_ourselves = prec_ourselves; break; } #endif #if !USE_SNPRINTF /* Allocate a temporary buffer of sufficient size for calling sprintf. */ tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, width, has_precision, precision, pad_ourselves); if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (TCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } #endif /* Construct the format string for calling snprintf or sprintf. */ fbp = buf; *fbp++ = '%'; #if NEED_PRINTF_FLAG_GROUPING /* The underlying implementation doesn't support the ' flag. Produce no grouping characters in this case; this is acceptable because the grouping is locale dependent. */ #else if (flags & FLAG_GROUP) *fbp++ = '\''; #endif if (flags & FLAG_LEFT) *fbp++ = '-'; if (flags & FLAG_SHOWSIGN) *fbp++ = '+'; if (flags & FLAG_SPACE) *fbp++ = ' '; if (flags & FLAG_ALT) *fbp++ = '#'; #if __GLIBC__ >= 2 && !defined __UCLIBC__ if (flags & FLAG_LOCALIZED) *fbp++ = 'I'; #endif if (!pad_ourselves) { if (flags & FLAG_ZERO) *fbp++ = '0'; if (dp->width_start != dp->width_end) { size_t n = dp->width_end - dp->width_start; /* The width specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->width_start; do *fbp++ = (unsigned char) *mp++; while (--n > 0); } } } if (!prec_ourselves) { if (dp->precision_start != dp->precision_end) { size_t n = dp->precision_end - dp->precision_start; /* The precision specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->precision_start; do *fbp++ = (unsigned char) *mp++; while (--n > 0); } } } switch (type) { #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *fbp++ = 'I'; *fbp++ = '6'; *fbp++ = '4'; break; # else *fbp++ = 'l'; /*FALLTHROUGH*/ # endif #endif case TYPE_LONGINT: case TYPE_ULONGINT: #if HAVE_WINT_T case TYPE_WIDE_CHAR: #endif #if HAVE_WCHAR_T case TYPE_WIDE_STRING: #endif *fbp++ = 'l'; break; case TYPE_LONGDOUBLE: *fbp++ = 'L'; break; default: break; } #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') *fbp = 'f'; else #endif *fbp = dp->conversion; #if USE_SNPRINTF # if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) fbp[1] = '%'; fbp[2] = 'n'; fbp[3] = '\0'; # else /* On glibc2 systems from glibc >= 2.3 - probably also older ones - we know that snprintf's return value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and gl_SNPRINTF_TRUNCATION_C99 pass. Therefore we can avoid using %n in this situation. On glibc2 systems from 2004-10-18 or newer, the use of %n in format strings in writable memory may crash the program (if compiled with _FORTIFY_SOURCE=2), so we should avoid it in this situation. */ /* On native Windows systems (such as mingw), we can avoid using %n because: - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, snprintf does not write more than the specified number of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes '4', '5', '6' into buf, not '4', '5', '\0'.) - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf allows us to recognize the case of an insufficient buffer size: it returns -1 in this case. On native Windows systems (such as mingw) where the OS is Windows Vista, the use of %n in format strings by default crashes the program. See <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx> So we should avoid %n in this situation. */ fbp[1] = '\0'; # endif #else fbp[1] = '\0'; #endif /* Construct the arguments for calling snprintf or sprintf. */ prefix_count = 0; if (!pad_ourselves && dp->width_arg_index != ARG_NONE) { if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int; } if (!prec_ourselves && dp->precision_arg_index != ARG_NONE) { if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int; } #if USE_SNPRINTF /* The SNPRINTF result is appended after result[0..length]. The latter is an array of DCHAR_T; SNPRINTF appends an array of TCHAR_T to it. This is possible because sizeof (TCHAR_T) divides sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). */ # define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) /* Ensure that maxlen below will be >= 2. Needed on BeOS, where an snprintf() with maxlen==1 acts like sprintf(). */ ENSURE_ALLOCATION (xsum (length, (2 + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR)); /* Prepare checking whether snprintf returns the count via %n. */ *(TCHAR_T *) (result + length) = '\0'; #endif orig_errno = errno; for (;;) { int count = -1; #if USE_SNPRINTF int retcount = 0; size_t maxlen = allocated - length; /* SNPRINTF can fail if its second argument is > INT_MAX. */ if (maxlen > INT_MAX / TCHARS_PER_DCHAR) maxlen = INT_MAX / TCHARS_PER_DCHAR; maxlen = maxlen * TCHARS_PER_DCHAR; # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ arg, &count); \ break; \ case 1: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], arg, &count); \ break; \ case 2: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], prefixes[1], arg, \ &count); \ break; \ default: \ abort (); \ } #else # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ count = sprintf (tmp, buf, arg); \ break; \ case 1: \ count = sprintf (tmp, buf, prefixes[0], arg); \ break; \ case 2: \ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\ arg); \ break; \ default: \ abort (); \ } #endif errno = 0; switch (type) { case TYPE_SCHAR: { int arg = a.arg[dp->arg_index].a.a_schar; SNPRINTF_BUF (arg); } break; case TYPE_UCHAR: { unsigned int arg = a.arg[dp->arg_index].a.a_uchar; SNPRINTF_BUF (arg); } break; case TYPE_SHORT: { int arg = a.arg[dp->arg_index].a.a_short; SNPRINTF_BUF (arg); } break; case TYPE_USHORT: { unsigned int arg = a.arg[dp->arg_index].a.a_ushort; SNPRINTF_BUF (arg); } break; case TYPE_INT: { int arg = a.arg[dp->arg_index].a.a_int; SNPRINTF_BUF (arg); } break; case TYPE_UINT: { unsigned int arg = a.arg[dp->arg_index].a.a_uint; SNPRINTF_BUF (arg); } break; case TYPE_LONGINT: { long int arg = a.arg[dp->arg_index].a.a_longint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGINT: { unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint; SNPRINTF_BUF (arg); } break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: { long long int arg = a.arg[dp->arg_index].a.a_longlongint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGLONGINT: { unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint; SNPRINTF_BUF (arg); } break; #endif case TYPE_DOUBLE: { double arg = a.arg[dp->arg_index].a.a_double; SNPRINTF_BUF (arg); } break; case TYPE_LONGDOUBLE: { long double arg = a.arg[dp->arg_index].a.a_longdouble; SNPRINTF_BUF (arg); } break; case TYPE_CHAR: { int arg = a.arg[dp->arg_index].a.a_char; SNPRINTF_BUF (arg); } break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: { wint_t arg = a.arg[dp->arg_index].a.a_wide_char; SNPRINTF_BUF (arg); } break; #endif case TYPE_STRING: { const char *arg = a.arg[dp->arg_index].a.a_string; SNPRINTF_BUF (arg); } break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; SNPRINTF_BUF (arg); } break; #endif case TYPE_POINTER: { void *arg = a.arg[dp->arg_index].a.a_pointer; SNPRINTF_BUF (arg); } break; default: abort (); } #if USE_SNPRINTF /* Portability: Not all implementations of snprintf() are ISO C 99 compliant. Determine the number of bytes that snprintf() has produced or would have produced. */ if (count >= 0) { /* Verify that snprintf() has NUL-terminated its result. */ if (count < maxlen && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ if (retcount > count) count = retcount; } else { /* snprintf() doesn't understand the '%n' directive. */ if (fbp[1] != '\0') { /* Don't use the '%n' directive; instead, look at the snprintf() return value. */ fbp[1] = '\0'; continue; } else { /* Look at the snprintf() return value. */ if (retcount < 0) { # if !HAVE_SNPRINTF_RETVAL_C99 /* HP-UX 10.20 snprintf() is doubly deficient: It doesn't understand the '%n' directive, *and* it returns -1 (rather than the length that would have been required) when the buffer is too small. But a failure at this point can also come from other reasons than a too small buffer, such as an invalid wide string argument to the %ls directive, or possibly an invalid floating-point argument. */ size_t tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, width, has_precision, precision, pad_ourselves); if (maxlen < tmp_length) { /* Make more room. But try to do through this reallocation only once. */ size_t bigger_need = xsum (length, xsum (tmp_length, TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); /* And always grow proportionally. (There may be several arguments, each needing a little more room than the previous one.) */ size_t bigger_need2 = xsum (xtimes (allocated, 2), 12); if (bigger_need < bigger_need2) bigger_need = bigger_need2; ENSURE_ALLOCATION (bigger_need); continue; } # endif } else count = retcount; } } #endif /* Attempt to handle failure. */ if (count < 0) { /* SNPRINTF or sprintf failed. Save and use the errno that it has set, if any. */ int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = (saved_errno != 0 ? saved_errno : (dp->conversion == 'c' || dp->conversion == 's' ? EILSEQ : EINVAL)); return NULL; } #if USE_SNPRINTF /* Handle overflow of the allocated buffer. If such an overflow occurs, a C99 compliant snprintf() returns a count >= maxlen. However, a non-compliant snprintf() function returns only count = maxlen - 1. To cover both cases, test whether count >= maxlen - 1. */ if ((unsigned int) count + 1 >= maxlen) { /* If maxlen already has attained its allowed maximum, allocating more memory will not increase maxlen. Instead of looping, bail out. */ if (maxlen == INT_MAX / TCHARS_PER_DCHAR) goto overflow; else { /* Need at least (count + 1) * sizeof (TCHAR_T) bytes. (The +1 is for the trailing NUL.) But ask for (count + 2) * sizeof (TCHAR_T) bytes, so that in the next round, we likely get maxlen > (unsigned int) count + 1 and so we don't get here again. And allocate proportionally, to avoid looping eternally if snprintf() reports a too small count. */ size_t n = xmax (xsum (length, ((unsigned int) count + 2 + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); continue; } } #endif #if NEED_PRINTF_UNBOUNDED_PRECISION if (prec_ourselves) { /* Handle the precision. */ TCHAR_T *prec_ptr = # if USE_SNPRINTF (TCHAR_T *) (result + length); # else tmp; # endif size_t prefix_count; size_t move; prefix_count = 0; /* Put the additional zeroes after the sign. */ if (count >= 1 && (*prec_ptr == '-' || *prec_ptr == '+' || *prec_ptr == ' ')) prefix_count = 1; /* Put the additional zeroes after the 0x prefix if (flags & FLAG_ALT) || (dp->conversion == 'p'). */ else if (count >= 2 && prec_ptr[0] == '0' && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) prefix_count = 2; move = count - prefix_count; if (precision > move) { /* Insert zeroes. */ size_t insert = precision - move; TCHAR_T *prec_end; # if USE_SNPRINTF size_t n = xsum (length, (count + insert + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; ENSURE_ALLOCATION (n); length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; prec_ptr = (TCHAR_T *) (result + length); # endif prec_end = prec_ptr + count; prec_ptr += prefix_count; while (prec_end > prec_ptr) { prec_end--; prec_end[insert] = prec_end[0]; } prec_end += insert; do *--prec_end = '0'; while (prec_end > prec_ptr); count += insert; } } #endif #if !USE_SNPRINTF if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); #endif #if !DCHAR_IS_TCHAR /* Convert from TCHAR_T[] to DCHAR_T[]. */ if (dp->conversion == 'c' || dp->conversion == 's') { /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING TYPE_WIDE_STRING. The result string is not certainly ASCII. */ const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ verify (sizeof (TCHAR_T) == 1); # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else tmpsrc = tmp; # endif tmpdst = DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, count, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); count = tmpdst_len; } else { /* The result string is ASCII. Simple 1:1 conversion. */ # if USE_SNPRINTF /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a no-op conversion, in-place on the array starting at (result + length). */ if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) # endif { const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t n; # if USE_SNPRINTF if (result == resultbuf) { tmpsrc = (TCHAR_T *) (result + length); /* ENSURE_ALLOCATION will not move tmpsrc (because it's part of resultbuf). */ ENSURE_ALLOCATION (xsum (length, count)); } else { /* ENSURE_ALLOCATION will move the array (because it uses realloc(). */ ENSURE_ALLOCATION (xsum (length, count)); tmpsrc = (TCHAR_T *) (result + length); } # else tmpsrc = tmp; ENSURE_ALLOCATION (xsum (length, count)); # endif tmpdst = result + length; /* Copy backwards, because of overlapping. */ tmpsrc += count; tmpdst += count; for (n = count; n > 0; n--) *--tmpdst = (unsigned char) *--tmpsrc; } } #endif #if DCHAR_IS_TCHAR && !USE_SNPRINTF /* Make room for the result. */ if (count > allocated - length) { /* Need at least count elements. But allocate proportionally. */ size_t n = xmax (xsum (length, count), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); } #endif /* Here count <= allocated - length. */ /* Perform padding. */ #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION if (pad_ourselves && has_width) { size_t w; # if ENABLE_UNISTDIO /* Outside POSIX, it's preferable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, count); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = count; # endif if (w < width) { size_t pad = width - w; /* Make room for the result. */ if (xsum (count, pad) > allocated - length) { /* Need at least count + pad elements. But allocate proportionally. */ size_t n = xmax (xsum3 (length, count, pad), xtimes (allocated, 2)); # if USE_SNPRINTF length += count; ENSURE_ALLOCATION (n); length -= count; # else ENSURE_ALLOCATION (n); # endif } /* Here count + pad <= allocated - length. */ { # if !DCHAR_IS_TCHAR || USE_SNPRINTF DCHAR_T * const rp = result + length; # else DCHAR_T * const rp = tmp; # endif DCHAR_T *p = rp + count; DCHAR_T *end = p + pad; DCHAR_T *pad_ptr; # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO if (dp->conversion == 'c' || dp->conversion == 's') /* No zero-padding for string directives. */ pad_ptr = NULL; else # endif { pad_ptr = (*rp == '-' ? rp + 1 : rp); /* No zero-padding of "inf" and "nan". */ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) pad_ptr = NULL; } /* The generated string now extends from rp to p, with the zero padding insertion point being at pad_ptr. */ count = count + pad; /* = end - rp */ if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > rp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } } } } #endif /* Here still count <= allocated - length. */ #if !DCHAR_IS_TCHAR || USE_SNPRINTF /* The snprintf() result did fit. */ #else /* Append the sprintf() result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); #endif #if !USE_SNPRINTF if (tmp != tmpbuf) free (tmp); #endif #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') { /* Convert the %f result to upper case for %F. */ DCHAR_T *rp = result + length; size_t rc; for (rc = count; rc > 0; rc--, rp++) if (*rp >= 'a' && *rp <= 'z') *rp = *rp - 'a' + 'A'; } #endif length += count; break; } errno = orig_errno; #undef pad_ourselves #undef prec_ourselves } } } /* Add the final NUL. */ ENSURE_ALLOCATION (xsum (length, 1)); result[length] = '\0'; if (result != resultbuf && length + 1 < allocated) { /* Shrink the allocated memory if possible. */ DCHAR_T *memory; memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); if (memory != NULL) result = memory; } if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); *lengthp = length; /* Note that we can produce a big string of a length > INT_MAX. POSIX says that snprintf() fails with errno = EOVERFLOW in this case, but that's only because snprintf() returns an 'int'. This function does not have this limitation. */ return result; #if USE_SNPRINTF overflow: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EOVERFLOW; return NULL; #endif out_of_memory: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); out_of_memory_1: CLEANUP (); errno = ENOMEM; return NULL; } } #undef MAX_ROOM_NEEDED #undef TCHARS_PER_DCHAR #undef SNPRINTF #undef USE_SNPRINTF #undef DCHAR_SET #undef DCHAR_CPY #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef DCHAR_IS_TCHAR #undef TCHAR_T #undef DCHAR_T #undef FCHAR_T #undef VASNPRINTF ����������������������������������������������������������������������������������������������wdiff-1.2.1/lib/unistd.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000145160�12116370307�012342� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <unistd.h>. Copyright (C) 2003-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include <winsock2.h> # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include <stddef.h> /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */ /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include <stdio.h> #endif /* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ && ! defined __GLIBC__ # include <fcntl.h> #endif /* mingw fails to declare _exit in <unistd.h>. */ /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>. */ /* But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # define __need_system_stdlib_h # include <stdlib.h> # undef __need_system_stdlib_h #endif /* Native Windows platforms declare chdir, getcwd, rmdir in <io.h> and/or <direct.h>, not in <unistd.h>. They also declare access(), chmod(), close(), dup(), dup2(), isatty(), lseek(), read(), unlink(), write() in <io.h>. */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) # include <io.h> /* mingw32, mingw64 */ # include <direct.h> /* mingw64, MSVC 9 */ #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include <io.h> #endif /* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>. NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include <netdb.h> #endif /* MSVC defines off_t in <sys/types.h>. May also define off_t to a 64-bit type on native Windows. */ #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ /* Get off_t. */ # include <sys/types.h> #endif #if (@GNULIB_READ@ || @GNULIB_WRITE@ \ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include <sys/types.h> #endif /* Get getopt(), optarg, optind, opterr, optopt. But avoid namespace pollution on glibc systems. */ #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT # define __need_getopt # include <getopt.h> #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Hide some function declarations from <winsock2.h>. */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including <sys/socket.h>"); _GL_WARN_ON_USE (connect, "connect() used without including <sys/socket.h>"); _GL_WARN_ON_USE (accept, "accept() used without including <sys/socket.h>"); _GL_WARN_ON_USE (bind, "bind() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getpeername, "getpeername() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getsockname, "getsockname() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including <sys/socket.h>"); _GL_WARN_ON_USE (listen, "listen() used without including <sys/socket.h>"); _GL_WARN_ON_USE (recv, "recv() used without including <sys/socket.h>"); _GL_WARN_ON_USE (send, "send() used without including <sys/socket.h>"); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including <sys/socket.h>"); _GL_WARN_ON_USE (sendto, "sendto() used without including <sys/socket.h>"); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including <sys/socket.h>"); _GL_WARN_ON_USE (shutdown, "shutdown() used without including <sys/socket.h>"); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including <sys/select.h>"); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if defined GNULIB_POSIXCHECK /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "the access function is a security risk - " "use the gnulib module faccessat instead"); #endif #if @GNULIB_CHDIR@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - " "use gnulib module chdir for portability"); # endif #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html. */ # if @REPLACE_CHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chown # define chown rpl_chown # endif _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)); # else # if !@HAVE_CHOWN@ _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)); # endif _GL_CXXALIASWARN (chown); #elif defined GNULIB_POSIXCHECK # undef chown # if HAVE_RAW_DECL_CHOWN _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and " "doesn't treat a uid or gid of -1 on some systems - " "use gnulib module chown for portability"); # endif #endif #if @GNULIB_CLOSE@ # if @REPLACE_CLOSE@ /* Automatically included by modules that need a replacement for close. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close rpl_close # endif _GL_FUNCDECL_RPL (close, int, (int fd)); _GL_CXXALIAS_RPL (close, int, (int fd)); # else _GL_CXXALIAS_SYS (close, int, (int fd)); # endif _GL_CXXALIASWARN (close); #elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ # undef close # define close close_used_without_requesting_gnulib_module_close #elif defined GNULIB_POSIXCHECK # undef close /* Assume close is always declared. */ _GL_WARN_ON_USE (close, "close does not portably work on sockets - " "use gnulib module close for portability"); #endif #if @GNULIB_DUP@ # if @REPLACE_DUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup rpl_dup # endif _GL_FUNCDECL_RPL (dup, int, (int oldfd)); _GL_CXXALIAS_RPL (dup, int, (int oldfd)); # else _GL_CXXALIAS_SYS (dup, int, (int oldfd)); # endif _GL_CXXALIASWARN (dup); #elif defined GNULIB_POSIXCHECK # undef dup # if HAVE_RAW_DECL_DUP _GL_WARN_ON_USE (dup, "dup is unportable - " "use gnulib module dup for portability"); # endif #endif #if @GNULIB_DUP2@ /* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if NEWFD = OLDFD, otherwise close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>. */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # else # if !@HAVE_DUP2@ _GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at <http://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include <crt_externs.h> # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is unportable - " "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_FACCESSAT@ # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>. */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>. */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>. */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>. */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>. Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIAS_SYS (getdtablesize, int, (void)); _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See <http://www.opengroup.org/susv3xsh/getlogin.html>. Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See <http://www.opengroup.org/susv3xsh/getlogin.html>. Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include <OS.h> # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include <sys/param.h> # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>. */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>. */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>. */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at <http://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>. */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>. */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>. */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>. */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>. */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification <http://www.opengroup.org/susv3xsh/usleep.html>. */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification <http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>. */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/malloca.valgrind��������������������������������������������������������������������0000644�0000000�0000000�00000000257�11744500575�013423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Suppress a valgrind message about use of uninitialized memory in freea(). # This use is OK because it provides only a speedup. { freea Memcheck:Cond fun:freea } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/exitfail.c��������������������������������������������������������������������������0000644�0000000�0000000�00000001533�12116370307�012222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Failure exit status Copyright (C) 2002-2003, 2005-2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include "exitfail.h" #include <stdlib.h> int volatile exit_failure = EXIT_FAILURE; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/regex.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000006153�12116370307�011532� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extended regular expression matching and search library. Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> # if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" # endif # if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wold-style-definition" # pragma GCC diagnostic ignored "-Wtype-limits" # endif #endif /* Make sure no one compiles this code with a C++ compiler. */ #if defined __cplusplus && defined _LIBC # error "This is C code, use a C compiler" #endif #ifdef _LIBC /* We have to keep the namespace clean. */ # define regfree(preg) __regfree (preg) # define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) # define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) # define regerror(errcode, preg, errbuf, errbuf_size) \ __regerror(errcode, preg, errbuf, errbuf_size) # define re_set_registers(bu, re, nu, st, en) \ __re_set_registers (bu, re, nu, st, en) # define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) # define re_match(bufp, string, size, pos, regs) \ __re_match (bufp, string, size, pos, regs) # define re_search(bufp, string, size, startpos, range, regs) \ __re_search (bufp, string, size, startpos, range, regs) # define re_compile_pattern(pattern, length, bufp) \ __re_compile_pattern (pattern, length, bufp) # define re_set_syntax(syntax) __re_set_syntax (syntax) # define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) # include "../locale/localeinfo.h" #endif /* On some systems, limits.h sets RE_DUP_MAX to a lower value than GNU regex allows. Include it before <regex.h>, which correctly #undefs RE_DUP_MAX and sets it to the right value. */ #include <limits.h> #include <regex.h> #include "regex_internal.h" #include "regex_internal.c" #include "regcomp.c" #include "regexec.c" /* Binary backward compatibility. */ #if _LIBC # include <shlib-compat.h> # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") int re_max_failures = 2000; # endif #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/ref-add.sin�������������������������������������������������������������������������0000644�0000000�0000000�00000001752�12116370307�012271� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Add this package to a list of references stored in a text file. # # Copyright (C) 2000, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. # # Written by Bruno Haible <haible@clisp.cons.org>. # /^# Packages using this file: / { s/# Packages using this file:// ta :a s/ @PACKAGE@ / @PACKAGE@ / tb s/ $/ @PACKAGE@ / :b s/^/# Packages using this file:/ } ����������������������wdiff-1.2.1/lib/uniwidth/���������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12116513224�012157� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/uniwidth/width.c��������������������������������������������������������������������0000644�0000000�0000000�00000050540�12116370307�013371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine display width of Unicode character. Copyright (C) 2001-2002, 2006-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2002. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "uniwidth.h" #include "cjk.h" /* * Non-spacing attribute table. * Consists of: * - Non-spacing characters; generated from PropList.txt or * "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt" * - Format control characters; generated from * "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt" * - Zero width characters; generated from * "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt" */ static const unsigned char nonspacing_table_data[27*64] = { /* 0x0000-0x01ff */ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */ /* 0x0200-0x03ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */ /* 0x0400-0x05ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */ 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */ 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */ 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */ /* 0x0600-0x07ff */ 0x0f, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */ 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */ 0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */ 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */ 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */ 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */ /* 0x0800-0x09ff */ 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */ /* 0x0a00-0x0bff */ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */ 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */ 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */ 0x1e, 0x20, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */ 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */ /* 0x0c00-0x0dff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */ 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */ 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */ 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */ /* 0x0e00-0x0fff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */ 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */ 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */ 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */ /* 0x1000-0x11ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */ 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */ 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */ /* 0x1200-0x13ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */ 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */ /* 0x1600-0x17ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */ 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */ 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */ 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */ /* 0x1800-0x19ff */ 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */ /* 0x1a00-0x1bff */ 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */ 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a80-0x1abf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */ 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */ 0x03, 0x00, 0x00, 0x00, 0x3c, 0x03, 0x00, 0x00, /* 0x1b80-0x1bbf */ 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */ /* 0x1c00-0x1dff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */ 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x00, 0x00, /* 0x1cc0-0x1cff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xf0, /* 0x1dc0-0x1dff */ /* 0x2000-0x21ff */ 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */ /* 0x2c00-0x2dff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */ /* 0x3000-0x31ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, /* 0x3000-0x303f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */ 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */ /* 0xa600-0xa7ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x30, /* 0xa640-0xa67f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */ /* 0xa800-0xa9ff */ 0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */ /* 0xaa00-0xabff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */ 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaa40-0xaa7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaac0-0xaaff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */ 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */ /* 0xfa00-0xfbff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */ /* 0xfe00-0xffff */ 0xff, 0xff, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, /* 0xfe00-0xfe3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */ /* 0x10000-0x101ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */ /* 0x10a00-0x10bff */ 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */ /* 0x11000-0x111ff */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */ 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11040-0x1107f */ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11100-0x1113f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11140-0x1117f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11180-0x111bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ /* 0x1d000-0x1d1ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */ 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */ 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */ /* 0x1d200-0x1d3ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */ 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1d3c0-0x1d3ff */ }; static const signed char nonspacing_table_ind[240] = { 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */ 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */ 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */ 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */ -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */ 22, -1, -1, -1, -1, 23, -1, -1, /* 0x10000-0x10fff */ 24, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x16000-0x16fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1b000-0x1bfff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */ 25, 26, -1, -1, -1, -1, -1, -1 /* 0x1d000-0x1dfff */ }; /* Determine number of column positions required for UC. */ int uc_width (ucs4_t uc, const char *encoding) { /* Test for non-spacing or control character. */ if ((uc >> 9) < 240) { int ind = nonspacing_table_ind[uc >> 9]; if (ind >= 0) if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1) { if (uc > 0 && uc < 0xa0) return -1; else return 0; } } else if ((uc >> 9) == (0xe0000 >> 9)) { if (uc >= 0xe0100) { if (uc <= 0xe01ef) return 0; } else { if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001) return 0; } } /* Test for double-width character. * Generated from "grep '^[^;]\{4,5\};[WF]' EastAsianWidth.txt" * and "grep '^[^;]\{4,5\};[^WF]' EastAsianWidth.txt" */ if (uc >= 0x1100 && ((uc < 0x1160) /* Hangul Jamo */ || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */ || (uc >= 0x2e80 && uc < 0xa4d0 /* CJK ... Yi */ && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00)) || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */ || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */ || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */ || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */ || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */ || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */ || (uc >= 0x20000 && uc <= 0x2ffff) /* Supplementary Ideographic Plane */ || (uc >= 0x30000 && uc <= 0x3ffff) /* Tertiary Ideographic Plane */ ) ) return 2; /* In ancient CJK encodings, Cyrillic and most other characters are double-width as well. */ if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9 && is_cjk_encoding (encoding)) return 2; return 1; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/uniwidth/cjk.h����������������������������������������������������������������������0000644�0000000�0000000�00000003145�12116370307�013025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Test for CJK encoding. Copyright (C) 2001-2002, 2005-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2002. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include "streq.h" static int is_cjk_encoding (const char *encoding) { if (0 /* Legacy Japanese encodings */ || STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0) /* Legacy Chinese encodings */ || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) || STREQ_OPT (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0) || STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0) || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0) /* Legacy Korean encodings */ || STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) || STREQ_OPT (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0) || STREQ_OPT (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0)) return 1; return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/str-two-way.h�����������������������������������������������������������������������0000644�0000000�0000000�00000042165�12116370307�012645� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Byte-wise substring search, using the Two-Way algorithm. Copyright (C) 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Eric Blake <ebb9@byu.net>, 2008. 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Before including this file, you need to include <config.h> and <string.h>, and define: RESULT_TYPE A macro that expands to the return type. AVAILABLE(h, h_l, j, n_l) A macro that returns nonzero if there are at least N_L bytes left starting at H[J]. H is 'unsigned char *', H_L, J, and N_L are 'size_t'; H_L is an lvalue. For NUL-terminated searches, H_L can be modified each iteration to avoid having to compute the end of H up front. For case-insensitivity, you may optionally define: CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L characters of P1 and P2 are equal. CANON_ELEMENT(c) A macro that canonicalizes an element right after it has been fetched from one of the two strings. The argument is an 'unsigned char'; the result must be an 'unsigned char' as well. This file undefines the macros documented above, and defines LONG_NEEDLE_THRESHOLD. */ #include <limits.h> #include <stdint.h> /* We use the Two-Way string matching algorithm (also known as Chrochemore-Perrin), which guarantees linear complexity with constant space. Additionally, for long needles, we also use a bad character shift table similar to the Boyer-Moore algorithm to achieve improved (potentially sub-linear) performance. See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf */ /* Point at which computing a bad-byte shift table is likely to be worthwhile. Small needles should not compute a table, since it adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a speedup no greater than a factor of NEEDLE_LEN. The larger the needle, the better the potential performance gain. On the other hand, on non-POSIX systems with CHAR_BIT larger than eight, the memory required for the table is prohibitive. */ #if CHAR_BIT < 10 # define LONG_NEEDLE_THRESHOLD 32U #else # define LONG_NEEDLE_THRESHOLD SIZE_MAX #endif #ifndef MAX # define MAX(a, b) ((a < b) ? (b) : (a)) #endif #ifndef CANON_ELEMENT # define CANON_ELEMENT(c) c #endif #ifndef CMP_FUNC # define CMP_FUNC memcmp #endif /* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. Return the index of the first byte in the right half, and set *PERIOD to the global period of the right half. The global period of a string is the smallest index (possibly its length) at which all remaining bytes in the string are repetitions of the prefix (the last repetition may be a subset of the prefix). When NEEDLE is factored into two halves, a local period is the length of the smallest word that shares a suffix with the left half and shares a prefix with the right half. All factorizations of a non-empty NEEDLE have a local period of at least 1 and no greater than NEEDLE_LEN. A critical factorization has the property that the local period equals the global period. All strings have at least one critical factorization with the left half smaller than the global period. And while some strings have more than one critical factorization, it is provable that with an ordered alphabet, at least one of the critical factorizations corresponds to a maximal suffix. Given an ordered alphabet, a critical factorization can be computed in linear time, with 2 * NEEDLE_LEN comparisons, by computing the shorter of two ordered maximal suffixes. The ordered maximal suffixes are determined by lexicographic comparison while tracking periodicity. */ static size_t critical_factorization (const unsigned char *needle, size_t needle_len, size_t *period) { /* Index of last byte of left half, or SIZE_MAX. */ size_t max_suffix, max_suffix_rev; size_t j; /* Index into NEEDLE for current candidate suffix. */ size_t k; /* Offset into current period. */ size_t p; /* Intermediate period. */ unsigned char a, b; /* Current comparison bytes. */ /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered out 0-length needles. */ if (needle_len < 3) { *period = 1; return needle_len - 1; } /* Invariants: 0 <= j < NEEDLE_LEN - 1 -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) min(max_suffix, max_suffix_rev) < global period of NEEDLE 1 <= p <= global period of NEEDLE p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] 1 <= k <= p */ /* Perform lexicographic search. */ max_suffix = SIZE_MAX; j = 0; k = p = 1; while (j + k < needle_len) { a = CANON_ELEMENT (needle[j + k]); b = CANON_ELEMENT (needle[max_suffix + k]); if (a < b) { /* Suffix is smaller, period is entire prefix so far. */ j += k; k = 1; p = j - max_suffix; } else if (a == b) { /* Advance through repetition of the current period. */ if (k != p) ++k; else { j += p; k = 1; } } else /* b < a */ { /* Suffix is larger, start over from current location. */ max_suffix = j++; k = p = 1; } } *period = p; /* Perform reverse lexicographic search. */ max_suffix_rev = SIZE_MAX; j = 0; k = p = 1; while (j + k < needle_len) { a = CANON_ELEMENT (needle[j + k]); b = CANON_ELEMENT (needle[max_suffix_rev + k]); if (b < a) { /* Suffix is smaller, period is entire prefix so far. */ j += k; k = 1; p = j - max_suffix_rev; } else if (a == b) { /* Advance through repetition of the current period. */ if (k != p) ++k; else { j += p; k = 1; } } else /* a < b */ { /* Suffix is larger, start over from current location. */ max_suffix_rev = j++; k = p = 1; } } /* Choose the shorter suffix. Return the index of the first byte of the right half, rather than the last byte of the left half. For some examples, 'banana' has two critical factorizations, both exposed by the two lexicographic extreme suffixes of 'anana' and 'nana', where both suffixes have a period of 2. On the other hand, with 'aab' and 'bba', both strings have a single critical factorization of the last byte, with the suffix having a period of 1. While the maximal lexicographic suffix of 'aab' is 'b', the maximal lexicographic suffix of 'bba' is 'ba', which is not a critical factorization. Conversely, the maximal reverse lexicographic suffix of 'a' works for 'bba', but not 'ab' for 'aab'. The shorter suffix of the two will always be a critical factorization. */ if (max_suffix_rev + 1 < max_suffix + 1) return max_suffix + 1; *period = p; return max_suffix_rev + 1; } /* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. Performance is guaranteed to be linear, with an initialization cost of 2 * NEEDLE_LEN comparisons. If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ static RETURN_TYPE two_way_short_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { size_t i; /* Index into current byte of NEEDLE. */ size_t j; /* Index into current window of HAYSTACK. */ size_t period; /* The period of the right half of needle. */ size_t suffix; /* The index of the right half of needle. */ /* Factor the needle into two halves, such that the left half is smaller than the global period, and the right half is periodic (with a period as large as NEEDLE_LEN - suffix). */ suffix = critical_factorization (needle, needle_len, &period); /* Perform the search. Each iteration compares the right half first. */ if (CMP_FUNC (needle, needle + period, suffix) == 0) { /* Entire needle is periodic; a mismatch in the left half can only advance by the period, so use memory to avoid rescanning known occurrences of the period in the right half. */ size_t memory = 0; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Scan for matches in right half. */ i = MAX (suffix, memory); while (i < needle_len && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (memory < i + 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i + 1 < memory + 1) return (RETURN_TYPE) (haystack + j); /* No match, so remember how many repetitions of period on the right half were scanned. */ j += period; memory = needle_len - period; } else { j += i - suffix + 1; memory = 0; } } } else { /* The two halves of needle are distinct; no extra memory is required, and any mismatch results in a maximal shift. */ period = MAX (suffix, needle_len - suffix) + 1; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Scan for matches in right half. */ i = suffix; while (i < needle_len && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i == SIZE_MAX) return (RETURN_TYPE) (haystack + j); j += period; } else j += i - suffix + 1; } } return NULL; } /* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN. Performance is guaranteed to be linear, with an initialization cost of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations. If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance is not possible. */ static RETURN_TYPE two_way_long_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { size_t i; /* Index into current byte of NEEDLE. */ size_t j; /* Index into current window of HAYSTACK. */ size_t period; /* The period of the right half of needle. */ size_t suffix; /* The index of the right half of needle. */ size_t shift_table[1U << CHAR_BIT]; /* See below. */ /* Factor the needle into two halves, such that the left half is smaller than the global period, and the right half is periodic (with a period as large as NEEDLE_LEN - suffix). */ suffix = critical_factorization (needle, needle_len, &period); /* Populate shift_table. For each possible byte value c, shift_table[c] is the distance from the last occurrence of c to the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE. shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */ for (i = 0; i < 1U << CHAR_BIT; i++) shift_table[i] = needle_len; for (i = 0; i < needle_len; i++) shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1; /* Perform the search. Each iteration compares the right half first. */ if (CMP_FUNC (needle, needle + period, suffix) == 0) { /* Entire needle is periodic; a mismatch in the left half can only advance by the period, so use memory to avoid rescanning known occurrences of the period in the right half. */ size_t memory = 0; size_t shift; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Check the last byte first; if it does not match, then shift to the next possible match location. */ shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; if (0 < shift) { if (memory && shift < period) { /* Since needle is periodic, but the last period has a byte out of place, there can be no match until after the mismatch. */ shift = needle_len - period; } memory = 0; j += shift; continue; } /* Scan for matches in right half. The last byte has already been matched, by virtue of the shift table. */ i = MAX (suffix, memory); while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len - 1 <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (memory < i + 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i + 1 < memory + 1) return (RETURN_TYPE) (haystack + j); /* No match, so remember how many repetitions of period on the right half were scanned. */ j += period; memory = needle_len - period; } else { j += i - suffix + 1; memory = 0; } } } else { /* The two halves of needle are distinct; no extra memory is required, and any mismatch results in a maximal shift. */ size_t shift; period = MAX (suffix, needle_len - suffix) + 1; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Check the last byte first; if it does not match, then shift to the next possible match location. */ shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; if (0 < shift) { j += shift; continue; } /* Scan for matches in right half. The last byte has already been matched, by virtue of the shift table. */ i = suffix; while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len - 1 <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i == SIZE_MAX) return (RETURN_TYPE) (haystack + j); j += period; } else j += i - suffix + 1; } } return NULL; } #undef AVAILABLE #undef CANON_ELEMENT #undef CMP_FUNC #undef MAX #undef RETURN_TYPE �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/wcrtomb.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002715�12116370307�012075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert wide character to multibyte character. Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> #include <errno.h> #include <stdlib.h> size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps) { /* This implementation of wcrtomb on top of wctomb() supports only stateless encodings. ps must be in the initial state. */ if (ps != NULL && !mbsinit (ps)) { errno = EINVAL; return (size_t)(-1); } if (s == NULL) /* We know the NUL wide character corresponds to the NUL character. */ return 1; else { int ret = wctomb (s, wc); if (ret >= 0) return ret; else { errno = EILSEQ; return (size_t)(-1); } } } ���������������������������������������������������wdiff-1.2.1/lib/msvc-inval.c������������������������������������������������������������������������0000644�0000000�0000000�00000007503�12116370307�012477� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* Get _invalid_parameter_handler type and _set_invalid_parameter_handler declaration. */ # include <stdlib.h> # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING static void cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { } # else /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> # if defined _MSC_VER static void cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # else /* An index to thread-local storage. */ static DWORD tls_index; static int tls_initialized /* = 0 */; /* Used as a fallback only. */ static struct gl_msvc_inval_per_thread not_per_thread; struct gl_msvc_inval_per_thread * gl_msvc_inval_current (void) { if (!tls_initialized) { tls_index = TlsAlloc (); tls_initialized = 1; } if (tls_index == TLS_OUT_OF_INDEXES) /* TlsAlloc had failed. */ return ¬_per_thread; else { struct gl_msvc_inval_per_thread *pointer = (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); if (pointer == NULL) { /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ pointer = (struct gl_msvc_inval_per_thread *) malloc (sizeof (struct gl_msvc_inval_per_thread)); if (pointer == NULL) /* Could not allocate memory. Use the global storage. */ pointer = ¬_per_thread; TlsSetValue (tls_index, pointer); } return pointer; } } static void cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); if (current->restart_valid) longjmp (current->restart, 1); else /* An invalid parameter notification from outside the gnulib code. Give the caller a chance to intervene. */ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # endif # endif static int gl_msvc_inval_initialized /* = 0 */; void gl_msvc_inval_ensure_handler (void) { if (gl_msvc_inval_initialized == 0) { _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); gl_msvc_inval_initialized = 1; } } #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/exitfail.h��������������������������������������������������������������������������0000644�0000000�0000000�00000001402�12116370307�012222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Failure exit status Copyright (C) 2002, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ extern int volatile exit_failure; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/memchr.valgrind���������������������������������������������������������������������0000644�0000000�0000000�00000000652�11744500575�013265� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Suppress a valgrind message about use of uninitialized memory in memchr(). # POSIX states that when the character is found, memchr must not read extra # bytes in an overestimated length (for example, where memchr is used to # implement strnlen). However, we use a safe word read to provide a speedup. { memchr-value4 Memcheck:Value4 fun:rpl_memchr } { memchr-value8 Memcheck:Value8 fun:rpl_memchr } ��������������������������������������������������������������������������������������wdiff-1.2.1/lib/xalloc.h����������������������������������������������������������������������������0000644�0000000�0000000�00000016702�12116370307�011710� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xalloc.h -- malloc with out-of-memory checking Copyright (C) 1990-2000, 2003-2004, 2006-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef XALLOC_H_ #define XALLOC_H_ #include <stddef.h> #include "xalloc-oversized.h" _GL_INLINE_HEADER_BEGIN #ifndef XALLOC_INLINE # define XALLOC_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif #if __GNUC__ >= 3 # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) #else # define _GL_ATTRIBUTE_MALLOC #endif #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) #else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) #endif /* This function is always triggered when memory is exhausted. It must be defined by the application, either explicitly or by using gnulib's xalloc-die module. This is the function to call when one wants the program to die because of a memory allocation failure. */ extern _Noreturn void xalloc_die (void); void *xmalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); void *xzalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); void *xcalloc (size_t n, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); void *xrealloc (void *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); void *x2realloc (void *p, size_t *pn); void *xmemdup (void const *p, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2)); char *xstrdup (char const *str) _GL_ATTRIBUTE_MALLOC; /* In the following macros, T must be an elementary or structure/union or typedef'ed type, or a pointer to such a type. To apply one of the following macros to a function pointer or array type, you need to typedef it first and use the typedef name. */ /* Allocate an object of type T dynamically, with error checking. */ /* extern t *XMALLOC (typename t); */ #define XMALLOC(t) ((t *) xmalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking. */ /* extern t *XNMALLOC (size_t n, typename t); */ #define XNMALLOC(n, t) \ ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t)))) /* Allocate an object of type T dynamically, with error checking, and zero it. */ /* extern t *XZALLOC (typename t); */ #define XZALLOC(t) ((t *) xzalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking, and zero it. */ /* extern t *XCALLOC (size_t n, typename t); */ #define XCALLOC(n, t) \ ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t)))) /* Allocate an array of N objects, each with S bytes of memory, dynamically, with error checking. S must be nonzero. */ XALLOC_INLINE void *xnmalloc (size_t n, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); XALLOC_INLINE void * xnmalloc (size_t n, size_t s) { if (xalloc_oversized (n, s)) xalloc_die (); return xmalloc (n * s); } /* Change the size of an allocated block of memory P to an array of N objects each of S bytes, with error checking. S must be nonzero. */ XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); XALLOC_INLINE void * xnrealloc (void *p, size_t n, size_t s) { if (xalloc_oversized (n, s)) xalloc_die (); return xrealloc (p, n * s); } /* If P is null, allocate a block of at least *PN such objects; otherwise, reallocate P so that it contains more than *PN objects each of S bytes. *PN must be nonzero unless P is null, and S must be nonzero. Set *PN to the new number of objects, and return the pointer to the new block. *PN is never set to zero, and the returned pointer is never null. Repeated reallocations are guaranteed to make progress, either by allocating an initial block with a nonzero size, or by allocating a larger block. In the following implementation, nonzero sizes are increased by a factor of approximately 1.5 so that repeated reallocations have O(N) overall cost rather than O(N**2) cost, but the specification for this function does not guarantee that rate. Here is an example of use: int *p = NULL; size_t used = 0; size_t allocated = 0; void append_int (int value) { if (used == allocated) p = x2nrealloc (p, &allocated, sizeof *p); p[used++] = value; } This causes x2nrealloc to allocate a block of some nonzero size the first time it is called. To have finer-grained control over the initial size, set *PN to a nonzero value before calling this function with P == NULL. For example: int *p = NULL; size_t used = 0; size_t allocated = 0; size_t allocated1 = 1000; void append_int (int value) { if (used == allocated) { p = x2nrealloc (p, &allocated1, sizeof *p); allocated = allocated1; } p[used++] = value; } */ XALLOC_INLINE void * x2nrealloc (void *p, size_t *pn, size_t s) { size_t n = *pn; if (! p) { if (! n) { /* The approximate size to use for initial small allocation requests, when the invoking code specifies an old size of zero. This is the largest "small" request for the GNU C library malloc. */ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; n = DEFAULT_MXFAST / s; n += !n; } } else { /* Set N = ceil (1.5 * N) so that progress is made if N == 1. Check for overflow, so that N * S stays in size_t range. The check is slightly conservative, but an exact check isn't worth the trouble. */ if ((size_t) -1 / 3 * 2 / s <= n) xalloc_die (); n += (n + 1) / 2; } *pn = n; return xrealloc (p, n * s); } /* Return a pointer to a new buffer of N bytes. This is like xmalloc, except it returns char *. */ XALLOC_INLINE char *xcharalloc (size_t n) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); XALLOC_INLINE char * xcharalloc (size_t n) { return XNMALLOC (n, char); } #ifdef __cplusplus } /* C++ does not allow conversions from void * to other pointer types without a cast. Use templates to work around the problem when possible. */ template <typename T> inline T * xrealloc (T *p, size_t s) { return (T *) xrealloc ((void *) p, s); } template <typename T> inline T * xnrealloc (T *p, size_t n, size_t s) { return (T *) xnrealloc ((void *) p, n, s); } template <typename T> inline T * x2realloc (T *p, size_t *pn) { return (T *) x2realloc ((void *) p, pn); } template <typename T> inline T * x2nrealloc (T *p, size_t *pn, size_t s) { return (T *) x2nrealloc ((void *) p, pn, s); } template <typename T> inline T * xmemdup (T const *p, size_t s) { return (T *) xmemdup ((void const *) p, s); } #endif #endif /* !XALLOC_H_ */ ��������������������������������������������������������������wdiff-1.2.1/lib/mbchar.h����������������������������������������������������������������������������0000644�0000000�0000000�00000033304�12116370307�011657� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Multibyte character data type. Copyright (C) 2001, 2005-2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ /* A multibyte character is a short subsequence of a char* string, representing a single wide character. We use multibyte characters instead of wide characters because of the following goals: 1) correct multibyte handling, i.e. operate according to the LC_CTYPE locale, 2) ease of maintenance, i.e. the maintainer needs not know all details of the ISO C 99 standard, 3) don't fail grossly if the input is not in the encoding set by the locale, because often different encodings are in use in the same countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...), 4) fast in the case of ASCII characters, 5) portability, i.e. don't make unportable assumptions about wchar_t. Multibyte characters are only accessed through the mb* macros. mb_ptr (mbc) return a pointer to the beginning of the multibyte sequence. mb_len (mbc) returns the number of bytes occupied by the multibyte sequence. Always > 0. mb_iseq (mbc, sc) returns true if mbc is the standard ASCII character sc. mb_isnul (mbc) returns true if mbc is the nul character. mb_cmp (mbc1, mbc2) returns a positive, zero, or negative value depending on whether mbc1 sorts after, same or before mbc2. mb_casecmp (mbc1, mbc2) returns a positive, zero, or negative value depending on whether mbc1 sorts after, same or before mbc2, modulo upper/lowercase conversion. mb_equal (mbc1, mbc2) returns true if mbc1 and mbc2 are equal. mb_caseequal (mbc1, mbc2) returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion. mb_isalnum (mbc) returns true if mbc is alphanumeric. mb_isalpha (mbc) returns true if mbc is alphabetic. mb_isascii(mbc) returns true if mbc is plain ASCII. mb_isblank (mbc) returns true if mbc is a blank. mb_iscntrl (mbc) returns true if mbc is a control character. mb_isdigit (mbc) returns true if mbc is a decimal digit. mb_isgraph (mbc) returns true if mbc is a graphic character. mb_islower (mbc) returns true if mbc is lowercase. mb_isprint (mbc) returns true if mbc is a printable character. mb_ispunct (mbc) returns true if mbc is a punctuation character. mb_isspace (mbc) returns true if mbc is a space character. mb_isupper (mbc) returns true if mbc is uppercase. mb_isxdigit (mbc) returns true if mbc is a hexadecimal digit. mb_width (mbc) returns the number of columns on the output device occupied by mbc. Always >= 0. mb_putc (mbc, stream) outputs mbc on stream, a byte oriented FILE stream opened for output. mb_setascii (&mbc, sc) assigns the standard ASCII character sc to mbc. mb_copy (&destmbc, &srcmbc) copies srcmbc to destmbc. Here are the function prototypes of the macros. extern const char * mb_ptr (const mbchar_t mbc); extern size_t mb_len (const mbchar_t mbc); extern bool mb_iseq (const mbchar_t mbc, char sc); extern bool mb_isnul (const mbchar_t mbc); extern int mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2); extern int mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2); extern bool mb_equal (const mbchar_t mbc1, const mbchar_t mbc2); extern bool mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2); extern bool mb_isalnum (const mbchar_t mbc); extern bool mb_isalpha (const mbchar_t mbc); extern bool mb_isascii (const mbchar_t mbc); extern bool mb_isblank (const mbchar_t mbc); extern bool mb_iscntrl (const mbchar_t mbc); extern bool mb_isdigit (const mbchar_t mbc); extern bool mb_isgraph (const mbchar_t mbc); extern bool mb_islower (const mbchar_t mbc); extern bool mb_isprint (const mbchar_t mbc); extern bool mb_ispunct (const mbchar_t mbc); extern bool mb_isspace (const mbchar_t mbc); extern bool mb_isupper (const mbchar_t mbc); extern bool mb_isxdigit (const mbchar_t mbc); extern int mb_width (const mbchar_t mbc); extern void mb_putc (const mbchar_t mbc, FILE *stream); extern void mb_setascii (mbchar_t *new, char sc); extern void mb_copy (mbchar_t *new, const mbchar_t *old); */ #ifndef _MBCHAR_H #define _MBCHAR_H 1 #include <stdbool.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> _GL_INLINE_HEADER_BEGIN #ifndef MBCHAR_INLINE # define MBCHAR_INLINE _GL_INLINE #endif #define MBCHAR_BUF_SIZE 24 struct mbchar { const char *ptr; /* pointer to current character */ size_t bytes; /* number of bytes of current character, > 0 */ bool wc_valid; /* true if wc is a valid wide character */ wchar_t wc; /* if wc_valid: the current character */ char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */ }; /* EOF (not a real character) is represented with bytes = 0 and wc_valid = false. */ typedef struct mbchar mbchar_t; /* Access the current character. */ #define mb_ptr(mbc) ((mbc).ptr) #define mb_len(mbc) ((mbc).bytes) /* Comparison of characters. */ #define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc)) #define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0) #define mb_cmp(mbc1, mbc2) \ ((mbc1).wc_valid \ ? ((mbc2).wc_valid \ ? (int) (mbc1).wc - (int) (mbc2).wc \ : -1) \ : ((mbc2).wc_valid \ ? 1 \ : (mbc1).bytes == (mbc2).bytes \ ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ : (mbc1).bytes < (mbc2).bytes \ ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) #define mb_casecmp(mbc1, mbc2) \ ((mbc1).wc_valid \ ? ((mbc2).wc_valid \ ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc) \ : -1) \ : ((mbc2).wc_valid \ ? 1 \ : (mbc1).bytes == (mbc2).bytes \ ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ : (mbc1).bytes < (mbc2).bytes \ ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) #define mb_equal(mbc1, mbc2) \ ((mbc1).wc_valid && (mbc2).wc_valid \ ? (mbc1).wc == (mbc2).wc \ : (mbc1).bytes == (mbc2).bytes \ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) #define mb_caseequal(mbc1, mbc2) \ ((mbc1).wc_valid && (mbc2).wc_valid \ ? towlower ((mbc1).wc) == towlower ((mbc2).wc) \ : (mbc1).bytes == (mbc2).bytes \ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) /* <ctype.h>, <wctype.h> classification. */ #define mb_isascii(mbc) \ ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127) #define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc)) #define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc)) #define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc)) #define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc)) #define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc)) #define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc)) #define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc)) #define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc)) #define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc)) #define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc)) #define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc)) #define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc)) /* Extra <wchar.h> function. */ /* Unprintable characters appear as a small box of width 1. */ #define MB_UNPRINTABLE_WIDTH 1 MBCHAR_INLINE int mb_width_aux (wint_t wc) { int w = wcwidth (wc); /* For unprintable characters, arbitrarily return 0 for control characters and MB_UNPRINTABLE_WIDTH otherwise. */ return (w >= 0 ? w : iswcntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH); } #define mb_width(mbc) \ ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH) /* Output. */ #define mb_putc(mbc, stream) fwrite ((mbc).ptr, 1, (mbc).bytes, (stream)) /* Assignment. */ #define mb_setascii(mbc, sc) \ ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \ (mbc)->wc = (mbc)->buf[0] = (sc)) /* Copying a character. */ MBCHAR_INLINE void mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc) { if (old_mbc->ptr == &old_mbc->buf[0]) { memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes); new_mbc->ptr = &new_mbc->buf[0]; } else new_mbc->ptr = old_mbc->ptr; new_mbc->bytes = old_mbc->bytes; if ((new_mbc->wc_valid = old_mbc->wc_valid)) new_mbc->wc = old_mbc->wc; } /* is_basic(c) tests whether the single-byte character c is in the ISO C "basic character set". This is a convenience function, and is in this file only to share code between mbiter_multi.h and mbfile_multi.h. */ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ISO-646, not EBCDIC. */ # define IS_BASIC_ASCII 1 extern const unsigned int is_basic_table[]; MBCHAR_INLINE bool is_basic (char c) { return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31)) & 1; } #else MBCHAR_INLINE bool is_basic (char c) { switch (c) { case '\t': case '\v': case '\f': case ' ': case '!': case '"': case '#': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 1; default: return 0; } } #endif _GL_INLINE_HEADER_END #endif /* _MBCHAR_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/streq.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000007636�12116370307�011572� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Optimized string comparison. Copyright (C) 2001-2002, 2007, 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ #ifndef _GL_STREQ_H #define _GL_STREQ_H #include <string.h> /* STREQ_OPT allows to optimize string comparison with a small literal string. STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) is semantically equivalent to strcmp (s, "EUC-KR") == 0 just faster. */ /* Help GCC to generate good code for string comparisons with immediate strings. */ #if defined (__GNUC__) && defined (__OPTIMIZE__) static inline int streq9 (const char *s1, const char *s2) { return strcmp (s1 + 9, s2 + 9) == 0; } static inline int streq8 (const char *s1, const char *s2, char s28) { if (s1[8] == s28) { if (s28 == 0) return 1; else return streq9 (s1, s2); } else return 0; } static inline int streq7 (const char *s1, const char *s2, char s27, char s28) { if (s1[7] == s27) { if (s27 == 0) return 1; else return streq8 (s1, s2, s28); } else return 0; } static inline int streq6 (const char *s1, const char *s2, char s26, char s27, char s28) { if (s1[6] == s26) { if (s26 == 0) return 1; else return streq7 (s1, s2, s27, s28); } else return 0; } static inline int streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) { if (s1[5] == s25) { if (s25 == 0) return 1; else return streq6 (s1, s2, s26, s27, s28); } else return 0; } static inline int streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) { if (s1[4] == s24) { if (s24 == 0) return 1; else return streq5 (s1, s2, s25, s26, s27, s28); } else return 0; } static inline int streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[3] == s23) { if (s23 == 0) return 1; else return streq4 (s1, s2, s24, s25, s26, s27, s28); } else return 0; } static inline int streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[2] == s22) { if (s22 == 0) return 1; else return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[1] == s21) { if (s21 == 0) return 1; else return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[0] == s20) { if (s20 == 0) return 1; else return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); } else return 0; } #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) #else #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ (strcmp (s1, s2) == 0) #endif #endif /* _GL_STREQ_H */ ��������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/asprintf.c��������������������������������������������������������������������������0000644�0000000�0000000�00000002101�12116370307�012233� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Formatted output to strings. Copyright (C) 1999, 2002, 2006-2007, 2009-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #ifdef IN_LIBASPRINTF # include "vasprintf.h" #else # include <stdio.h> #endif #include <stdarg.h> int asprintf (char **resultp, const char *format, ...) { va_list args; int result; va_start (args, format); result = vasprintf (resultp, format, args); va_end (args); return result; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/regex.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000060577�12116370307�011551� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Definitions for data structures and routines for the regular expression library. Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef _REGEX_H #define _REGEX_H 1 #include <sys/types.h> /* Allow the use in C++ code. */ #ifdef __cplusplus extern "C" { #endif /* Define __USE_GNU to declare GNU extensions that violate the POSIX name space rules. */ #ifdef _GNU_SOURCE # define __USE_GNU 1 #endif #ifdef _REGEX_LARGE_OFFSETS /* Use types and values that are wide enough to represent signed and unsigned byte offsets in memory. This currently works only when the regex code is used outside of the GNU C library; it is not yet supported within glibc itself, and glibc users should not define _REGEX_LARGE_OFFSETS. */ /* The type of nonnegative object indexes. Traditionally, GNU regex uses 'int' for these. Code that uses __re_idx_t should work regardless of whether the type is signed. */ typedef size_t __re_idx_t; /* The type of object sizes. */ typedef size_t __re_size_t; /* The type of object sizes, in places where the traditional code uses unsigned long int. */ typedef size_t __re_long_size_t; #else /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ typedef int __re_idx_t; typedef unsigned int __re_size_t; typedef unsigned long int __re_long_size_t; #endif /* The following two types have to be signed and unsigned integer type wide enough to hold a value of a pointer. For most ANSI compilers ptrdiff_t and size_t should be likely OK. Still size of these two types is 2 for Microsoft C. Ugh... */ typedef long int s_reg_t; typedef unsigned long int active_reg_t; /* The following bits are used to determine the regexp syntax we recognize. The set/not-set meanings are chosen so that Emacs syntax remains the value 0. The bits are given in alphabetical order, and the definitions shifted by one from the previous bit; thus, when we add or remove a bit, only one other definition need change. */ typedef unsigned long int reg_syntax_t; #ifdef __USE_GNU /* If this bit is not set, then \ inside a bracket expression is literal. If set, then such a \ quotes the following character. */ # define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) /* If this bit is not set, then + and ? are operators, and \+ and \? are literals. If set, then \+ and \? are operators and + and ? are literals. */ # define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) /* If this bit is set, then character classes are supported. They are: [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. If not set, then character classes are not supported. */ # define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) /* If this bit is set, then ^ and $ are always anchors (outside bracket expressions, of course). If this bit is not set, then it depends: ^ is an anchor if it is at the beginning of a regular expression or after an open-group or an alternation operator; $ is an anchor if it is at the end of a regular expression, or before a close-group or an alternation operator. This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because POSIX draft 11.2 says that * etc. in leading positions is undefined. We already implemented a previous draft which made those constructs invalid, though, so we haven't changed the code back. */ # define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) /* If this bit is set, then special characters are always special regardless of where they are in the pattern. If this bit is not set, then special characters are special only in some contexts; otherwise they are ordinary. Specifically, * + ? and intervals are only special when not after the beginning, open-group, or alternation operator. */ # define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) /* If this bit is set, then *, +, ?, and { cannot be first in an re or immediately after an alternation or begin-group operator. */ # define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) /* If this bit is set, then . matches newline. If not set, then it doesn't. */ # define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) /* If this bit is set, then . doesn't match NUL. If not set, then it does. */ # define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) /* If this bit is set, nonmatching lists [^...] do not match newline. If not set, they do. */ # define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) /* If this bit is set, either \{...\} or {...} defines an interval, depending on RE_NO_BK_BRACES. If not set, \{, \}, {, and } are literals. */ # define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) /* If this bit is set, +, ? and | aren't recognized as operators. If not set, they are. */ # define RE_LIMITED_OPS (RE_INTERVALS << 1) /* If this bit is set, newline is an alternation operator. If not set, newline is literal. */ # define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) /* If this bit is set, then '{...}' defines an interval, and \{ and \} are literals. If not set, then '\{...\}' defines an interval. */ # define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) /* If this bit is set, (...) defines a group, and \( and \) are literals. If not set, \(...\) defines a group, and ( and ) are literals. */ # define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) /* If this bit is set, then \<digit> matches <digit>. If not set, then \<digit> is a back-reference. */ # define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) /* If this bit is set, then | is an alternation operator, and \| is literal. If not set, then \| is an alternation operator, and | is literal. */ # define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) /* If this bit is set, then an ending range point collating higher than the starting range point, as in [z-a], is invalid. If not set, then when ending range point collates higher than the starting range point, the range is ignored. */ # define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) /* If this bit is set, then an unmatched ) is ordinary. If not set, then an unmatched ) is invalid. */ # define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) /* If this bit is set, succeed as soon as we match the whole pattern, without further backtracking. */ # define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) /* If this bit is set, do not process the GNU regex operators. If not set, then the GNU regex operators are recognized. */ # define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) /* If this bit is set, turn on internal regex debugging. If not set, and debugging was on, turn it off. This only works if regex.c is compiled -DDEBUG. We define this bit always, so that all that's needed to turn on debugging is to recompile regex.c; the calling code can always have this bit set, and it won't affect anything in the normal case. */ # define RE_DEBUG (RE_NO_GNU_OPS << 1) /* If this bit is set, a syntactically invalid interval is treated as a string of ordinary characters. For example, the ERE 'a{1' is treated as 'a\{1'. */ # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only for ^, because it is difficult to scan the regex backwards to find whether ^ should be special. */ # define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) /* If this bit is set, then \{ cannot be first in a regex or immediately after an alternation, open-group or \} operator. */ # define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) /* If this bit is set, then no_sub will be set to 1 during re_compile_pattern. */ # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) #endif /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is stored in the pattern buffer, so changing this does not affect already-compiled regexps. */ extern reg_syntax_t re_syntax_options; #ifdef __USE_GNU /* Define combinations of the above bits for the standard possibilities. (The [[[ comments delimit what gets put into the Texinfo file, so don't delete them!) */ /* [[[begin syntaxes]]] */ # define RE_SYNTAX_EMACS 0 # define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ | RE_CHAR_CLASSES \ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) # define RE_SYNTAX_GNU_AWK \ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INVALID_INTERVAL_ORD) \ & ~(RE_DOT_NOT_NULL | RE_CONTEXT_INDEP_OPS \ | RE_CONTEXT_INVALID_OPS )) # define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INTERVALS | RE_NO_GNU_OPS \ | RE_INVALID_INTERVAL_ORD) # define RE_SYNTAX_GREP \ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT) # define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR) # define RE_SYNTAX_POSIX_EGREP \ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ | RE_INVALID_INTERVAL_ORD) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ # define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC # define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ # define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) # define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ # define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) # define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is removed and RE_NO_BK_REFS is added. */ # define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) /* [[[end syntaxes]]] */ /* Maximum number of duplicates an interval can allow. POSIX-conforming systems might define this in <limits.h>, but we want our value, so remove any previous define. */ # ifdef _REGEX_INCLUDE_LIMITS_H # include <limits.h> # endif # ifdef RE_DUP_MAX # undef RE_DUP_MAX # endif /* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored the counter as a 2-byte signed integer. This is no longer true, so RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to ((SIZE_MAX - 9) / 10) if _REGEX_LARGE_OFFSETS is defined. However, there would be a huge performance problem if someone actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains its historical value. */ # define RE_DUP_MAX (0x7fff) #endif /* POSIX 'cflags' bits (i.e., information for 'regcomp'). */ /* If this bit is set, then use extended regular expression syntax. If not set, then use basic regular expression syntax. */ #define REG_EXTENDED 1 /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ #define REG_ICASE (1 << 1) /* If this bit is set, then anchors do not match at newline characters in the string. If not set, then anchors do match at newlines. */ #define REG_NEWLINE (1 << 2) /* If this bit is set, then report only success or fail in regexec. If not set, then returns differ between not matching and errors. */ #define REG_NOSUB (1 << 3) /* POSIX 'eflags' bits (i.e., information for regexec). */ /* If this bit is set, then the beginning-of-line operator doesn't match the beginning of the string (presumably because it's not the beginning of a line). If not set, then the beginning-of-line operator does match the beginning of the string. */ #define REG_NOTBOL 1 /* Like REG_NOTBOL, except for the end-of-line. */ #define REG_NOTEOL (1 << 1) /* Use PMATCH[0] to delimit the start and end of the search in the buffer. */ #define REG_STARTEND (1 << 2) /* If any error codes are removed, changed, or added, update the '__re_error_msgid' table in regcomp.c. */ typedef enum { _REG_ENOSYS = -1, /* This will never happen for this implementation. */ _REG_NOERROR = 0, /* Success. */ _REG_NOMATCH, /* Didn't find a match (for regexec). */ /* POSIX regcomp return error codes. (In the order listed in the standard.) */ _REG_BADPAT, /* Invalid pattern. */ _REG_ECOLLATE, /* Invalid collating element. */ _REG_ECTYPE, /* Invalid character class name. */ _REG_EESCAPE, /* Trailing backslash. */ _REG_ESUBREG, /* Invalid back reference. */ _REG_EBRACK, /* Unmatched left bracket. */ _REG_EPAREN, /* Parenthesis imbalance. */ _REG_EBRACE, /* Unmatched \{. */ _REG_BADBR, /* Invalid contents of \{\}. */ _REG_ERANGE, /* Invalid range end. */ _REG_ESPACE, /* Ran out of memory. */ _REG_BADRPT, /* No preceding re for repetition op. */ /* Error codes we've added. */ _REG_EEND, /* Premature end. */ _REG_ESIZE, /* Too large (e.g., repeat count too large). */ _REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ } reg_errcode_t; #if defined _XOPEN_SOURCE || defined __USE_XOPEN2K # define REG_ENOSYS _REG_ENOSYS #endif #define REG_NOERROR _REG_NOERROR #define REG_NOMATCH _REG_NOMATCH #define REG_BADPAT _REG_BADPAT #define REG_ECOLLATE _REG_ECOLLATE #define REG_ECTYPE _REG_ECTYPE #define REG_EESCAPE _REG_EESCAPE #define REG_ESUBREG _REG_ESUBREG #define REG_EBRACK _REG_EBRACK #define REG_EPAREN _REG_EPAREN #define REG_EBRACE _REG_EBRACE #define REG_BADBR _REG_BADBR #define REG_ERANGE _REG_ERANGE #define REG_ESPACE _REG_ESPACE #define REG_BADRPT _REG_BADRPT #define REG_EEND _REG_EEND #define REG_ESIZE _REG_ESIZE #define REG_ERPAREN _REG_ERPAREN /* This data structure represents a compiled pattern. Before calling the pattern compiler, the fields 'buffer', 'allocated', 'fastmap', and 'translate' can be set. After the pattern has been compiled, the fields 're_nsub', 'not_bol' and 'not_eol' are available. All other fields are private to the regex routines. */ #ifndef RE_TRANSLATE_TYPE # define __RE_TRANSLATE_TYPE unsigned char * # ifdef __USE_GNU # define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE # endif #endif #ifdef __USE_GNU # define __REPB_PREFIX(name) name #else # define __REPB_PREFIX(name) __##name #endif struct re_pattern_buffer { /* Space that holds the compiled pattern. The type 'struct re_dfa_t' is private and is not declared here. */ struct re_dfa_t *__REPB_PREFIX(buffer); /* Number of bytes to which 'buffer' points. */ __re_long_size_t __REPB_PREFIX(allocated); /* Number of bytes actually used in 'buffer'. */ __re_long_size_t __REPB_PREFIX(used); /* Syntax setting with which the pattern was compiled. */ reg_syntax_t __REPB_PREFIX(syntax); /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *__REPB_PREFIX(fastmap); /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in 're_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see 're_compile_fastmap' (the "duplicate" case). */ unsigned __REPB_PREFIX(can_be_null) : 1; /* If REGS_UNALLOCATED, allocate space in the 'regs' structure for 'max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #ifdef __USE_GNU # define REGS_UNALLOCATED 0 # define REGS_REALLOCATE 1 # define REGS_FIXED 2 #endif unsigned __REPB_PREFIX(regs_allocated) : 2; /* Set to zero when 're_compile_pattern' compiles a pattern; set to one by 're_compile_fastmap' if it updates the fastmap. */ unsigned __REPB_PREFIX(fastmap_accurate) : 1; /* If set, 're_match_2' does not return information about subexpressions. */ unsigned __REPB_PREFIX(no_sub) : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned __REPB_PREFIX(not_bol) : 1; /* Similarly for an end-of-line anchor. */ unsigned __REPB_PREFIX(not_eol) : 1; /* If true, an anchor at a newline matches. */ unsigned __REPB_PREFIX(newline_anchor) : 1; }; typedef struct re_pattern_buffer regex_t; /* Type for byte offsets within the string. POSIX mandates this. */ #ifdef _REGEX_LARGE_OFFSETS /* POSIX 1003.1-2008 requires that regoff_t be at least as wide as ptrdiff_t and ssize_t. We don't know of any hosts where ptrdiff_t is wider than ssize_t, so ssize_t is safe. */ typedef ssize_t regoff_t; #else /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ typedef int regoff_t; #endif #ifdef __USE_GNU /* This is the structure we store register match data in. See regex.texinfo for a full description of what registers match. */ struct re_registers { __re_size_t num_regs; regoff_t *start; regoff_t *end; }; /* If 'regs_allocated' is REGS_UNALLOCATED in the pattern buffer, 're_match_2' returns information about at least this many registers the first time a 'regs' structure is passed. */ # ifndef RE_NREGS # define RE_NREGS 30 # endif #endif /* POSIX specification for registers. Aside from the different names than 're_registers', POSIX uses an array of structures, instead of a structure of arrays. */ typedef struct { regoff_t rm_so; /* Byte offset from string's start to substring's start. */ regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ } regmatch_t; /* Declarations for routines. */ #ifdef __USE_GNU /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the 're_syntax_options' variable. */ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); /* Compile the regular expression PATTERN, with length LENGTH and syntax given by the global 're_syntax_options', into the buffer BUFFER. Return NULL if successful, and an error string if not. To free the allocated storage, you must call 'regfree' on BUFFER. Note that the translate table must either have been initialised by 'regcomp', with a malloc'ed value, or set to NULL before calling 'regfree'. */ extern const char *re_compile_pattern (const char *__pattern, size_t __length, struct re_pattern_buffer *__buffer); /* Compile a fastmap for the compiled pattern in BUFFER; used to accelerate searches. Return 0 if successful and -2 if was an internal error. */ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); /* Search in the string STRING (with length LENGTH) for the pattern compiled into BUFFER. Start searching at position START, for RANGE characters. Return the starting position of the match, -1 for no match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ extern regoff_t re_search (struct re_pattern_buffer *__buffer, const char *__string, __re_idx_t __length, __re_idx_t __start, regoff_t __range, struct re_registers *__regs); /* Like 're_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer, const char *__string1, __re_idx_t __length1, const char *__string2, __re_idx_t __length2, __re_idx_t __start, regoff_t __range, struct re_registers *__regs, __re_idx_t __stop); /* Like 're_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ extern regoff_t re_match (struct re_pattern_buffer *__buffer, const char *__string, __re_idx_t __length, __re_idx_t __start, struct re_registers *__regs); /* Relates to 're_match' as 're_search_2' relates to 're_search'. */ extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer, const char *__string1, __re_idx_t __length1, const char *__string2, __re_idx_t __length2, __re_idx_t __start, struct re_registers *__regs, __re_idx_t __stop); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated with malloc, and must each be at least 'NUM_REGS * sizeof (regoff_t)' bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using BUFFER will allocate its own register data, without freeing the old data. */ extern void re_set_registers (struct re_pattern_buffer *__buffer, struct re_registers *__regs, __re_size_t __num_regs, regoff_t *__starts, regoff_t *__ends); #endif /* Use GNU */ #if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD) # ifndef _CRAY /* 4.2 bsd compatibility. */ extern char *re_comp (const char *); extern int re_exec (const char *); # endif #endif /* GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". Other compilers use __restrict, __restrict__, and _Restrict, and 'configure' might #define 'restrict' to those words, so pick a different name. */ #ifndef _Restrict_ # if 199901L <= __STDC_VERSION__ # define _Restrict_ restrict # elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) # define _Restrict_ __restrict # else # define _Restrict_ # endif #endif /* gcc 3.1 and up support the [restrict] syntax. Don't trust sys/cdefs.h's definition of __restrict_arr, though, as it mishandles gcc -ansi -pedantic. */ #ifndef _Restrict_arr_ # if ((199901L <= __STDC_VERSION__ \ || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ && !defined __STRICT_ANSI__)) \ && !defined __GNUG__) # define _Restrict_arr_ _Restrict_ # else # define _Restrict_arr_ # endif #endif /* POSIX compatibility. */ extern int regcomp (regex_t *_Restrict_ __preg, const char *_Restrict_ __pattern, int __cflags); extern int regexec (const regex_t *_Restrict_ __preg, const char *_Restrict_ __string, size_t __nmatch, regmatch_t __pmatch[_Restrict_arr_], int __eflags); extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg, char *_Restrict_ __errbuf, size_t __errbuf_size); extern void regfree (regex_t *__preg); #ifdef __cplusplus } #endif /* C++ */ #endif /* regex.h */ ���������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/wctype.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000031421�12116370307�012341� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for ISO C99 <wctype.h>, for platforms that lack it. Copyright (C) 2006-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Written by Bruno Haible and Paul Eggert. */ /* * ISO C 99 <wctype.h> for platforms that lack it. * <http://www.opengroup.org/susv3xbd/wctype.h.html> * * iswctype, towctrans, towlower, towupper, wctrans, wctype, * wctrans_t, and wctype_t are not yet implemented. */ #ifndef _@GUARD_PREFIX@_WCTYPE_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_WINT_T@ /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ # include <stddef.h> # include <stdio.h> # include <time.h> # include <wchar.h> #endif /* Include the original <wctype.h> if it exists. BeOS 5 has the functions but no <wctype.h>. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCTYPE_H@ # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #endif #ifndef _@GUARD_PREFIX@_WCTYPE_H #define _@GUARD_PREFIX@_WCTYPE_H _GL_INLINE_HEADER_BEGIN #ifndef _GL_WCTYPE_INLINE # define _GL_WCTYPE_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which #defines a number of identifiers in the application namespace. Revert these #defines. */ #ifdef __sun # undef multibyte # undef eucw1 # undef eucw2 # undef eucw3 # undef scrw1 # undef scrw2 # undef scrw3 #endif /* Define wint_t and WEOF. (Also done in wchar.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>. This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if defined _MSC_VER # if !GNULIB_defined_wint_t # include <crtdefs.h> typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif #if !GNULIB_defined_wctype_functions /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions. Linux libc5 has <wctype.h> and the functions but they are broken. Assume all 11 functions (all isw* except iswblank) are implemented the same way, or not at all. */ # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ /* IRIX 5.3 has macros but no functions, its isw* macros refer to an undefined variable _ctmp_ and to <ctype.h> macros like _P, and they refer to system functions like _iswctype that are not in the standard C library. Rather than try to get ancient buggy implementations like this to work, just disable them. */ # undef iswalnum # undef iswalpha # undef iswblank # undef iswcntrl # undef iswdigit # undef iswgraph # undef iswlower # undef iswprint # undef iswpunct # undef iswspace # undef iswupper # undef iswxdigit # undef towlower # undef towupper /* Linux libc5 has <wctype.h> and the functions but they are broken. */ # if @REPLACE_ISWCNTRL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswalnum rpl_iswalnum # define iswalpha rpl_iswalpha # define iswblank rpl_iswblank # define iswcntrl rpl_iswcntrl # define iswdigit rpl_iswdigit # define iswgraph rpl_iswgraph # define iswlower rpl_iswlower # define iswprint rpl_iswprint # define iswpunct rpl_iswpunct # define iswspace rpl_iswspace # define iswupper rpl_iswupper # define iswxdigit rpl_iswxdigit # endif # endif # if @REPLACE_TOWLOWER@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # define towupper rpl_towupper # endif # endif _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalnum # else iswalnum # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalpha # else iswalpha # endif (wint_t wc) { return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswblank # else iswblank # endif (wint_t wc) { return wc == ' ' || wc == '\t'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswcntrl # else iswcntrl # endif (wint_t wc) { return (wc & ~0x1f) == 0 || wc == 0x7f; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswdigit # else iswdigit # endif (wint_t wc) { return wc >= '0' && wc <= '9'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswgraph # else iswgraph # endif (wint_t wc) { return wc >= '!' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswlower # else iswlower # endif (wint_t wc) { return wc >= 'a' && wc <= 'z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswprint # else iswprint # endif (wint_t wc) { return wc >= ' ' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswpunct # else iswpunct # endif (wint_t wc) { return (wc >= '!' && wc <= '~' && !((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswspace # else iswspace # endif (wint_t wc) { return (wc == ' ' || wc == '\t' || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswupper # else iswupper # endif (wint_t wc) { return wc >= 'A' && wc <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswxdigit # else iswxdigit # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towlower # else towlower # endif (wint_t wc) { return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towupper # else towupper # endif (wint_t wc) { return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } # elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) /* Only the iswblank function is missing. */ # if @REPLACE_ISWBLANK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswblank rpl_iswblank # endif _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc)); # else _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc)); # endif # endif # if defined __MINGW32__ /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. The functions towlower and towupper are implemented in the MSVCRT library to take a wchar_t argument and return a wchar_t result. mingw declares these functions to take a wint_t argument and return a wint_t result. This means that: 1. When the user passes an argument outside the range 0x0000..0xFFFF, the function will look only at the lower 16 bits. This is allowed according to POSIX. 2. The return value is returned in the lower 16 bits of the result register. The upper 16 bits are random: whatever happened to be in that part of the result register. We need to fix this by adding a zero-extend from wchar_t to wint_t after the call. */ _GL_WCTYPE_INLINE wint_t rpl_towlower (wint_t wc) { return (wint_t) (wchar_t) towlower (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # endif _GL_WCTYPE_INLINE wint_t rpl_towupper (wint_t wc) { return (wint_t) (wchar_t) towupper (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towupper rpl_towupper # endif # endif /* __MINGW32__ */ # define GNULIB_defined_wctype_functions 1 #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); #endif _GL_CXXALIASWARN (iswalnum); _GL_CXXALIASWARN (iswalpha); _GL_CXXALIASWARN (iswcntrl); _GL_CXXALIASWARN (iswdigit); _GL_CXXALIASWARN (iswgraph); _GL_CXXALIASWARN (iswlower); _GL_CXXALIASWARN (iswprint); _GL_CXXALIASWARN (iswpunct); _GL_CXXALIASWARN (iswspace); _GL_CXXALIASWARN (iswupper); _GL_CXXALIASWARN (iswxdigit); #if @GNULIB_ISWBLANK@ # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@ _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); # endif _GL_CXXALIASWARN (iswblank); #endif #if !@HAVE_WCTYPE_T@ # if !GNULIB_defined_wctype_t typedef void * wctype_t; # define GNULIB_defined_wctype_t 1 # endif #endif /* Get a descriptor for a wide character property. */ #if @GNULIB_WCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); _GL_CXXALIASWARN (wctype); #elif defined GNULIB_POSIXCHECK # undef wctype # if HAVE_RAW_DECL_WCTYPE _GL_WARN_ON_USE (wctype, "wctype is unportable - " "use gnulib module wctype for portability"); # endif #endif /* Test whether a wide character has a given property. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctype() function. */ #if @GNULIB_ISWCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc)); # endif _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); _GL_CXXALIASWARN (iswctype); #elif defined GNULIB_POSIXCHECK # undef iswctype # if HAVE_RAW_DECL_ISWCTYPE _GL_WARN_ON_USE (iswctype, "iswctype is unportable - " "use gnulib module iswctype for portability"); # endif #endif #if @REPLACE_TOWLOWER@ || defined __MINGW32__ _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); #else _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); #endif _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); #if !@HAVE_WCTRANS_T@ # if !GNULIB_defined_wctrans_t typedef void * wctrans_t; # define GNULIB_defined_wctrans_t 1 # endif #endif /* Get a descriptor for a wide character case conversion. */ #if @GNULIB_WCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); _GL_CXXALIASWARN (wctrans); #elif defined GNULIB_POSIXCHECK # undef wctrans # if HAVE_RAW_DECL_WCTRANS _GL_WARN_ON_USE (wctrans, "wctrans is unportable - " "use gnulib module wctrans for portability"); # endif #endif /* Perform a given case conversion on a wide character. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctrans() function. */ #if @GNULIB_TOWCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); # endif _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); _GL_CXXALIASWARN (towctrans); #elif defined GNULIB_POSIXCHECK # undef towctrans # if HAVE_RAW_DECL_TOWCTRANS _GL_WARN_ON_USE (towctrans, "towctrans is unportable - " "use gnulib module towctrans for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif /* _@GUARD_PREFIX@_WCTYPE_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/msvc-inval.h������������������������������������������������������������������������0000644�0000000�0000000�00000021135�12116370307�012501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines macros that turn such an invalid parameter notification into a non-local exit. An error code can then be produced at the target of this exit. You can thus write code like TRY_MSVC_INVAL { <Code that can trigger an invalid parameter notification but does not do 'return', 'break', 'continue', nor 'goto'.> } CATCH_MSVC_INVAL { <Code that handles an invalid parameter notification but does not do 'return', 'break', 'continue', nor 'goto'.> } DONE_MSVC_INVAL; This entire block expands to a single statement. The handling of invalid parameters can be done in three ways: * The default way, which is reasonable for programs (not libraries): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) * The way for libraries that make "hairy" calls (like close(-1), or fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) * The way for libraries that make no "hairy" calls: AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) */ #define DEFAULT_HANDLING 0 #define HAIRY_LIBRARY_HANDLING 1 #define SANE_LIBRARY_HANDLING 2 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* A native Windows platform with the "invalid parameter handler" concept, and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING /* Default handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that just returns. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) # else /* Handling for hairy libraries. */ # include <excpt.h> /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com <http://msdn.microsoft.com/en-us/library/het71c37.aspx>. Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), - 0, 1, 2, ..., used to distinguish different status codes from the same API. */ # define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com <http://msdn.microsoft.com/en-us/library/s58ftw19.aspx>. With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ __try # define CATCH_MSVC_INVAL \ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ ? EXCEPTION_EXECUTE_HANDLER \ : EXCEPTION_CONTINUE_SEARCH) # define DONE_MSVC_INVAL \ } \ while (0) # else /* Any compiler. We can only use setjmp/longjmp. */ # include <setjmp.h> # ifdef __cplusplus extern "C" { # endif struct gl_msvc_inval_per_thread { /* The restart that will resume execution at the code between CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ jmp_buf restart; /* Tells whether the contents of restart is valid. */ int restart_valid; }; /* Ensure that the invalid parameter handler in installed that passes control to the gl_msvc_inval_restart if it is valid, or raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); /* Return a pointer to the per-thread data for the current thread. */ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ struct gl_msvc_inval_per_thread *msvc_inval_current; \ gl_msvc_inval_ensure_handler (); \ msvc_inval_current = gl_msvc_inval_current (); \ /* First, initialize gl_msvc_inval_restart. */ \ if (setjmp (msvc_inval_current->restart) == 0) \ { \ /* Then, mark it as valid. */ \ msvc_inval_current->restart_valid = 1; # define CATCH_MSVC_INVAL \ /* Execution completed. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; \ } \ else \ { \ /* Execution triggered an invalid parameter notification. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; # define DONE_MSVC_INVAL \ } \ } \ while (0) # endif # endif #else /* A platform that does not need to the invalid parameter handler, or when SANE_LIBRARY_HANDLING is desired. */ /* The braces here avoid GCC warnings like "warning: suggest explicit braces to avoid ambiguous 'else'". */ # define TRY_MSVC_INVAL \ do \ { \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) #endif #endif /* _MSVC_INVAL_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/sys_types.in.h����������������������������������������������������������������������0000644�0000000�0000000�00000003175�12116370307�013075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a more complete sys/types.h. Copyright (C) 2011-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in <stdint.h>. */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>. */ /* But avoid namespace pollution on glibc systems. */ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <stddef.h> #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/getdelim.c��������������������������������������������������������������������������0000644�0000000�0000000�00000007044�12116370307�012212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getdelim.c --- Implementation of replacement getdelim function. Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2013 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 3, 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, see <http://www.gnu.org/licenses/>. */ /* Ported from glibc by Simon Josefsson. */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below. */ #define _GL_ARG_NONNULL(params) #include <config.h> #include <stdio.h> #include <limits.h> #include <stdint.h> #include <stdlib.h> #include <errno.h> #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" # define getc_maybe_unlocked(fp) getc(fp) #elif !HAVE_FLOCKFILE || !HAVE_FUNLOCKFILE || !HAVE_DECL_GETC_UNLOCKED # undef flockfile # undef funlockfile # define flockfile(x) ((void) 0) # define funlockfile(x) ((void) 0) # define getc_maybe_unlocked(fp) getc(fp) #else # define getc_maybe_unlocked(fp) getc_unlocked(fp) #endif /* Read up to (and including) a DELIMITER from FP into *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *N characters of space. It is realloc'ed as necessary. Returns the number of characters read (not including the null terminator), or -1 on error or EOF. */ ssize_t getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) { ssize_t result; size_t cur_len = 0; if (lineptr == NULL || n == NULL || fp == NULL) { errno = EINVAL; return -1; } flockfile (fp); if (*lineptr == NULL || *n == 0) { char *new_lineptr; *n = 120; new_lineptr = (char *) realloc (*lineptr, *n); if (new_lineptr == NULL) { result = -1; goto unlock_return; } *lineptr = new_lineptr; } for (;;) { int i; i = getc_maybe_unlocked (fp); if (i == EOF) { result = -1; break; } /* Make enough space for len+1 (for final NUL) bytes. */ if (cur_len + 1 >= *n) { size_t needed_max = SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX; size_t needed = 2 * *n + 1; /* Be generous. */ char *new_lineptr; if (needed_max < needed) needed = needed_max; if (cur_len + 1 >= needed) { result = -1; errno = EOVERFLOW; goto unlock_return; } new_lineptr = (char *) realloc (*lineptr, needed); if (new_lineptr == NULL) { result = -1; goto unlock_return; } *lineptr = new_lineptr; *n = needed; } (*lineptr)[cur_len] = i; cur_len++; if (i == delimiter) break; } (*lineptr)[cur_len] = '\0'; result = cur_len ? cur_len : result; unlock_return: funlockfile (fp); /* doesn't set errno */ return result; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/float.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000016734�12116370307�012145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A correct <float.h>. Copyright (C) 2007-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_FLOAT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FLOAT_H@ #ifndef _@GUARD_PREFIX@_FLOAT_H #define _@GUARD_PREFIX@_FLOAT_H /* 'long double' properties. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 /* Number of decimal digits that is sufficient for representing a number. */ # undef LDBL_DIG # define LDBL_DIG 18 /* x-1 where x is the smallest representable number > 1. */ # undef LDBL_EPSILON # define LDBL_EPSILON 1.0842021724855044340E-19L /* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) /* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ # undef LDBL_MAX_EXP # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN # define LDBL_MIN 3.3621031431120935063E-4932L /* Maximum representable finite number. */ # undef LDBL_MAX # define LDBL_MAX 1.1897314953572317650E+4932L /* Minimum e such that 10^e is in the range of normalized numbers. */ # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP (-4931) /* Maximum e such that 10^e is in the range of representable finite numbers. */ # undef LDBL_MAX_10_EXP # define LDBL_MAX_10_EXP 4932 #endif /* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of precision in the compiler but 64 bits of precision at runtime. See <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>. */ #if defined __i386__ && defined __FreeBSD__ /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 /* Number of decimal digits that is sufficient for representing a number. */ # undef LDBL_DIG # define LDBL_DIG 18 /* x-1 where x is the smallest representable number > 1. */ # undef LDBL_EPSILON # define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */ /* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) /* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ # undef LDBL_MAX_EXP # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN # define LDBL_MIN 3.3621031431120935E-4932L /* = 0x1p-16382L */ /* Maximum representable finite number. */ # undef LDBL_MAX /* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }. But the largest literal that GCC allows us to write is 0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }. So, define it like this through a reference to an external variable const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }; extern const long double LDBL_MAX; Unfortunately, this is not a constant expression. */ union gl_long_double_union { struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd; long double ld; }; extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) /* Minimum e such that 10^e is in the range of normalized numbers. */ # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP (-4931) /* Maximum e such that 10^e is in the range of representable finite numbers. */ # undef LDBL_MAX_10_EXP # define LDBL_MAX_10_EXP 4932 #endif /* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are wrong. On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong. */ #if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP DBL_MIN_10_EXP # undef LDBL_MIN # define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */ #endif #if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__ # undef LDBL_MAX /* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }. It is not easy to define: #define LDBL_MAX 1.79769313486231580793728971405302307166e308L is too small, whereas #define LDBL_MAX 1.79769313486231580793728971405302307167e308L is too large. Apparently a bug in GCC decimal-to-binary conversion. Also, I can't get values larger than #define LDBL63 ((long double) (1ULL << 63)) #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL) which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }. So, define it like this through a reference to an external variable const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL }; extern const long double LDBL_MAX; or through a pointer cast #define LDBL_MAX \ (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL }) Unfortunately, this is not a constant expression, and the latter expression does not work well when GCC is optimizing.. */ union gl_long_double_union { struct { double hi; double lo; } dd; long double ld; }; extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) #endif /* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong. On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON are wrong. */ #if defined __sgi && (LDBL_MANT_DIG >= 106) # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 106 # if defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP DBL_MIN_10_EXP # undef LDBL_MIN # define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */ # undef LDBL_EPSILON # define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */ # endif #endif #if @REPLACE_ITOLD@ /* Pull in a function that fixes the 'int' to 'long double' conversion of glibc 2.7. */ extern # ifdef __cplusplus "C" # endif void _Qp_itoq (long double *, int); static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq; #endif #endif /* _@GUARD_PREFIX@_FLOAT_H */ #endif /* _@GUARD_PREFIX@_FLOAT_H */ ������������������������������������wdiff-1.2.1/lib/wctype-h.c��������������������������������������������������������������������������0000644�0000000�0000000�00000000233�12116370307�012151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Normally this would be wctype.c, but that name's already taken. */ #include <config.h> #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE #include "wctype.h" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/stat.c������������������������������������������������������������������������������0000644�0000000�0000000�00000010666�12116370307�011377� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around platform bugs in stat. Copyright (C) 2009-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ /* written by Eric Blake */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_stat doesn't recurse to rpl_stat. */ #define __need_system_sys_stat_h #include <config.h> /* Get the original definition of stat. It might be defined as a macro. */ #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if _GL_WINDOWS_64_BIT_ST_SIZE # undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define stat _stati64 # define REPLACE_FUNC_STAT_DIR 1 # undef REPLACE_FUNC_STAT_FILE # elif REPLACE_FUNC_STAT_FILE /* mingw64 has a broken stat() function, based on _stat(), in libmingwex.a. Bypass it. */ # define stat _stat # define REPLACE_FUNC_STAT_DIR 1 # undef REPLACE_FUNC_STAT_FILE # endif #endif static int orig_stat (const char *filename, struct stat *buf) { return stat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ #include "sys/stat.h" #include <errno.h> #include <limits.h> #include <stdbool.h> #include <string.h> #include "dosname.h" #include "verify.h" #if REPLACE_FUNC_STAT_DIR # include "pathmax.h" /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also have a constant PATH_MAX. */ # ifndef PATH_MAX # error "Please port this replacement to your platform" # endif #endif /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But at least this implementation provides the ability to emulate fchdir correctly. */ int rpl_stat (char const *name, struct stat *st) { int result = orig_stat (name, st); #if REPLACE_FUNC_STAT_FILE /* Solaris 9 mistakenly succeeds when given a non-directory with a trailing slash. */ if (result == 0 && !S_ISDIR (st->st_mode)) { size_t len = strlen (name); if (ISSLASH (name[len - 1])) { errno = ENOTDIR; return -1; } } #endif /* REPLACE_FUNC_STAT_FILE */ #if REPLACE_FUNC_STAT_DIR if (result == -1 && errno == ENOENT) { /* Due to mingw's oddities, there are some directories (like c:\) where stat() only succeeds with a trailing slash, and other directories (like c:\windows) where stat() only succeeds without a trailing slash. But we want the two to be synonymous, since chdir() manages either style. Likewise, Mingw also reports ENOENT for names longer than PATH_MAX, when we want ENAMETOOLONG, and for stat("file/"), when we want ENOTDIR. Fortunately, mingw PATH_MAX is small enough for stack allocation. */ char fixed_name[PATH_MAX + 1] = {0}; size_t len = strlen (name); bool check_dir = false; verify (PATH_MAX <= 4096); if (PATH_MAX <= len) errno = ENAMETOOLONG; else if (len) { strcpy (fixed_name, name); if (ISSLASH (fixed_name[len - 1])) { check_dir = true; while (len && ISSLASH (fixed_name[len - 1])) fixed_name[--len] = '\0'; if (!len) fixed_name[0] = '/'; } else fixed_name[len++] = '/'; result = orig_stat (fixed_name, st); if (result == 0 && check_dir && !S_ISDIR (st->st_mode)) { result = -1; errno = ENOTDIR; } } } #endif /* REPLACE_FUNC_STAT_DIR */ return result; } ��������������������������������������������������������������������������wdiff-1.2.1/lib/stdbool.in.h������������������������������������������������������������������������0000644�0000000�0000000�00000011772�12116370307�012503� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc. Written by Bruno Haible <haible@clisp.cons.org>, 2001. 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 3, 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, see <http://www.gnu.org/licenses/>. */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 <stdbool.h> for platforms that lack it. */ /* Usage suggestions: Programs that use <stdbool.h> should be aware of some limitations and standards compliance issues. Standards compliance: - <stdbool.h> must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - <stdbool.h> must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include <OS.h> /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if <stdbool.h> was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ ������wdiff-1.2.1/lib/localeconv.c������������������������������������������������������������������������0000644�0000000�0000000�00000006562�12116370307�012551� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Query locale dependent information for formatting numbers. Copyright (C) 2012-2013 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <locale.h> #if HAVE_STRUCT_LCONV_DECIMAL_POINT /* Override for platforms where 'struct lconv' lacks the int_p_*, int_n_* members. */ struct lconv * localeconv (void) { static struct lconv result; # undef lconv # undef localeconv struct lconv *sys_result = localeconv (); result.decimal_point = sys_result->decimal_point; result.thousands_sep = sys_result->thousands_sep; result.grouping = sys_result->grouping; result.mon_decimal_point = sys_result->mon_decimal_point; result.mon_thousands_sep = sys_result->mon_thousands_sep; result.mon_grouping = sys_result->mon_grouping; result.positive_sign = sys_result->positive_sign; result.negative_sign = sys_result->negative_sign; result.currency_symbol = sys_result->currency_symbol; result.frac_digits = sys_result->frac_digits; result.p_cs_precedes = sys_result->p_cs_precedes; result.p_sign_posn = sys_result->p_sign_posn; result.p_sep_by_space = sys_result->p_sep_by_space; result.n_cs_precedes = sys_result->n_cs_precedes; result.n_sign_posn = sys_result->n_sign_posn; result.n_sep_by_space = sys_result->n_sep_by_space; result.int_curr_symbol = sys_result->int_curr_symbol; result.int_frac_digits = sys_result->int_frac_digits; result.int_p_cs_precedes = sys_result->p_cs_precedes; result.int_p_sign_posn = sys_result->p_sign_posn; result.int_p_sep_by_space = sys_result->p_sep_by_space; result.int_n_cs_precedes = sys_result->n_cs_precedes; result.int_n_sign_posn = sys_result->n_sign_posn; result.int_n_sep_by_space = sys_result->n_sep_by_space; return &result; } #else /* Override for platforms where 'struct lconv' is a dummy. */ # include <limits.h> struct lconv * localeconv (void) { static /*const*/ struct lconv result = { /* decimal_point */ ".", /* thousands_sep */ "", /* grouping */ "", /* mon_decimal_point */ "", /* mon_thousands_sep */ "", /* mon_grouping */ "", /* positive_sign */ "", /* negative_sign */ "", /* currency_symbol */ "", /* frac_digits */ CHAR_MAX, /* p_cs_precedes */ CHAR_MAX, /* p_sign_posn */ CHAR_MAX, /* p_sep_by_space */ CHAR_MAX, /* n_cs_precedes */ CHAR_MAX, /* n_sign_posn */ CHAR_MAX, /* n_sep_by_space */ CHAR_MAX, /* int_curr_symbol */ "", /* int_frac_digits */ CHAR_MAX, /* int_p_cs_precedes */ CHAR_MAX, /* int_p_sign_posn */ CHAR_MAX, /* int_p_sep_by_space */ CHAR_MAX, /* int_n_cs_precedes */ CHAR_MAX, /* int_n_sign_posn */ CHAR_MAX, /* int_n_sep_by_space */ CHAR_MAX }; return &result; } #endif ����������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/lib/setenv.c����������������������������������������������������������������������������0000644�0000000�0000000�00000025026�12116370307�011724� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 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, see <http://www.gnu.org/licenses/>. */ #if !_LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ # define _GL_ARG_NONNULL(params) # define _GL_USE_STDLIB_ALLOC 1 # include <config.h> #endif #include <alloca.h> /* Specification. */ #include <stdlib.h> #include <errno.h> #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include <string.h> #if _LIBC || HAVE_UNISTD_H # include <unistd.h> #endif #if !_LIBC # include "malloca.h" #endif #if _LIBC || !HAVE_SETENV #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include <bits/libc-lock.h> __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define setenv __setenv # define clearenv __clearenv # define tfind __tfind # define tsearch __tsearch #endif /* In the GNU C library implementation we try to be more clever and allow arbitrarily many changes of the environment given that the used values are from a small set. Outside glibc this will eat up all memory after a while. */ #if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ && defined __GNUC__) # define USE_TSEARCH 1 # include <search.h> typedef int (*compar_fn_t) (const void *, const void *); /* This is a pointer to the root of the search tree with the known values. */ static void *known_values; # define KNOWN_VALUE(Str) \ ({ \ void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ value != NULL ? *(char **) value : NULL; \ }) # define STORE_VALUE(Str) \ tsearch (Str, &known_values, (compar_fn_t) strcmp) #else # undef USE_TSEARCH # define KNOWN_VALUE(Str) NULL # define STORE_VALUE(Str) do { } while (0) #endif /* If this variable is not a null pointer we allocated the current environment. */ static char **last_environ; /* This function is used by 'setenv' and 'putenv'. The difference between the two functions is that for the former must create a new string which is then placed in the environment, while the argument of 'putenv' must be used directly. This is all complicated by the fact that we try to reuse values once generated for a 'setenv' call since we can never free the strings. */ int __add_to_environ (const char *name, const char *value, const char *combined, int replace) { char **ep; size_t size; const size_t namelen = strlen (name); const size_t vallen = value != NULL ? strlen (value) + 1 : 0; LOCK; /* We have to get the pointer now that we have the lock and not earlier since another thread might have created a new environment. */ ep = __environ; size = 0; if (ep != NULL) { for (; *ep != NULL; ++ep) if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') break; else ++size; } if (ep == NULL || *ep == NULL) { char **new_environ; #ifdef USE_TSEARCH char *new_value; #endif /* We allocated this space; we can extend it. */ new_environ = (char **) (last_environ == NULL ? malloc ((size + 2) * sizeof (char *)) : realloc (last_environ, (size + 2) * sizeof (char *))); if (new_environ == NULL) { /* It's easier to set errno to ENOMEM than to rely on the 'malloc-posix' and 'realloc-posix' gnulib modules. */ __set_errno (ENOMEM); UNLOCK; return -1; } /* If the whole entry is given add it. */ if (combined != NULL) /* We must not add the string to the search tree since it belongs to the user. */ new_environ[size] = (char *) combined; else { /* See whether the value is already known. */ #ifdef USE_TSEARCH # ifdef _LIBC new_value = (char *) alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = (char *) malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif new_environ[size] = KNOWN_VALUE (new_value); if (new_environ[size] == NULL) #endif { new_environ[size] = (char *) malloc (namelen + 1 + vallen); if (new_environ[size] == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (new_environ[size], new_value, namelen + 1 + vallen); #else memcpy (new_environ[size], name, namelen); new_environ[size][namelen] = '='; memcpy (&new_environ[size][namelen + 1], value, vallen); #endif /* And save the value now. We cannot do this when we remove the string since then we cannot decide whether it is a user string or not. */ STORE_VALUE (new_environ[size]); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } if (__environ != last_environ) memcpy ((char *) new_environ, (char *) __environ, size * sizeof (char *)); new_environ[size + 1] = NULL; last_environ = __environ = new_environ; } else if (replace) { char *np; /* Use the user string if given. */ if (combined != NULL) np = (char *) combined; else { #ifdef USE_TSEARCH char *new_value; # ifdef _LIBC new_value = alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif np = KNOWN_VALUE (new_value); if (np == NULL) #endif { np = (char *) malloc (namelen + 1 + vallen); if (np == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (np, new_value, namelen + 1 + vallen); #else memcpy (np, name, namelen); np[namelen] = '='; memcpy (&np[namelen + 1], value, vallen); #endif /* And remember the value. */ STORE_VALUE (np); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } *ep = np; } UNLOCK; return 0; } int setenv (const char *name, const char *value, int replace) { if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } return __add_to_environ (name, value, NULL, replace); } /* The 'clearenv' was planned to be added to POSIX.1 but probably never made it. Nevertheless the POSIX.9 standard (POSIX bindings for Fortran 77) requires this function. */ int clearenv (void) { LOCK; if (__environ == last_environ && __environ != NULL) { /* We allocated this environment so we can free it. */ free (__environ); last_environ = NULL; } /* Clear the environment pointer removes the whole environment. */ __environ = NULL; UNLOCK; return 0; } #ifdef _LIBC static void free_mem (void) { /* Remove all traces. */ clearenv (); /* Now remove the search tree. */ __tdestroy (known_values, free); known_values = NULL; } text_set_element (__libc_subfreeres, free_mem); # undef setenv # undef clearenv weak_alias (__setenv, setenv) weak_alias (__clearenv, clearenv) #endif #endif /* _LIBC || !HAVE_SETENV */ /* The rest of this file is called into use when replacing an existing but buggy setenv. Known bugs include failure to diagnose invalid name, and consuming a leading '=' from value. */ #if HAVE_SETENV # undef setenv # if !HAVE_DECL_SETENV extern int setenv (const char *, const char *, int); # endif # define STREQ(a, b) (strcmp (a, b) == 0) int rpl_setenv (const char *name, const char *value, int replace) { int result; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } /* Call the real setenv even if replace is 0, in case implementation has underlying data to update, such as when environ changes. */ result = setenv (name, value, replace); if (result == 0 && replace && *value == '=') { char *tmp = getenv (name); if (!STREQ (tmp, value)) { int saved_errno; size_t len = strlen (value); tmp = malloca (len + 2); /* Since leading '=' is eaten, double it up. */ *tmp = '='; memcpy (tmp + 1, value, len + 1); result = setenv (name, tmp, replace); saved_errno = errno; freea (tmp); errno = saved_errno; } } return result; } #endif /* HAVE_SETENV */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/BACKLOG���������������������������������������������������������������������������������0000644�0000000�0000000�00000020443�11744500044�010470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Summary of pending email for GNU wdiff 0.5.4. # Last updated on 1999-07-05. # This file summarises almost all pending email pertaining to this package. # I think users deserve to know where maintenance stands for what they use. # When I will process a report from you, you may reasonably expect some # feedback from me. I understand it may be frustrating to see a release # made without your suggestion or correction in it, I apologise for this: # I have to draw a line at times, and still make releases once in a while. # When diffs have been provided, an asterisk sometimes replaces the initial # dot. All dates are written according to ISO 8601, as far as possible. ../rmail/agrep 1. 1992-02-13 Charlie Reiman: Re: Anyone here order an agrep? 2. 1992-02-20 Larry McVoy: Re: Anyone here order an agrep? 3. 1992-03-12 aaron konstam: Re: grep -vs- egrep -vs- fgrep (Was: Re: thanks) 4. 1992-04-03 Jeffrey B. McGough: agrep 2.01 stdin exitcode bug (FIX) 5. 1992-11-28 Nelson H. F. Beebe: Re: Errata in wdiff.texi 0.03 6. 1993-05-16 Udi Manber: Re: book review... 7. 1993-11-08 Simon Marshall: (none) 8. 1994-05-10 mailhot@IRO.UMontreal.CA: Annonce glimpse-1.0 (fwd) ../rmail/changebars 1. 1992-08-16 Francois Pinard: Changebars [was: Word difference finder (1/5)] 2. 1992-08-23 Joe Wells: Changebars [was: Re: comparison with spiff] 3. 1993-01-04 Eric Backus: wdiff-0.04 4. 1993-01-05 Francois Pinard: wdiff-0.04 ../rmail/dense-format 1. 1993-01-05 Francois Pinard: wdiff under Emacs 19 2. 1993-01-05 mcgill-vision!lysator.liu.se!ceder: wdiff under Emacs 19 ../rmail/diffing 1. 1998-11-18 Paul Eggert: Re: GNU diff student maintenance ../rmail/documentation 1. 1994-11-12 Francois Pinard: Re: wdiff patch 2. 1994-11-28 Francois Pinard: Re: GNUifying unify.[1c] (BIS) [was: unidiffs v 3. 1997-02-25 Franois Pinard: Mini-problem with xxgdb 4. 1997-02-25 Burchard Steinbild: Re: Mini-problem with xxgdb 5. 1997-02-26 arnold@skeeve.atl.ga.us: Re: Still playing with mdiff 6. 1997-02-26 Franois Pinard: Re: Still playing with mdiff 7. 1997-02-26 arnold@skeeve.atl.ga.us: Re: Still playing with mdiff 8. 1997-03-03 Franois Pinard: Re: A patch to po-mode.el for XEmacs 9. 1997-03-04 Franois Pinard: Detecting repetitions 10. 1998-10-14 Franois Pinard: Re: thanks! 11. 1998-10-14 Franois Pinard: Re: thanks! ../rmail/ignoring 1. 1992-12-23 Thorsten Ohl: wdiff *is* useful! 2. 1993-08-29 Lawrence R. Dodd: wdiff, version 0.04 3. 1995-06-19 Gerhard Bosch: about wdiff 4. 1994-04-22 gildea@x.org: wdiff with comment chars, stdin 5. 1994-04-22 Francois Pinard: Re: wdiff with comment chars, stdin 6. 1994-05-09 Francois Pinard: Re: wdiff and hyphens 7. 1994-05-10 Francois Pinard: Re: wdiff and hyphens 8. 1994-05-09 kb@cs.umb.edu: wdiff and hyphens ../rmail/line-format 1. 1993-02-26 Bob Friesenhahn: Wdiff suggestion 2. 1993-02-27 Francois Pinard: Wdiff suggestion 3. 1993-03-01 Bob Friesenhahn: Re: Wdiff suggestion ../rmail/line-markers 1. 1995-01-09 Paul Lew: RE: cvs diff question 2* 1995-01-10 Paul Lew: RE: cvs diff question 3. 1994-11-12 Francois Pinard: Re: wdiff patch 4* 1994-11-12 Paul Lew: wdiff patch 5. 1993-12-26 Francois Pinard: error in wdiff 0.04 patch I sent you yesterday 6* 1993-01-12 Paul Lew: modification to wdiff version 0.04 ../rmail/list-admin 1. 1998-11-14 Mail Delivery Subsystem: Returned mail: Host unknown (Name serve 2. 1998-11-16 Mail Delivery Subsystem: Returned mail: Host unknown (Name serve 3. 1998-11-19 Mail Delivery Subsystem: Returned mail: Host unknown (Name serve ../rmail/list-announce 1. 1994-11-01 pinard@IRO.UMontreal.CA: Prerelease: GNU wdiff 0.4.1 2. 1994-11-06 pinard@iro.umontreal.ca: Release: GNU wdiff 0.5 3. 1994-12-01 pinard@IRO.UMontreal.CA: Prerelease: GNU wdiff 0.5.1 4. 1996-12-29 Majordomo@IRO.UMontreal.CA: Majordomo results 5. 1997-02-12 Franois Pinard: Prerelease: GNU wdiff 0.5.2 6. 1997-03-26 Franois Pinard: Disappearance of wdiff as a separate package 7. 1997-03-26 Paul Eggert: Re: Disappearance of wdiff as a separate package 8. 1997-03-27 Franois Pinard: Merging GNU wdiff into GNU diff utilities 9. 1997-05-16 Franois Pinard: Re: July 1997 GNU's Bulletin: @item @code{wdiff 10. 1998-01-09 Franois Pinard: Re: Patch for wdiff 0.5 11. 1998-02-07 Franois Pinard: Re: bug in wdiff 0.5 12. 1998-10-07 Franois Pinard: Re: request for wdiff 0.5.2 13. 1998-11-16 Franois Pinard: Prerelease: Free wdiff 0.5e 14. 1998-11-14 Franois Pinard: Prerelease: Free wdiff 0.5d 15. 1998-11-18 Franois Pinard: Prerelease: Free wdiff 0.5f 16. 1998-11-18 Franois Pinard: Prerelease: Free wdiff 0.5f ../rmail/options 1. 1993-11-14 Dave Yost: diff ../rmail/recursive 1. 1994-07-19 m1nxb00@FRB.GOV: wdiff: kudos and gripe. 2. 1994-07-19 Francois Pinard: Re: wdiff: kudos and gripe. ../rmail/reported-bugs 1. 1997-02-11 Achim Stahlberger: "Feature" of wdiff 2. 1997-02-13 Franois Pinard: wdiff --version non =?ISO-8859-1?Q?r=E9gulier?= 3. 1997-02-12 Paul Fox: Re: Prerelease: GNU wdiff 0.5.2 4. 1997-02-13 Franois Pinard: Re: Prerelease: GNU wdiff 0.5.2 5. 1997-02-13 Paul Fox: Re: Prerelease: GNU wdiff 0.5.2 6. 1997-02-14 K. Berry: Re: wdiff --copyright 7. 1997-02-13 Kaveh R. Ghazi: wdiff-0.5.2 report ... 8. 1997-02-14 Franois Pinard: Re: wdiff --copyright 9. 1997-02-20 Santiago Vila Doncel: wdiff-0.5.2.es.po.gz 10. 1997-02-04 Ulrich Drepper: Re: make-3.75.de.po 11. 1997-02-18 Pierre-Yves FOUCOU: Essai: Re: New PO file for `wdiff-0.5.2' 12. 1997-02-20 Santiago Vila Doncel: wdiff-0.5.2.es.po.gz 13. 1998-01-03 Eric Battersby: bug in wdiff 0.5 14. 1998-01-03 Franois Pinard: Re: bug in wdiff 0.5 15. 1998-01-09 bob@hadron.demon.co.uk: Patch for wdiff 0.5 16. 1998-06-17 Erick Branderhorst: wdiff-0.5c has no rx.h 17. 1998-06-17 Erick Branderhorst: wdiff-0.5c has no rx.h 18. 1998-06-28 Franois Pinard: Re: wdiff-0.5c has no rx.h ../rmail/spiff 1. 1992-08-24 Francois Pinard: What spiff does 2. 1992-08-25 Richard Stallman: What spiff does 3. 1992-08-26 Richard Stallman: What spiff does 4. 1997-03-27 Nelson H. F. Beebe: Re: wdiff/mdiff/diff plans 5. 1997-03-27 Franois Pinard: Re: wdiff/mdiff/diff plans ../rmail/tcl-tk 1. 1992-12-30 Bob Bagwill: Re: wdiff enhancement request 2. 1993-05-07 Bob Bagwill: Re: wdiff later than 0.04? 3. 1999-04-12 Ora-News: O'Reilly Releases "TCL/TK In a Nutshell" ../rmail/unidiffs 1. 1992-11-22 mcgill-vision!lysator.liu.se!ceder: wdiff - something like unidi 2* 1992-11-23 mcgill-vision!lysator.liu.se!ceder: wdiff - something like unid 3. 1992-11-24 mcgill-vision!lysator.liu.se!ceder: wdiff - something like unidi 4. 1992-12-24 Francois Pinard: Announce: wdiff release 0.04 5. 1992-12-24 Francois Pinard: Announce: wdiff release 0.04 6. 1993-05-28 Karl Berry: wdiff default behavior 7. 1993-08-25 David J. MacKenzie: wdiff and context 8. 1993-08-26 Francois Pinard: wdiff and context ../rmail/word-nature 1. 1992-12-23 Thorsten Ohl: wdiff *is* useful! 2. 1993-02-24 Bob Friesenhahn: Wdiff suggestion 3. 1993-02-27 Francois Pinard: Wdiff suggestion 4. 1993-03-01 Bob Friesenhahn: Re: Wdiff suggestion 5. 1993-07-28 Robert Forsman: wdiff 6. 1993-08-20 Eugene Earlie HLO2-2/H13 dtn 225-6334 508-568-6334: wdiff 7. 1993-08-20 Francois Pinard: wdiff 8. 1998-02-12 Vladimir Alexiev: word boundaries in wdiff 0.5 9. 1998-02-12 Franois Pinard: Re: word boundaries in wdiff 0.5 10. 1998-02-12 Vladimir Alexiev: Re: word boundaries in wdiff 0.5 11. 1998-04-14 Akim Demaille: wdiff & Re: A word on --enable-maintainer-mode 12. 1998-04-14 Franois Pinard: Re: wdiff & Re: A word on --enable-maintainer-m 13. 1998-04-14 Akim Demaille: Re: wdiff & Re: A word on --enable-maintainer-mod 14. 1998-05-26 Vladimir Alexiev: patch for wdiff: ignore punctuation 15. 1998-04-14 Akim Demaille: Re: wdiff & Re: A word on --enable-maintainer-mod ../admin/bug-akim/RMAIL 1. 1998-11-20 Akim Demaille: mdiff 0.5f dumps core ../admin/gary-fritz/RMAIL 1. 1995-05-02 Gary Fritz: wdiff question 2. 1995-05-02 Franois Pinard: Re: wdiff question 3. 1995-05-03 Gary Fritz: Re: wdiff question 4. 1995-05-03 Gary Fritz: Re: wdiff question 5. 1995-05-03 Franois Pinard: Re: wdiff question 6. 1995-05-04 Gary Fritz: Son of wdiff 7. 1995-05-04 Franois Pinard: Re: Son of wdiff 8. 1995-05-04 Gary Fritz: Re: Son of wdiff 9. 1995-05-04 Franois Pinard: Re: Son of wdiff 10. 1995-05-04 Gary Fritz: Re: Son of wdiff ../admin/os2/RMAIL 1. 1994-11-16 Kai Uwe Rommel: Re: OS/2 patch for recode 3.4 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/NEWS������������������������������������������������������������������������������������0000644�0000000�0000000�00000013073�12116371561�010207� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������GNU wdiff NEWS - User visible changes. -*- outline -*- Copyright (C) 1992, 1994, 1997, 1998, 1999, 2007, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. * Version 1.2.1 - March 2013, by Martin von Gagern * Added Esperanto translation. * Updated Czech, German, Spanish, Finnish, Galician, Italian, Dutch, Polish, Slovenian, Serbian, Swedish, Ukrainian and Vietnamese translations. * Updated gnulib. * Recreated build system using recent versions of autotools. This will avoid security issues in "make distcheck" target. (CVE-2012-3386) * Version 1.2.0 - May 2012, by Martin von Gagern * Unofficial beta release for translators only. * Includes the proper fix for man page formatting. (Debian bug #669340) * Version 1.1.1 - May 2012, by Martin von Gagern * Added Serbian translation. * Updated Danish and Vietnamese translations. * Work around a bug in the formatting of the man page. (Debian bug #669340) * Version 1.1.0 - November 2011, by Martin von Gagern * Updated Czech, German, Spanish, Finnish, Dutch, Polish, Slovenian, Swedish and Ukrainian translations. * Fix several issue with the use of screen in the test suite. * Allow WDIFF_PAGER to override PAGER environment variable. * Do not autodetect less, so we don't auto-enable less-mode. This should improve things for UTF8 text. (Savannah bug #34224) Less-mode is considered deprecated, as it isn't fit for multi-byte encodings. Nevertheless it can still be enabled on the command line. * Version 1.0.2 - September 2011, by Martin von Gagern * Unofficial beta release * Introduces use of ngettext to allow correct handling of plural forms * Version 1.0.1 - September 2011, by Martin von Gagern * Updated Polish, Ukrainian, Slovenian, Dutch, Finnish, Swedish and Czech translations * Version 1.0.0 - September 2011, by Martin von Gagern * Changed major version to 1 to reflect maturity of the package * Updated Dutch, French, Danish and Slovenian translations * Added Ukrainian translation * Improved error reporting in case a child process has problems * Added tests to the test suite * Updated gnulib * Version 0.6.5 - December 2010, by Martin von Gagern * Never initialize or deinitialize terminals, as we do no cursor movement * Deprecated --no-init-term (-K) command line option * Avoid relative path in man pages * Updated gnulib, might be particularly important for uClibc users * Version 0.6.4 - November 2010, by Martin von Gagern * Updated Catalan translations * Updated gnulib * Version 0.6.3 - June 2010, by Martin von Gagern * Updated Italian and Swedish translations * Updated gnulib * Version 0.6.2 - May 2010, by Martin von Gagern * Fix shell syntax in configure script * Updated gnulib and gettext, the latter to 0.18 * Updated Dutch translation * Fixed a number of portability issues reported by maint.mk syntax checks * Version 0.6.1 - April 2010, by Martin von Gagern * Introduce --with-default-pager=PAGER configure switch. * Fix missing newline in info dir entry list. * Version 0.6.0 - March 2010, by Martin von Gagern First official release in a long time. Everything since 0.5 was inofficial. * `wdiff -d' to read input from single unified diff, perhaps stdin. * Updated texinfo documentation taking experimental switch into account. * Experimental programs (mdiff & friends) and a configure switch --enable-experimental to control them. * Recent imports from gnulib, use of recent autotools. * Improved autodetection of termcap library like ncurses. * Reformatted translations, still a number of fuzzy translations. * Changed from CVS to bzr for source code version control. * Various bug fixes. See ChangeLog for a more exhaustive list. * Known bugs: this NEWS file here was outdated in the release tarball. * Version 0.5.4 - June 2007, by Denver Gingerich Integrated following changes from 0.5g (Francois Pinard, November 1998): * Messages from programs may be output in many natural languages. * Short `man' pages get installed for `mdiff', `unidiff' and `wdiff'. * The original man page for `wdiff' gets withdrawn, for legalistic reasons. * New `unify' converts context diffs to unidiffs or vice-versa. * New `mdiff' finds identical line clusters in one or more files. * A new `-K' option inhibits termcap initialization and termination. * Version 0.5.3 - June 2007, by Denver Gingerich No user-visible changes; see ChangeLog for details * Version 0.5 - November 1994, by Franc,ois Pinard * Option --ignore-case (-i) will fold case while comparing. * Filename "-", used once, means that file comes from standard input. * A few bugs, not all, have disappeared. * Version 0.04 - December 1992, by Franc,ois Pinard * Add -a for automatic pager call, disallow this by default. * Add -l for less-like overstriking. * Add -n to forbid wrapping of differences. * New cbars script for producing change bars. * man page for wdiff 0.04. Contributed and supported by contributor. * Version 0.03 - August 1992, by Franc,ois Pinard * Provide more useful exit codes. * Increase portability. * Version 0.02 - August 1992, by Franc,ois Pinard * Avoid calling pager if PAGER is in environment, but empty. * Correct disposition problems, and avoid useless overstrikes. * Add -s for statistics. * Version 0.01 - August 1992, by Franc,ois Pinard * Rename old -1234 into -wxyz for selecting strings. * Add new -123 resembling comm, delete -d. * Automatically pipe through `more' or `less' when writing to terminal. * Version 0.00 - August 1992, by Franc,ois Pinard * Initial release. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/GNUmakefile�����������������������������������������������������������������������������0000644�0000000�0000000�00000010735�12116370307�011561� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Having a separate GNUmakefile lets me 'include' the dynamically # generated rules created via cfg.mk (package-local configuration) # as well as maint.mk (generic maintainer rules). # This makefile is used only if you run GNU Make. # It is necessary if you want to build targets usually of interest # only to the maintainer. # Copyright (C) 2001, 2003, 2006-2013 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 3 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, see <http://www.gnu.org/licenses/>. # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. _gl-Makefile := $(wildcard [M]akefile) ifneq ($(_gl-Makefile),) # Make tar archive easier to reproduce. export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner # Allow the user to add to this in the Makefile. ALL_RECURSIVE_TARGETS = include Makefile # Some projects override e.g., _autoreconf here. -include $(srcdir)/cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include $(srcdir)/maint.mk # Ensure that $(VERSION) is up to date for dist-related targets, but not # for others: rerunning autoreconf and recompiling everything isn't cheap. _have-git-version-gen := \ $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes) ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) _is-dist-target ?= $(filter-out %clean, \ $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS))) _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) ifneq (,$(_is-dist-target)$(_is-install-target)) _curr-ver := $(shell cd $(srcdir) \ && $(_build-aux)/git-version-gen \ .tarball-version \ $(git-version-gen-tag-sed-script)) ifneq ($(_curr-ver),$(VERSION)) ifeq ($(_curr-ver),UNKNOWN) $(info WARNING: unable to verify if $(VERSION) is the correct version) else ifneq (,$(_is-install-target)) # GNU Coding Standards state that 'make install' should not cause # recompilation after 'make all'. But as long as changing the version # string alters config.h, the cost of having 'make all' always have an # up-to-date version is prohibitive. So, as a compromise, we merely # warn when installing a version string that is out of date; the user # should run 'autoreconf' (or something like 'make distcheck') to # fix the version, 'make all' to propagate it, then 'make install'. $(info WARNING: version string $(VERSION) is out of date;) $(info run '$(MAKE) _version' to fix it) else $(info INFO: running autoreconf for new version string: $(_curr-ver)) GNUmakefile: _version touch GNUmakefile endif endif endif endif endif .PHONY: _version _version: cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf) $(MAKE) $(AM_MAKEFLAGS) Makefile else .DEFAULT_GOAL := abort-due-to-no-makefile srcdir = . # The package can override .DEFAULT_GOAL to run actions like autoreconf. -include ./cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include ./maint.mk ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) $(MAKECMDGOALS): abort-due-to-no-makefile endif abort-due-to-no-makefile: @echo There seems to be no Makefile in this directory. 1>&2 @echo "You must run ./configure before running 'make'." 1>&2 @exit 1 endif # Tell version 3.79 and up of GNU make to not build goals in this # directory in parallel, in case someone tries to build multiple # targets, and one of them can cause a recursive target to be invoked. # Only set this if Automake doesn't provide it. AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) \ dist distcheck tags ctags ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS) ifneq ($(word 2, $(MAKECMDGOALS)), ) ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), ) .NOTPARALLEL: endif endif �����������������������������������wdiff-1.2.1/INSTALL���������������������������������������������������������������������������������0000644�0000000�0000000�00000036605�12075577011�010551� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. 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 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. Running `configure' might take a while. 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, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. 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. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. 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=c99 CFLAGS=-g 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 can use 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 `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer 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. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. 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', where PREFIX must be an absolute file name. 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. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= 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'. 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. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `<wchar.h>' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common 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). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--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. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. ���������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/AUTHORS���������������������������������������������������������������������������������0000644�0000000�0000000�00000001236�11744500575�010563� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. Authors of GNU wdiff. The following contributions warranted legal paper exchanges with the Free Software Foundation. Also see files ChangeLog and THANKS. DIFF Wayne Davison 1993-06-20 Disclaims diffcvt.c. WDIFF Francois Pinard (Canada 1949) 1993-01-15 Assigns wdiff. DIFFUTILS Denver Gingerich Canada, 1985 2007-06-25 Assigns wdiff. WDIFF Martin von Gagern Germany, 1981 2009-04-24 Assigns wdiff. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12116513227�010326� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000001446�11744500575�012317� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. info_TEXINFOS = wdiff.texi wdiff_TEXINFOS = flags.texi GENDOCS = $(top_srcdir)/build-aux/gendocs.sh # Convenience targets for manually switching build flags. # Note that configure will overwrite any changes made using these. .PHONY: experimental no-experimental experimental: sed -i 's/^@clear EXPERIMENTAL/@set EXPERIMENTAL/' flags.texi no-experimental: sed -i 's/^@set EXPERIMENTAL/@clear EXPERIMENTAL/' flags.texi # Generate online manual. .PHONY: manual manual: experimental $(GENDOCS) --email '$(PACKAGE_BUGREPORT)' \ '$(PACKAGE)' '$(PACKAGE_NAME) Manual' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000143305�12116513165�012322� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.13.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 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 = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/flags.texi.in $(wdiff_TEXINFOS) \ $(top_srcdir)/build-aux/mdate-sh $(srcdir)/version.texi \ $(srcdir)/stamp-vti $(top_srcdir)/build-aux/texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/getdelim.m4 \ $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/iswblank.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readlink.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/time_h.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/vasnprintf.m4 \ $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = flags.texi CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; am__v_DVIPS_1 = AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; am__v_MAKEINFO_1 = AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) am__v_INFOHTML_0 = @echo " INFOHTML" $@; am__v_INFOHTML_1 = AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; am__v_TEXI2DVI_1 = AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; am__v_TEXI2PDF_1 = AM_V_texinfo = $(am__v_texinfo_@AM_V@) am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) am__v_texinfo_0 = -q am__v_texinfo_1 = AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = INFO_DEPS = $(srcdir)/wdiff.info TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux DVIS = wdiff.dvi PDFS = wdiff.pdf PSS = wdiff.ps HTMLS = wdiff.html TEXINFOS = wdiff.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOM4TE = @AUTOM4TE@ AUTOMAKE = @AUTOMAKE@ AUTOTEST = @AUTOTEST@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ EXPERIMENTAL = @EXPERIMENTAL@ EXPERIMENTAL_MANS = @EXPERIMENTAL_MANS@ EXPERIMENTAL_PROGRAMS = @EXPERIMENTAL_PROGRAMS@ EXPERIMENTAL_TEXI = @EXPERIMENTAL_TEXI@ FLOAT_H = @FLOAT_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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 = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ info_TEXINFOS = wdiff.texi wdiff_TEXINFOS = flags.texi GENDOCS = $(top_srcdir)/build-aux/gendocs.sh all: all-am .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): flags.texi: $(top_builddir)/config.status $(srcdir)/flags.texi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ .texi.info: $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ $< .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ $< .texi.html: $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/wdiff.info: wdiff.texi $(srcdir)/version.texi $(wdiff_TEXINFOS) wdiff.dvi: wdiff.texi $(srcdir)/version.texi $(wdiff_TEXINFOS) wdiff.pdf: wdiff.texi $(srcdir)/version.texi $(wdiff_TEXINFOS) wdiff.html: wdiff.texi $(srcdir)/version.texi $(wdiff_TEXINFOS) $(srcdir)/version.texi: $(srcdir)/stamp-vti $(srcdir)/stamp-vti: wdiff.texi $(top_srcdir)/configure @(dir=.; test -f ./wdiff.texi || dir=$(srcdir); \ set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/wdiff.texi`; \ echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ echo "@set VERSION $(VERSION)") > vti.tmp @cmp -s vti.tmp $(srcdir)/version.texi \ || (echo "Updating $(srcdir)/version.texi"; \ cp vti.tmp $(srcdir)/version.texi) -@rm -f vti.tmp @cp $(srcdir)/version.texi $@ mostlyclean-vti: -rm -f vti.tmp maintainer-clean-vti: -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf wdiff.t2d wdiff.t2p clean-aminfo: -test -z "wdiff.dvi wdiff.pdf wdiff.ps wdiff.html" \ || rm -rf wdiff.dvi wdiff.pdf wdiff.ps wdiff.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) installdirs: for dir in "$(DESTDIR)$(infodir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-aminfo clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: $(DVIS) html: html-am html-am: $(HTMLS) info: info-am info-am: $(INFO_DEPS) install-data-am: install-info-am install-dvi: install-dvi-am install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-am install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-pdf: install-pdf-am install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-am install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-pdf-am uninstall-ps-am .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ cscopelist-am ctags-am dist-info distclean distclean-generic \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean \ mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-pdf-am uninstall-ps-am # Convenience targets for manually switching build flags. # Note that configure will overwrite any changes made using these. .PHONY: experimental no-experimental experimental: sed -i 's/^@clear EXPERIMENTAL/@set EXPERIMENTAL/' flags.texi no-experimental: sed -i 's/^@set EXPERIMENTAL/@clear EXPERIMENTAL/' flags.texi # Generate online manual. .PHONY: manual manual: experimental $(GENDOCS) --email '$(PACKAGE_BUGREPORT)' \ '$(PACKAGE)' '$(PACKAGE_NAME) Manual' # 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: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/stamp-vti���������������������������������������������������������������������������0000644�0000000�0000000�00000000136�12116513227�012115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@set UPDATED 8 March 2013 @set UPDATED-MONTH March 2013 @set EDITION 1.2.1 @set VERSION 1.2.1 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/version.texi������������������������������������������������������������������������0000644�0000000�0000000�00000000136�12116513227�012626� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@set UPDATED 8 March 2013 @set UPDATED-MONTH March 2013 @set EDITION 1.2.1 @set VERSION 1.2.1 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/wdiff.info��������������������������������������������������������������������������0000644�0000000�0000000�00000136235�12116513227�012234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is wdiff.info, produced by makeinfo version 4.13 from wdiff.texi. INFO-DIR-SECTION Text creation and manipulation START-INFO-DIR-ENTRY * Word differences: (wdiff). GNU wdiff and diff related tools. END-INFO-DIR-ENTRY INFO-DIR-SECTION Individual utilities START-INFO-DIR-ENTRY * wdiff: (wdiff)wdiff invocation. Word difference finder. * wdiff2: (wdiff)wdiff invocation. Word difference finder. * mdiff: (wdiff)mdiff invocation. Line cluster finder. * unify: (wdiff)unify invocation. Diff format converter. END-INFO-DIR-ENTRY This file documents the `wdiff' command, which compares two files, finding which words have been deleted or added to the first for getting the second. It also documents some other `diff' related tools. Copyright (C) 1992, 1994, 1997, 1998, 1999, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.  File: wdiff.info, Node: Top, Next: Overview, Up: (dir) GNU wdiff ********* These Info pages document `wdiff', a word difference finder, together with some other `diff' related tools. Note that some tools documented here are considered experimental and may not be part of every `wdiff' installation. *Note Experimental::. This is for release 1.2.1. * Menu: * Overview:: Overview * wdiff:: The word difference finder * mdiff:: The line cluster finder * unify:: The diff format converter * Compatibility:: How `mdiff' differs * Experimental:: About experimental programs --- The Detailed Node Listing --- The word difference finder * wdiff invocation:: Invoking `wdiff' * wdiff Examples:: Actual examples of `wdiff' usage The multi-difference finder * mdiff invocation:: Invoking `mdiff' * Efficiency:: Resource considerations and efficiency The diff format converter * unify invocation:: Invoking `unify' How `mdiff' differs * diff Compatibility:: Differences with `diff' * wdiff Compatibility:: Differences with `wdiff' Experimental programs * Experimental History:: History of the experimental programs  File: wdiff.info, Node: Overview, Next: wdiff, Prev: Top, Up: Top 1 Overview ********** `wdiff' is a front end to `diff' for comparing files on a word per word basis. It works by creating two temporary files, one word per line, and then executes `diff' on these files. It collects the `diff' output and uses it to produce a nicer display of word differences between the original files. `mdiff' studies one or more input files altogether, and discovers blocks of items which repeat at more than one place. Items may be lines, words, or units defined by user. When in word mode, `mdiff' compares two files, finding which words have been deleted or added to the first in order to create the second, which is useful when two texts differ only by a few words and paragraphs have been refilled. The program has many output formats and interacts well with terminals and pagers (notably with `less'). `unify' is able to convert context diffs to unidiff format, or the other way around. Some people just prefer one format and despise the other, it is a religious issue. This program brings peace back to Earth. `wdiff2' is intended as a replacement to `wdiff'. It aims at supporting the same set of options, but uses `mdiff' instead of `diff' as its backend. `wdiff', `mdiff' and `wdiff2' were written by François Pinard, while `unify' has been contributed by Wayne Davison. Please report bugs to <wdiff-bugs@gnu.org>. Include the version number, which you can find by running the program with `--version'. Please include in your message sufficient input to reproduce what you got, the output you indeed expected, and careful explanations about the nature of the problem.  File: wdiff.info, Node: wdiff, Next: mdiff, Prev: Overview, Up: Top 2 The word difference finder **************************** There are actually two programs for comparing files on a word per word basis. `wdiff' is a front-end to `diff' as found in the GNU diffutils package. It is quite mature. Its planned successor, `wdiff2', is a front end to `mdiff', and as experimental as `mdiff' itself. *Note Experimental::. A word is anything between whitespace. This is useful for comparing two texts in which a few words have been changed and for which paragraphs have been refilled. * Menu: * wdiff invocation:: Invoking `wdiff' * wdiff Examples:: Actual examples of `wdiff' usage  File: wdiff.info, Node: wdiff invocation, Next: wdiff Examples, Up: wdiff 2.1 Invoking `wdiff' ==================== The programs `wdiff' and `wdiff2' aim at providing the same set of command line options. They are described below. *Note wdiff Compatibility::, for a list of differences. wdiff OPTION ... OLD_FILE NEW_FILE wdiff OPTION ... -d [DIFF_FILE] `wdiff' compares files OLD_FILE and NEW_FILE and produces an annotated copy of NEW_FILE on standard output. The empty string or the string `-' denotes standard input, but standard input cannot be used twice in the same invocation. The complete path of a file should be given, a directory name is not accepted. `wdiff' will exit with a status of 0 if no differences were found, a status of 1 if any differences were found, or a status of 2 for any error. In this documentation, "deleted text" refers to text in OLD_FILE which is not in NEW_FILE, while "inserted text" refers to text on NEW_FILE which is not in OLD_FILE. `wdiff' supports the following command line options: `--help' `-h' Print an informative help message describing the options. `--version' `-v' Print the version number of `wdiff' on the standard error output. `--no-deleted' `-1' Avoid producing deleted words on the output. If neither `-1' or `-2' is selected, the original right margin may be exceeded for some lines. `--no-inserted' `-2' Avoid producing inserted words on the output. When this flag is given, the whitespace in the output is taken from OLD_FILE instead of NEW_FILE. If neither `-1' or `-2' is selected, the original right margin may be exceeded for some lines. `--no-common' `-3' Avoid producing common words on the output. When this option is not selected, common words and whitespace are taken from NEW_FILE, unless option `-2' is given, in which case common words and whitespace are rather taken from OLD_FILE. When selected, differences are separated from one another by lines of dashes. Moreover, if this option is selected at the same time as `-1' or `-2', then none of the output will have any emphasis, i.e. no bold or underlining. Finally, if this option is not selected, but both `-1' and `-2' are, then sections of common words between differences are segregated by lines of dashes. `--ignore-case' `-i' Do not consider case difference while comparing words. Each lower case letter is seen as identical to its upper case equivalent for the purpose of deciding if two words are the same. `--statistics' `-s' On completion, for each file, the total number of words, the number of common words between the files, the number of words deleted or inserted and the number of words that have changed is output. (A changed word is one that has been replaced or is part of a replacement.) Except for the total number of words, all of the numbers are followed by a percentage relative to the total number of words in the file. `--auto-pager' `-a' Some initiatives which were previously automatically taken in previous versions of `wdiff' are now put under the control of this option. By using it, a pager is interposed whenever the `wdiff' output is directed to the user's terminal. Without this option, no pager will be called, the user is then responsible for explicitly piping `wdiff' output into a pager, if required. The pager is selected by the value of the PAGER environment variable when `wdiff' is run. If PAGER is not defined at run time, then a default pager, selected at installation time, will be used instead. A defined but empty value of PAGER means no pager at all. When a pager is interposed through the use of this option, one of the options `-l' or `-t' is also selected, depending on whether the string `less' appears in the pager's name or not. It is often useful to define `wdiff' as an alias for `wdiff -a'. However, this _hides_ the normal `wdiff' behaviour. The default behaviour may be restored simply by piping the output from `wdiff' through `cat'. This dissociates the output from the user's terminal. `--printer' `-p' Use over-striking to emphasize parts of the output. Each character of the deleted text is underlined by writing an underscore `_' first, then a backspace and then the letter to be underlined. Each character of the inserted text is emboldened by writing it twice, with a backspace in between. This option is not selected by default. `--less-mode' `-l' Use over-striking to emphasize parts of output. This option works as option `-p', but also over-strikes whitespace associated with inserted text. `less' shows such whitespace using reverse video. This option is not selected by default. However, it is automatically turned on whenever `wdiff' launches the pager `less'. See option `-a'. This option is commonly used in conjunction with `less': wdiff -l OLD_FILE NEW_FILE | less `--terminal' `-t' Force the production of `termcap' strings for emphasising parts of output, even if the standard output is not associated with a terminal. The `TERM' environment variable must contain the name of a valid `termcap' entry. If the terminal description permits, underlining is used for marking deleted text, while bold or reverse video is used for marking inserted text. This option is not selected by default. However, it is automatically turned on whenever `wdiff' launches a pager, and it is known that the pager is _not_ `less'. See option `-a'. This option is commonly used when `wdiff' output is not redirected, but sent directly to the user terminal, as in: wdiff -t OLD_FILE NEW_FILE A common kludge uses `wdiff' together with the pager `more', as in: wdiff -t OLD_FILE NEW_FILE | more However, some versions of `more' use `termcap' emphasis for their own purposes, so strange interactions are possible. `--start-delete ARGUMENT' `-w ARGUMENT' Use ARGUMENT as the "start delete" string. This string will be output prior to any sequence of deleted text, to mark where it starts. By default, no start delete string is used unless there is no other means of distinguishing where such text starts; in this case the default start delete string is `[-'. `--end-delete ARGUMENT' `-x ARGUMENT' Use ARGUMENT as the "end delete" string. This string will be output after any sequence of deleted text, to mark where it ends. By default, no end delete string is used unless there is no other means of distinguishing where such text ends; in this case the default end delete string is `-]'. `--start-insert ARGUMENT' `-y ARGUMENT' Use ARGUMENT as the "start insert" string. This string will be output prior to any sequence of inserted text, to mark where it starts. By default, no start insert string is used unless there is no other means of distinguishing where such text starts; in this case the default start insert string is `{+'. `--end-insert ARGUMENT' `-z ARGUMENT' Use ARGUMENT as the "end insert" string. This string will be output after any sequence of inserted text, to mark where it ends. By default, no end insert string is used unless there is no other means of distinguishing where such text ends; in this case the default end insert string is `+}'. `--avoid-wraps' `-n' Avoid spanning the end of line while showing deleted or inserted text. Any single fragment of deleted or inserted text spanning many lines will be considered as being made up of many smaller fragments not containing a newline. So deleted text, for example, will have an end delete string at the end of each line, just before the new line, and a start delete string at the beginning of the next line. A long paragraph of inserted text will have each line bracketed between start insert and end insert strings. This behaviour is not selected by default. `--diff-input' `-d' Use single unified diff as input. If no input file is specified, standard input is used instead. This can be used to post-process diffs generated form other applications, like version control systems: svn diff | wdiff -d Note that options `-p', `-t', and `-[wxyz]' are not mutually exclusive. If you use a combination of them, you will merely accumulate the effect of each. Option `-l' is a variant of option `-p'.  File: wdiff.info, Node: wdiff Examples, Prev: wdiff invocation, Up: wdiff 2.2 Actual examples of `wdiff' usage ==================================== This section presents a few examples of usage, most of them have been contributed by `wdiff' users. * Change bars example. * This example comes from a discussion with Joe Wells <jbw@cs.bu.edu>. The following command produces a copy of NEW_FILE, shifted right one space to accommodate change bars since the last revision, ignoring those changes coming only from paragraph refilling. Any line with new or changed text will get a `|' in column 1. However, deleted text is not shown nor marked. wdiff -1n OLD_FILE NEW_FILE | sed -e 's/^/ /;/{+/s/^ /|/;s/{+//g;s/+}//g' Here is how it works. Word differences are found, paying attention only to additions, as requested by option `-1'. For bigger changes which span line boundaries, the insert bracket strings are repeated on each output line, as requested by option `-n'. This output is then reformatted with a `sed' script which shifts the text right two columns, turns the initial space into a bar only if there is some new text on that line, then removes all insert bracket strings. * LaTeX example. * This example has been provided by Steve Fisk <fisk@polar.bowdoin.edu>. The following uses LaTeX to put deleted text in boxes, and new text in double boxes: wdiff -w "\fbox{" -x "}" -y "\fbox{\fbox{" -z "}}" ... works nicely. * `troff' example. * This example comes from Paul Fox <pgf@cayman.com>. Using `wdiff', with some `troff'-specific delimiters gives _much_ better output. The delimiters I used: wdiff -w'\s-5' -x'\s0' -y'\fB' -z'\fP' ... This makes the pointsize of deletions 5 points smaller than normal, and emboldens insertions. Fantastic! I experimented with: wdiff -w'\fI' -x'\fP' -y'\fB' -z'\fP' since that's more like the defaults you use for terminals or printers, but since I actually use italics for emphasis in my documents, I thought the point size thing was clearer. I tried it on code, and it works surprisingly well there, too... * Marty Leisner <leisner@eso.mc.xerox.com> says: In the previous example, you had smaller text being taken out and bold face inserted. I had smaller text being taken out and larger text being inserted, I'm using bold face for other things, so this is more clear. wdiff -w '\s-3' -x'\s0' -y'\s+3' -z'\s0' * Colored output example. * This example comes from Martin von Gagern <Martin.vGagern@gmx.net>. If you like colored output, and your terminal supports ANSI escape sequences, you can use this invocation: wdiff -n \ -w $'\033[30;41m' -x $'\033[0m' \ -y $'\033[30;42m' -z $'\033[0m' \ ... | less -R This will print deleted text black on red, and inserted text black on green, assuming that your normal terminal colors are white on black. Of course you can choose different colors if you prefer. The `$'...'' notation is supported by GNU bash, and maybe other shells as well. If your shell doesn't support it, you might need some more tricks to generate these escape sequences as command line arguments. On a related note, GNU Emacs users might notice that the interactive function `compare-windows' ignores changes in whitespace, if it is given a numeric argument. If the variable `compare-ignore-case' is non-`nil', it ignores differences in case as well. So, in a way, this offers a kind of incremental version of `wdiff'.  File: wdiff.info, Node: mdiff, Next: unify, Prev: wdiff, Up: Top 3 The multi-difference finder ***************************** The name `mdiff' stands for _multi-_`diff', and has the purpose of encompassing the functionnality of a few other `diff'-type programs. The prefix _multi-_ also stands for the fact the program is often able to study more than two input files at once. The theory of operation is simple. The program splits all input files into a sequence of items, which may be lines or words. `mdiff' is then said to operate either in "line mode" or in "word mode". It then tries to find sequences of items which are repeated in the input files. Such common sequences are called "clusters" of items, and each occurrence of a repetition is called a cluster "member". What remains, once all cluster members are conceptually removed from all input files, is a set of "differences". The role of `mdiff' is to conveniently list either cluster members and differences. When input files are very similar, it is likely that clusters will encompass many items (lines or words) and differences will be small. So, most listing options inhibit the printing of cluster members. However, one may ask for the few beginning or ending items of cluster members to be printed nevertheless, as a way to provide a kind of feedback or "context" of the difference, those context items are sometimes said to be at the "horizon" of the difference. In merged listings, cluster members may just not be printed, except maybe for a few context items at the beginning of the member (just after a difference), and a few context items at the end of the member (just before a difference). When cluster members are short, or if you prefer, when the differences are not far away from each other, it is quite possible that the required context items often cover the full extent of the cluster members, which then are not inhibited anymore when this happens. A run of differences intermixed with such non-suppressed members is called a "hunk". Some reports produced by `mdiff' are showned as a list of hunks, and it is to be understood that common items are elided between hunks. However, each hunk in itself has no item missing, and each item of the hunk is analysed as pertaining either to only one of the input file or to many of them. Each hunk is preceded by a header, which explains the line position of all input files prior to the hunk itself. By comparing a hunk header with the previous hunk header, the user can have a hint about how much printing was spared. When two input files are quite similar, clusters are usually presented in the same order in all files. If a cluster member A in the first file corresponds to a cluster member A in the second file, it is likely that another cluster member B which appears _after_ A in the first file will correspond to a cluster member B in the second file which appears _after_ A as well. So, in many cases, while producing merged listing of files, cluster members may be made to naturally correspond to one another. However, this is not always true, in particular when the second file has been produced from the first by moving a big chunk of code away from its original position. In such cases, we say that members have "crossed". When members are crossed and `mdiff' has to make a merged listing, it selects one cluster member as being _naturally_ associated with its correspondant (either the pair of A's or the pair of B's) and then consider the other cluster as being part of a difference. The crossed nature of the member may still be analysed and reported, or it may be ignored. The standard `diff' program is meant for when there are exactly two input files, for which crossed members should be ignored. `mdiff' output format has been designed in such a way that it should resemble `diff' output for this precise case. However, `diff' formats are not sufficient for representing all cases which `mdiff' may address, and this is not mature yet. That is why `mdiff', in its current state, still experiments with output formats, which are subject to change. When the input files are not very similar, or rather different, merged listings are not very significant nor useful, and may even be rather confusing. The best to do in such cases is using `mdiff' for making an annotated relisting of all input files, in which cluster members are properly identified and referred to one another. Statistics. Read summary: 137 files, 41975 lines Work summary: 439 clusters, 1608 members, 8837 duplicate lines The summary lines, triggered by the `-s' option, say that about 8837 non-ignorable lines could be removed over the 41975 which has been read, by using functions, `#include', `#define', or similar devices. If one manages to execute `mdiff' within GNU Emacs so the output described above is collected into the `*compilation*' buffer, the command `C-`' (`M-x next-error') will proceed to the next cluster member in the other window, and similarily for other compilation mode commands. This is a useful way for handling `mdiff' output. Each line in the hunk, after the header, comes from the compared files, but is shifted right so the first column (or the first few columns) of each line gives information about where the line is coming from. A space indicates a line which is common to all files. In case there are only two input files, a minus sign indicates a line from the first file and a plus sign a line from the second file. Else, a letter from `a' to `z', or more than one letter if there are more than 26 files, indicates to which file the line pertains. If a line or a block of line pertains to many files but not to all of them, the first column holds a vertical bar, and the line or block of lines is bracketed between `@/' and `@\' lines, which are kind of comments within the hunk. The initial bracket lists all file letters that are related to the incoming line. I initially wrote `mdiff' specifically to help cleaning a C++ project which was a bit large, and in which many big monolithic classes were derived from each other most probably by rough copying followed by local modifications. I intended to fragment most common clusters and segregate the parts into virtual methods in outer classes, and override these methods, as appropriate, with less common variants within inner classes. `mdiff' was good at pointing me to exactly where I should look at. Of course, it never did the cleanup for me, but it helped doing the research about what should be done. Reusing `mdiff' over the half-cleaned project gave me more fine grained analysis of what was left to consider. * Menu: * mdiff invocation:: Invoking `mdiff' * Efficiency:: Resource considerations and efficiency  File: wdiff.info, Node: mdiff invocation, Next: Efficiency, Up: mdiff 3.1 Invoking `mdiff' ==================== The format for running the `mdiff' program is: mdiff OPTION ... FILE ... `mdiff' read all input FILEs and produces its results on standard output. Optionally, standard error might receive a progress report or a few statistics. `wdiff' compares files OLD_FILE and NEW_FILE and produces an annotated copy of NEW_FILE on standard output. The empty string or the string `-' denotes standard input, but standard input cannot be used twice in the same invocation. The complete path of a file should be given, a directory name is not accepted. `wdiff' will exit with a status of 0 if no differences were found, a status of 1 if any differences were found, or a status of 2 for any error. In this documentation, "deleted text" refers to text in OLD_FILE which is not in NEW_FILE, while "inserted text" refers to text on NEW_FILE which is not in OLD_FILE. `mdiff' supports the following command line options: `--version' Merely prints the version numbers on standard output, and exits without doing anything else. `--help' Merely prints a page of help on standard output, and exits without doing anything else. `--threshold=NUMBER' `-t NUMBER' Specifies the minimum number of non-ignorable lines which are required for two runs of lines to compare as equal. No cluster member may ever have less than NUMBER lines. By default, clusters have 4 lines or more. `--no-deleted' `-1' Avoid producing deleted words on the output. If neither `-1' or `-2' is selected, the original right margin may be exceeded for some lines. `--no-inserted' `-2' Avoid producing inserted words on the output. When this flag is given, the whitespace in the output is taken from OLD_FILE instead of NEW_FILE. If neither `-1' or `-2' is selected, the original right margin may be exceeded for some lines. `--no-common' `-3' Avoid producing common words on the output. When this option is not selected, common words and whitespace are taken from NEW_FILE, unless option `-2' is given, in which case common words and whitespace are rather taken from OLD_FILE. When selected, differences are separated from one another by lines of dashes. Moreover, if this option is selected at the same time as `-1' or `-2', then none of the output will have any emphasis, i.e. no bold or underlining. Finally, if this option is not selected, but both `-1' and `-2' are, then sections of common words between differences are segregated by lines of dashes. `--ignore-case' `-i' Do not consider case difference while comparing words. Each lower case letter is seen as identical to its upper case equivalent for the purpose of deciding if two words are the same. `--auto-pager' `-A' Some initiatives which were previously automatically taken in previous versions of `wdiff' are now put under the control of this option. By using it, a pager is interposed whenever the `wdiff' output is directed to the user's terminal. Without this option, no pager will be called, the user is then responsible for explicitly piping `wdiff' output into a pager, if required. The pager is selected by the value of the PAGER environment variable when `wdiff' is run. If PAGER is not defined at run time, then a default pager, selected at installation time, will be used instead. A defined but empty value of PAGER means no pager at all. When a pager is interposed through the use of this option, one of the options `-l' or `-t' is also selected, depending on whether the string `less' appears in the pager's name or not. It is often useful to define `wdiff' as an alias for `wdiff -a'. However, this _hides_ the normal `wdiff' behaviour. The default behaviour may be restored simply by piping the output from `wdiff' through `cat'. This dissociates the output from the user's terminal. `--printer' `-p' Use over-striking to emphasize parts of the output. Each character of the deleted text is underlined by writing an underscore `_' first, then a backspace and then the letter to be underlined. Each character of the inserted text is emboldened by writing it twice, with a backspace in between. This option is not selected by default. `--less-mode' `-l' Use over-striking to emphasize parts of output. This option works as option `-p', but also over-strikes whitespace associated with inserted text. `less' shows such whitespace using reverse video. This option is not selected by default. However, it is automatically turned on whenever `wdiff' launches the pager `less'. See option `-a'. This option is commonly used in conjunction with `less': wdiff -l OLD_FILE NEW_FILE | less `--terminal' `-t' Force the production of `termcap' strings for emphasising parts of output, even if the standard output is not associated with a terminal. The `TERM' environment variable must contain the name of a valid `termcap' entry. If the terminal description permits, underlining is used for marking deleted text, while bold or reverse video is used for marking inserted text. This option is not selected by default. However, it is automatically turned on whenever `wdiff' launches a pager, and it is known that the pager is _not_ `less'. See option `-a'. This option is commonly used when `wdiff' output is not redirected, but sent directly to the user terminal, as in: wdiff -t OLD_FILE NEW_FILE A common kludge uses `wdiff' together with the pager `more', as in: wdiff -t OLD_FILE NEW_FILE | more However, some versions of `more' use `termcap' emphasis for their own purposes, so strange interactions are possible. `--start-delete ARGUMENT' `-w ARGUMENT' Use ARGUMENT as the "start delete" string. This string will be output prior to any sequence of deleted text, to mark where it starts. By default, no start delete string is used unless there is no other means of distinguishing where such text starts; in this case the default start delete string is `[-'. `--end-delete ARGUMENT' `-x ARGUMENT' Use ARGUMENT as the "end delete" string. This string will be output after any sequence of deleted text, to mark where it ends. By default, no end delete string is used unless there is no other means of distinguishing where such text ends; in this case the default end delete string is `-]'. `--start-insert ARGUMENT' `-y ARGUMENT' Use ARGUMENT as the "start insert" string. This string will be output prior to any sequence of inserted text, to mark where it starts. By default, no start insert string is used unless there is no other means of distinguishing where such text starts; in this case the default start insert string is `{+'. `--end-insert ARGUMENT' `-z ARGUMENT' Use ARGUMENT as the "end insert" string. This string will be output after any sequence of inserted text, to mark where it ends. By default, no end insert string is used unless there is no other means of distinguishing where such text ends; in this case the default end insert string is `+}'. `--avoid-wraps' `-n' Avoid spanning the end of line while showing deleted or inserted text. Any single fragment of deleted or inserted text spanning many lines will be considered as being made up of many smaller fragments not containing a newline. So deleted text, for example, will have an end delete string at the end of each line, just before the new line, and a start delete string at the beginning of the next line. A long paragraph of inserted text will have each line bracketed between start insert and end insert strings. This behaviour is not selected by default. Some choices are hard-wired into the program, but might well become options in later releases. For example: * No cluster may span a file boundary, that is, start near the end of one input file and continue at the beginning of the next file. * A cluster may have many members from the same file. * White space is ignored between the beginning of a line and the first non-white character. * White space is significant when embedded in a line, or when ending a line. * Lines having no significant part (only white lines for now) are "ignorable". Such ignorable lines are logically considered as not being part of the input files for the sake of comparisons. * Comments from the C language are not especially ignored. Unless ignored for other reasons (being white lines), they are indeed significant lines. * No cluster member may ever directly start nor end with ignorable lines. However, ignorable lines may still be embedded within a cluster member. * In the generated output, clusters containing the biggest number of ignorable lines are output first, while smaller clusters appear last. All lines pertaining to a single cluster are output together. Within a cluster, members are listed in the order of the initial reading of input files. Note that options `-p', `-t', and `-[wxyz]' are not mutually exclusive. If you use a combination of them, you will merely accumulate the effect of each. Option `-l' is a variant of option `-p'.  File: wdiff.info, Node: Efficiency, Prev: mdiff invocation, Up: mdiff 3.2 Resource considerations and efficiency ========================================== Memory consumption `mdiff' can easily handle medium-sized project. For a 32 bits architecture, the memory requirements may computed like this: * 8 bytes per file * 8 bytes per line * 4 bytes per cluster * 8 bytes per cluster member Time consumption To evaluate the speed, consider the example shown above (*note mdiff::), and yielding these statistics: Read summary: 137 files, 41975 lines Work summary: 439 clusters, 1608 members ... Once many files in the memory cache, and redirecting the output to `/dev/null', the processing takes 3 seconds of real time on an Intel 486/100, which looks good. I was indeed afraid of some hidden O(N^2) behaviour(1), even if the program is mostly O(N*log(N)). Maybe one will discover or construct cases putting `mdiff' on its knees. So far, `mdiff' seemingly behaves well for the little problems given to it. If we devise and generate a more traditional `diff'-like output, in which all input files are relisted, this will add some time to the processing, but it will be only linear with regard with the total length of input files. There is a clever optimized sorting algorithm for _all_ substrings of a file, which might be generalised to handle words or lines for `mdiff'. But since the program is already faster than we initially expected, there is no emergency to resort to using such an algorithm. Trading complexity for clarity When lines repeat a lot, there are surprisingly many ways to relate blocks of lines, and reporting them _all_ can make very hairy listings. Any choice about reporting similarities, or not, is somewhat arbitrary, but we ought to make some of such choices for the program to be practical. Some of these choices are detailed here. If all members of a given cluster A are proper subsets of all members of another given cluster B, then cluster A is wholly forgotten. However, let's presume for example that there are more members in A than in B. Then, some members of A necessarily appear unrelated to any member of B. In such case, it has been decided more useful to report _all_ occurrences of A members, even those embedded within occurrences of B members. When only interested in members B, annotations pertaining to A may be perceived as clutter. However, when interested in members of A, getting all of them is probably the most useful choice. It sometimes happen that members of a very same cluster overlap. In the string `a a a', there are two overlapping members for the cluster represented by the string `a a', one from the first two `a', another from the last two `a'. In such cases, one member of such an overlap is automatically chopped so the overlap does not occur. White lines and items containing only delimiters are the possible source of a lot of complexity, if these are fully taken as significant. Since this does not add much to clarity, they are better ignored, usually, through using `--ignore-blank-lines' (`-B') or `--ignore-delimiters' (`-j'). Increasing the value of `--minimum-size=ITEMS' (`-J ITEMS') option also cut off complexity in favor of clarity, yet some small matches may then go unnoticed. Exactly how to best adjust the ITEMS value is left for the user to decide. ---------- Footnotes ---------- (1) N is the total number of lines.  File: wdiff.info, Node: unify, Next: Compatibility, Prev: mdiff, Up: Top 4 The diff format converter *************************** The program `unify' has the purpose of manipulating context diffs and unified context diffs. `unify' will accept either a regular context diff (old- or new-style) or a unified context diff as input, and generate either a unified diff or a new-style context diff as output. Various other options allow you to echo the non-diff (comment) lines to stderr, modify the diff by removing the comment lines, and/or tweak the diff into a format that is good for releasing patches. I think most people prefer unified context diffs in general. But some of us just have trouble reading unidiffs, unless they get very simple. Usual context diffs show how the code was _before_, and then, how the code is _after_. Some people just prefer understanding twice thoroughly, than once fuzzily. The tool is useful for those who handle a lot of diffs from various sources, and want them in a uniform format. * Menu: * unify invocation:: Invoking `unify'  File: wdiff.info, Node: unify invocation, Up: unify 4.1 Invoking `unify' ==================== The format for running the `unify' program is: unify OPTION ... [FILE] The program reads the diff to convert from FILE, or if the source file is not mentioned, it will be read from the standard input. The default is to output the diff in the opposite style of whatever was input, that is, regular context diffs will become unified context diffs, and unified context diffs will become unified context diffs, but this can be overridden by options. `unify' supports the following command line options: `--version' Merely prints the version numbers on standard output, and exits without doing anything else. `--help' Merely prints a page of help on standard output, and exits without doing anything else. `--context-diffs' `-c' Forces context diff output. `--echo-comments' `-e' Echoes non-diff (comment) lines to stderr. If a comment line is being stripped via the `-p' option, it is echoed with a preceding `!!! '. If all comments are being stripped (via the `-s' option), no special designation is given. `--old-diffs' `-o' Is used to force a context diff to be interpreted as being of the old-style even if it has the extra trailing asterisks that normally mark the new-style. This is only needed if `unify' fails to work with your version of `diff'. `--patch-format' `-p' Turns on patch-output mode. This will do two things: 1. Transform a header like: *** orig/file Sat May 5 02:59:37 1990 --- ./file Sat May 5 03:00:08 1990 into a line of `Index: file' -- we choose the shorter name and strip a leading `./' sequence if present. 2. Strip lines that begin with `Only in ', `Common subdir', `Binary files' or `diff -'. `-P' Is the same as `-p'. `--strip-comments' `-s' Strips non-diff lines (comments). `--unidiffs' `-u' Forces unified diff output. `-U' Is the same as `-up'. `--use-equals' `-=' Will use a `=' prefix in a unified diff for lines that are common to both files instead of using a leading space. Though this is harder to read, it is less likely to be mangled by trailing-space-stripping sites when posted to Usenet.  File: wdiff.info, Node: Compatibility, Next: Experimental, Prev: unify, Up: Top 5 How `mdiff' differs ********************* The GNU project already has a `diff' program which is part of the GNU diffutils package. There also are various non-GNU `diff' programs provided by various constructors. There is also the well-established `wdiff' which uses `diff' under the hood. It differs slightly from `wdiff2', its intended `mdiff'-based successor. The following sections compare `mdiff' specifications with both GNU `diff' and with `wdiff'. * Menu: * diff Compatibility:: Differences with `diff' * wdiff Compatibility:: Differences with `wdiff'  File: wdiff.info, Node: diff Compatibility, Next: wdiff Compatibility, Up: Compatibility 5.1 Differences with `diff' =========================== GNU `diff' is a program which matured for a long while, and for which algorithms are based on computer science literature. It is a fast program. By comparison, `mdiff' is not more than a program kludged up rapidly to satisfy a few precise needs. It only tries not being inordinately slow. Most `diff' options are accepted by `mdiff' under the same short and long option names, and is able to produce resembling output, for making `mdiff' easier to learn and less surprising to users. Yet, some differences exist in option decoding and output format. Since `diff' and `mdiff' use different matching algorithms, it is very likely that the differences will not be exactly analyzed identically. * A few `diff' options, which either accept no argument or require a mandatory one, are implemented in `mdiff' as options accepting an optional argument. This may yield some surprises, for example, `-c4bir' would be accepted by `diff' and rejected by `mdiff', yet it may rewritten `-birc4' for both. See below. * Options `-c' and `-u' in `diff' ask for regular context and unified context output, respectively, without specifying the number of lines in the context. `diff' has `-C NUMBER' and `-U NUMBER' options for asking for regular or unified context diffs with NUMBER context lines. If `-c4' asks for four lines of context, the `4' is not really an argument of `-c', and this is really interpreted as `-c -4', where `-NUMBER' is meant to be a deprecated option for choosing the number of context lines, option which `mdiff' does not implement. In `mdiff', `-c' and `-u' are really two options which are allowed to receive an optional argument, so the number of lines may, or may not be given, at the choice of the user. In `mdiff', options `-C' and `-U' are completely equivalent to `-c' and `-u', and are provided only for the sake of compatibility. * Option `-v' in `diff' means `--version', while it means `--verbose' in `mdiff'. There is no short form for `--version' in `mdiff'.  File: wdiff.info, Node: wdiff Compatibility, Prev: diff Compatibility, Up: Compatibility 5.2 Differences with `wdiff' ============================ Even if `mdiff' is meant to fully support `wdiff', options have been shuffled around so `mdiff' could better merge both `diff' and `wdiff' options in a common scheme. `diff' habits were almost always favored in this option reorganisation. `wdiff2' is now a mere front-end to `mdiff' that only rewrites the options. The following notes apply. * Some options are just transmitted unchanged, these are `-1', `-2', `-3' and `-i'. * Option `-c' also gets turned into `-i', to be compatible with `wdiff' versions up to `0.4'. * Simple option `-a' in `wdiff' becomes `-A' in `mdiff', `-l' becomes `-k', `-n' becomes `-m', `-p' becomes `-o', `-s' becomes `-v' and `-t' becomes `-z'. * Options introducing strings, which are `-w', `-x', `-y' and `-z' in `wdiff', respectively become `-Y', `-Z', `-Q' and `-R' in `mdiff'. * Options `-C', `-h' and `-v' are processed directly by `wdiff' and are not transmitted to `mdiff'. * Further, the `-C' option of `wdiff' has no equivalent in `mdiff'. * A new option `-q' inhibits the message which explains how `mdiff' might have been directly called. * The option `--diff-input' (`-d') from `wdiff' isn't supported by `wdiff2' (yet).  File: wdiff.info, Node: Experimental, Prev: Compatibility, Up: Top 6 Experimental programs *********************** The GNU wdiff source package contains sources for a number of tools besides `wdiff' itself. These are considered experimental: they might work for you, but they might just as well fail. The following programs are considered experimental: * `mdiff' * `wdiff2' * `unify' Building these applications can be configured at build time by passing `--with-experimental' to the `configure' script. _For this build, they have been enabled._ If you encounter a bug in an experimental program, the maintainers would still like to learn about it, but there is a greater chance that they decide not to fix such issues unless you provide a patch as well. * Menu: * Experimental History:: History of the experimental programs  File: wdiff.info, Node: Experimental History, Up: Experimental 6.1 History of the Experimental programs ======================================== Many users suggested features, which were in turn inviting for the integration of `wdiff' into GNU diffutils. Collaboration proved to be rather difficult. After a few years, the `wdiff' author finally gave in and created `mdiff' as a way to break out of the situation and for becoming able to proceed with users' suggestions. Before `mdiff' and the new `wdiff2' based on it were officially released, the original author resigned maintainership. The new maintainers had little experience with the code, and therefore decided to mark it experimental. That way, the code wouldn't be lost, but it would be clear that it wasn't as testes as the good old `wdiff' command.  Tag Table: Node: Top1559 Node: Overview2888 Node: wdiff4586 Node: wdiff invocation5303 Node: wdiff Examples14037 Node: mdiff18109 Node: mdiff invocation24944 Node: Efficiency34596 Ref: Efficiency-Footnote-138298 Node: unify38338 Node: unify invocation39435 Node: Compatibility41790 Node: diff Compatibility42468 Node: wdiff Compatibility44725 Node: Experimental46128 Node: Experimental History46987  End Tag Table  Local Variables: coding: utf-8 End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/wdiff.texi��������������������������������������������������������������������������0000644�0000000�0000000�00000147173�12116373030�012251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������\input texinfo @c %**start of header @setfilename wdiff.info @documentencoding UTF-8 @include version.texi @include flags.texi @ifset EXPERIMENTAL @settitle A word difference finder (and others) @end ifset @ifclear EXPERIMENTAL @settitle A word difference finder @end ifclear @finalout @c %**end of header @dircategory Text creation and manipulation @direntry * Word differences: (wdiff). GNU wdiff and diff related tools. @end direntry @dircategory Individual utilities @direntry * wdiff: (wdiff)wdiff invocation. Word difference finder. @ifset EXPERIMENTAL * wdiff2: (wdiff)wdiff invocation. Word difference finder. * mdiff: (wdiff)mdiff invocation. Line cluster finder. * unify: (wdiff)unify invocation. Diff format converter. @end ifset @end direntry @copying This file documents the @command{wdiff} command, which compares two files, finding which words have been deleted or added to the first for getting the second. @ifset EXPERIMENTAL It also documents some other @command{diff} related tools. @end ifset Copyright @copyright{} 1992, 1994, 1997, 1998, 1999, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. @end copying @titlepage @title GNU wdiff, version @value{VERSION} @ifset EXPERIMENTAL @subtitle A word difference finder (and others) @end ifset @ifclear EXPERIMENTAL @subtitle A word difference finder @end ifclear @subtitle Edition @value{EDITION}, @value{UPDATED-MONTH} @author Fran@,{c}ois Pinard @author Martin von Gagern @page @vskip 0pt plus 1filll @insertcopying @end titlepage @ifnottex @comment ============================================================= @node Top @top GNU wdiff @comment ============================================================= @ifset EXPERIMENTAL These Info pages document @command{wdiff}, a word difference finder, together with some other @command{diff} related tools. Note that some tools documented here are considered experimental and may not be part of every @command{wdiff} installation. @end ifset @ifclear EXPERIMENTAL These Info pages document @command{wdiff}, a word difference finder. Experimental applications included in the same source package haven't been enabled for your system, so their documentation will be ommitted as well. @end ifclear @xref{Experimental}. This is for release @value{VERSION}. @menu * Overview:: Overview * wdiff:: The word difference finder @c @ifset EXPERIMENTAL * mdiff:: The line cluster finder * unify:: The diff format converter * Compatibility:: How @command{mdiff} differs * Experimental:: About experimental programs @end ifset @ifclear EXPERIMENTAL * Experimental:: About experimental programs @end ifclear @detailmenu --- The Detailed Node Listing --- The word difference finder * wdiff invocation:: Invoking @command{wdiff} * wdiff Examples:: Actual examples of @command{wdiff} usage @ifset EXPERIMENTAL The multi-difference finder * mdiff invocation:: Invoking @command{mdiff} * Efficiency:: Resource considerations and efficiency The diff format converter * unify invocation:: Invoking @command{unify} How @command{mdiff} differs * diff Compatibility:: Differences with @command{diff} * wdiff Compatibility:: Differences with @command{wdiff} Experimental programs * Experimental History:: History of the experimental programs @end ifset @end detailmenu @end menu @end ifnottex @contents @comment ============================================================= @node Overview @chapter Overview @comment ============================================================= @command{wdiff} is a front end to @command{diff} for comparing files on a word per word basis. It works by creating two temporary files, one word per line, and then executes @command{diff} on these files. It collects the @command{diff} output and uses it to produce a nicer display of word differences between the original files. @ifset EXPERIMENTAL @command{mdiff} studies one or more input files altogether, and discovers blocks of items which repeat at more than one place. Items may be lines, words, or units defined by user. When in word mode, @command{mdiff} compares two files, finding which words have been deleted or added to the first in order to create the second, which is useful when two texts differ only by a few words and paragraphs have been refilled. The program has many output formats and interacts well with terminals and pagers (notably with @command{less}). @command{unify} is able to convert context diffs to unidiff format, or the other way around. Some people just prefer one format and despise the other, it is a religious issue. This program brings peace back to Earth. @command{wdiff2} is intended as a replacement to @command{wdiff}. It aims at supporting the same set of options, but uses @command{mdiff} instead of @command{diff} as its backend. @command{wdiff}, @command{mdiff} and @command{wdiff2} were written by Fran@,{c}ois Pinard, while @command{unify} has been contributed by Wayne Davison. @end ifset @ifclear EXPERIMENTAL @command{wdiff} was written by Fran@,{c}ois Pinard. @end ifclear Please report bugs to @email{wdiff-bugs@@gnu.org}. Include the version number, which you can find by running the program with @option{--version}. Please include in your message sufficient input to reproduce what you got, the output you indeed expected, and careful explanations about the nature of the problem. @comment ============================================================= @node wdiff @chapter The word difference finder @comment ============================================================= @ifset EXPERIMENTAL There are actually two programs for comparing files on a word per word basis. @command{wdiff} is a front-end to @command{diff} as found in the GNU diffutils package. It is quite mature. Its planned successor, @command{wdiff2}, is a front end to @command{mdiff}, and as experimental as @command{mdiff} itself. @xref{Experimental}. @end ifset @ifclear EXPERIMENTAL @command{wdiff} is a programs for comparing files on a word per word basis. It is a front-end to @command{diff} as found in the GNU diffutils package. @end ifclear A word is anything between whitespace. This is useful for comparing two texts in which a few words have been changed and for which paragraphs have been refilled. @menu * wdiff invocation:: Invoking @command{wdiff} * wdiff Examples:: Actual examples of @command{wdiff} usage @end menu @comment ------------------------------------------------------------- @node wdiff invocation @section Invoking @command{wdiff} @ifset EXPERIMENTAL The programs @command{wdiff} and @command{wdiff2} aim at providing the same set of command line options. They are described below. @xref{wdiff Compatibility}, for a list of differences. @end ifset @ifclear EXPERIMENTAL The format for running the @command{wdiff} program is: @end ifclear @example wdiff @var{option} @dots{} @var{old_file} @var{new_file} wdiff @var{option} @dots{} -d [@var{diff_file}] @end example @command{wdiff} compares files @var{old_file} and @var{new_file} and produces an annotated copy of @var{new_file} on standard output. The empty string or the string @samp{-} denotes standard input, but standard input cannot be used twice in the same invocation. The complete path of a file should be given, a directory name is not accepted. @command{wdiff} will exit with a status of 0 if no differences were found, a status of 1 if any differences were found, or a status of 2 for any error. In this documentation, @dfn{deleted text} refers to text in @var{old_file} which is not in @var{new_file}, while @dfn{inserted text} refers to text on @var{new_file} which is not in @var{old_file}. @command{wdiff} supports the following command line options: @table @option @item --help @itemx -h Print an informative help message describing the options. @item --version @itemx -v Print the version number of @command{wdiff} on the standard error output. @item --no-deleted @itemx -1 Avoid producing deleted words on the output. If neither @option{-1} or @option{-2} is selected, the original right margin may be exceeded for some lines. @item --no-inserted @itemx -2 Avoid producing inserted words on the output. When this flag is given, the whitespace in the output is taken from @var{old_file} instead of @var{new_file}. If neither @option{-1} or @option{-2} is selected, the original right margin may be exceeded for some lines. @item --no-common @itemx -3 Avoid producing common words on the output. When this option is not selected, common words and whitespace are taken from @var{new_file}, unless option @option{-2} is given, in which case common words and whitespace are rather taken from @var{old_file}. When selected, differences are separated from one another by lines of dashes. Moreover, if this option is selected at the same time as @option{-1} or @option{-2}, then none of the output will have any emphasis, i.e. no bold or underlining. Finally, if this option is not selected, but both @option{-1} and @option{-2} are, then sections of common words between differences are segregated by lines of dashes. @item --ignore-case @itemx -i Do not consider case difference while comparing words. Each lower case letter is seen as identical to its upper case equivalent for the purpose of deciding if two words are the same. @item --statistics @itemx -s On completion, for each file, the total number of words, the number of common words between the files, the number of words deleted or inserted and the number of words that have changed is output. (A changed word is one that has been replaced or is part of a replacement.) Except for the total number of words, all of the numbers are followed by a percentage relative to the total number of words in the file. @item --auto-pager @itemx -a Some initiatives which were previously automatically taken in previous versions of @command{wdiff} are now put under the control of this option. By using it, a pager is interposed whenever the @command{wdiff} output is directed to the user's terminal. Without this option, no pager will be called, the user is then responsible for explicitly piping @command{wdiff} output into a pager, if required. The pager is selected by the value of the @var{PAGER} environment variable when @command{wdiff} is run. If @var{PAGER} is not defined at run time, then a default pager, selected at installation time, will be used instead. A defined but empty value of @var{PAGER} means no pager at all. When a pager is interposed through the use of this option, one of the options @option{-l} or @option{-t} is also selected, depending on whether the string @samp{less} appears in the pager's name or not. It is often useful to define @samp{wdiff} as an alias for @samp{wdiff -a}. However, this @emph{hides} the normal @command{wdiff} behaviour. The default behaviour may be restored simply by piping the output from @command{wdiff} through @command{cat}. This dissociates the output from the user's terminal. @item --printer @itemx -p Use over-striking to emphasize parts of the output. Each character of the deleted text is underlined by writing an underscore @samp{_} first, then a backspace and then the letter to be underlined. Each character of the inserted text is emboldened by writing it twice, with a backspace in between. This option is not selected by default. @item --less-mode @itemx -l Use over-striking to emphasize parts of output. This option works as option @option{-p}, but also over-strikes whitespace associated with inserted text. @command{less} shows such whitespace using reverse video. This option is not selected by default. However, it is automatically turned on whenever @command{wdiff} launches the pager @command{less}. See option @option{-a}. This option is commonly used in conjunction with @command{less}: @example wdiff -l @var{old_file} @var{new_file} | less @end example @item --terminal @itemx -t Force the production of @code{termcap} strings for emphasising parts of output, even if the standard output is not associated with a terminal. The @env{TERM} environment variable must contain the name of a valid @code{termcap} entry. If the terminal description permits, underlining is used for marking deleted text, while bold or reverse video is used for marking inserted text. This option is not selected by default. However, it is automatically turned on whenever @command{wdiff} launches a pager, and it is known that the pager is @emph{not} @command{less}. See option @option{-a}. This option is commonly used when @command{wdiff} output is not redirected, but sent directly to the user terminal, as in: @example wdiff -t @var{old_file} @var{new_file} @end example A common kludge uses @command{wdiff} together with the pager @command{more}, as in: @example wdiff -t @var{old_file} @var{new_file} | more @end example However, some versions of @command{more} use @code{termcap} emphasis for their own purposes, so strange interactions are possible. @item --start-delete @var{argument} @itemx -w @var{argument} Use @var{argument} as the @dfn{start delete} string. This string will be output prior to any sequence of deleted text, to mark where it starts. By default, no start delete string is used unless there is no other means of distinguishing where such text starts; in this case the default start delete string is @samp{[-}. @item --end-delete @var{argument} @itemx -x @var{argument} Use @var{argument} as the @dfn{end delete} string. This string will be output after any sequence of deleted text, to mark where it ends. By default, no end delete string is used unless there is no other means of distinguishing where such text ends; in this case the default end delete string is @option{-]}. @item --start-insert @var{argument} @itemx -y @var{argument} Use @var{argument} as the @dfn{start insert} string. This string will be output prior to any sequence of inserted text, to mark where it starts. By default, no start insert string is used unless there is no other means of distinguishing where such text starts; in this case the default start insert string is @samp{@{+}. @item --end-insert @var{argument} @itemx -z @var{argument} Use @var{argument} as the @dfn{end insert} string. This string will be output after any sequence of inserted text, to mark where it ends. By default, no end insert string is used unless there is no other means of distinguishing where such text ends; in this case the default end insert string is @samp{+@}}. @item --avoid-wraps @itemx -n Avoid spanning the end of line while showing deleted or inserted text. Any single fragment of deleted or inserted text spanning many lines will be considered as being made up of many smaller fragments not containing a newline. So deleted text, for example, will have an end delete string at the end of each line, just before the new line, and a start delete string at the beginning of the next line. A long paragraph of inserted text will have each line bracketed between start insert and end insert strings. This behaviour is not selected by default. @item --diff-input @itemx -d Use single unified diff as input. If no input file is specified, standard input is used instead. This can be used to post-process diffs generated form other applications, like version control systems: @example svn diff | wdiff -d @end example @end table Note that options @option{-p}, @option{-t}, and @option{-[wxyz]} are not mutually exclusive. If you use a combination of them, you will merely accumulate the effect of each. Option @option{-l} is a variant of option @option{-p}. @comment ------------------------------------------------------------- @node wdiff Examples @section Actual examples of @command{wdiff} usage This section presents a few examples of usage, most of them have been contributed by @command{wdiff} users. @itemize @bullet @item Change bars example. @itemize @bullet @item This example comes from a discussion with @email{jbw@@cs.bu.edu, Joe Wells}. The following command produces a copy of @var{new_file}, shifted right one space to accommodate change bars since the last revision, ignoring those changes coming only from paragraph refilling. Any line with new or changed text will get a @samp{|} in column 1. However, deleted text is not shown nor marked. @example wdiff -1n @var{old_file} @var{new_file} | sed -e 's/^/ /;/@{+/s/^ /|/;s/@{+//g;s/+@}//g' @end example Here is how it works. Word differences are found, paying attention only to additions, as requested by option @option{-1}. For bigger changes which span line boundaries, the insert bracket strings are repeated on each output line, as requested by option @option{-n}. This output is then reformatted with a @command{sed} script which shifts the text right two columns, turns the initial space into a bar only if there is some new text on that line, then removes all insert bracket strings. @end itemize @item La@TeX{} example. @itemize @bullet @item This example has been provided by @email{fisk@@polar.bowdoin.edu, Steve Fisk}. The following uses La@TeX{} to put deleted text in boxes, and new text in double boxes: @example wdiff -w "\fbox@{" -x "@}" -y "\fbox@{\fbox@{" -z "@}@}" @dots{} @end example @noindent works nicely. @end itemize @item @command{troff} example. @itemize @bullet @item This example comes from @email{pgf@@cayman.com, Paul Fox}. Using @command{wdiff}, with some @command{troff}-specific delimiters gives @emph{much} better output. The delimiters I used: @example wdiff -w'\s-5' -x'\s0' -y'\fB' -z'\fP' @dots{} @end example This makes the pointsize of deletions 5 points smaller than normal, and emboldens insertions. Fantastic! I experimented with: @example wdiff -w'\fI' -x'\fP' -y'\fB' -z'\fP' @end example since that's more like the defaults you use for terminals or printers, but since I actually use italics for emphasis in my documents, I thought the point size thing was clearer. I tried it on code, and it works surprisingly well there, too... @item @email{leisner@@eso.mc.xerox.com, Marty Leisner} says: In the previous example, you had smaller text being taken out and bold face inserted. I had smaller text being taken out and larger text being inserted, I'm using bold face for other things, so this is more clear. @example wdiff -w '\s-3' -x'\s0' -y'\s+3' -z'\s0' @end example @end itemize @item Colored output example. @itemize @bullet @item This example comes from @email{Martin.vGagern@@gmx.net, Martin von Gagern}. If you like colored output, and your terminal supports ANSI escape sequences, you can use this invocation: @example wdiff -n \ -w $'\033[30;41m' -x $'\033[0m' \ -y $'\033[30;42m' -z $'\033[0m' \ @dots{} | less -R @end example This will print deleted text black on red, and inserted text black on green, assuming that your normal terminal colors are white on black. Of course you can choose different colors if you prefer. The @samp{$'@dots{}'} notation is supported by GNU bash, and maybe other shells as well. If your shell doesn't support it, you might need some more tricks to generate these escape sequences as command line arguments. @end itemize @end itemize On a related note, GNU Emacs users might notice that the interactive function @code{compare-windows} ignores changes in whitespace, if it is given a numeric argument. If the variable @code{compare-ignore-case} is non-@code{nil}, it ignores differences in case as well. So, in a way, this offers a kind of incremental version of @command{wdiff}. @ifset EXPERIMENTAL @comment ============================================================= @node mdiff @chapter The multi-difference finder @comment ============================================================= The name @command{mdiff} stands for @emph{multi-}@command{diff}, and has the purpose of encompassing the functionnality of a few other @command{diff}-type programs. The prefix @emph{multi-} also stands for the fact the program is often able to study more than two input files at once. The theory of operation is simple. The program splits all input files into a sequence of items, which may be lines or words. @command{mdiff} is then said to operate either in @dfn{line mode} or in @dfn{word mode}. It then tries to find sequences of items which are repeated in the input files. Such common sequences are called @dfn{clusters} of items, and each occurrence of a repetition is called a cluster @dfn{member}. What remains, once all cluster members are conceptually removed from all input files, is a set of @dfn{differences}. The role of @command{mdiff} is to conveniently list either cluster members and differences. When input files are very similar, it is likely that clusters will encompass many items (lines or words) and differences will be small. So, most listing options inhibit the printing of cluster members. However, one may ask for the few beginning or ending items of cluster members to be printed nevertheless, as a way to provide a kind of feedback or @dfn{context} of the difference, those context items are sometimes said to be at the @dfn{horizon} of the difference. In merged listings, cluster members may just not be printed, except maybe for a few context items at the beginning of the member (just after a difference), and a few context items at the end of the member (just before a difference). When cluster members are short, or if you prefer, when the differences are not far away from each other, it is quite possible that the required context items often cover the full extent of the cluster members, which then are not inhibited anymore when this happens. A run of differences intermixed with such non-suppressed members is called a @dfn{hunk}. Some reports produced by @command{mdiff} are showned as a list of hunks, and it is to be understood that common items are elided between hunks. However, each hunk in itself has no item missing, and each item of the hunk is analysed as pertaining either to only one of the input file or to many of them. Each hunk is preceded by a header, which explains the line position of all input files prior to the hunk itself. By comparing a hunk header with the previous hunk header, the user can have a hint about how much printing was spared. When two input files are quite similar, clusters are usually presented in the same order in all files. If a cluster member @var{A} in the first file corresponds to a cluster member @var{A} in the second file, it is likely that another cluster member @var{B} which appears @emph{after} @var{A} in the first file will correspond to a cluster member @var{B} in the second file which appears @emph{after} @var{A} as well. So, in many cases, while producing merged listing of files, cluster members may be made to naturally correspond to one another. However, this is not always true, in particular when the second file has been produced from the first by moving a big chunk of code away from its original position. In such cases, we say that members have @dfn{crossed}. When members are crossed and @command{mdiff} has to make a merged listing, it selects one cluster member as being @emph{naturally} associated with its correspondant (either the pair of @var{A}'s or the pair of @var{B}'s) and then consider the other cluster as being part of a difference. The crossed nature of the member may still be analysed and reported, or it may be ignored. The standard @command{diff} program is meant for when there are exactly two input files, for which crossed members should be ignored. @command{mdiff} output format has been designed in such a way that it should resemble @command{diff} output for this precise case. However, @command{diff} formats are not sufficient for representing all cases which @command{mdiff} may address, and this is not mature yet. That is why @command{mdiff}, in its current state, still experiments with output formats, which are subject to change. When the input files are not very similar, or rather different, merged listings are not very significant nor useful, and may even be rather confusing. The best to do in such cases is using @command{mdiff} for making an annotated relisting of all input files, in which cluster members are properly identified and referred to one another. Statistics. @example Read summary: 137 files, 41975 lines Work summary: 439 clusters, 1608 members, 8837 duplicate lines @end example @noindent The summary lines, triggered by the @option{-s} option, say that about 8837 non-ignorable lines could be removed over the 41975 which has been read, by using functions, @code{#include}, @code{#define}, or similar devices. If one manages to execute @command{mdiff} within GNU Emacs so the output described above is collected into the @code{*compilation*} buffer, the command @kbd{C-`} (@samp{@w{M-x next-error}}) will proceed to the next cluster member in the other window, and similarily for other compilation mode commands. This is a useful way for handling @command{mdiff} output. Each line in the hunk, after the header, comes from the compared files, but is shifted right so the first column (or the first few columns) of each line gives information about where the line is coming from. A space indicates a line which is common to all files. In case there are only two input files, a minus sign indicates a line from the first file and a plus sign a line from the second file. Else, a letter from @samp{a} to @samp{z}, or more than one letter if there are more than 26 files, indicates to which file the line pertains. If a line or a block of line pertains to many files but not to all of them, the first column holds a vertical bar, and the line or block of lines is bracketed between @samp{@@/} and @samp{@@\} lines, which are kind of comments within the hunk. The initial bracket lists all file letters that are related to the incoming line. I initially wrote @command{mdiff} specifically to help cleaning a C++ project which was a bit large, and in which many big monolithic classes were derived from each other most probably by rough copying followed by local modifications. I intended to fragment most common clusters and segregate the parts into virtual methods in outer classes, and override these methods, as appropriate, with less common variants within inner classes. @command{mdiff} was good at pointing me to exactly where I should look at. Of course, it never did the cleanup for me, but it helped doing the research about what should be done. Reusing @command{mdiff} over the half-cleaned project gave me more fine grained analysis of what was left to consider. @menu * mdiff invocation:: Invoking @command{mdiff} * Efficiency:: Resource considerations and efficiency @end menu @comment ------------------------------------------------------------- @node mdiff invocation @section Invoking @command{mdiff} The format for running the @command{mdiff} program is: @example mdiff @var{option} @dots{} @var{file} @dots{} @end example @command{mdiff} read all input @var{file}s and produces its results on standard output. Optionally, standard error might receive a progress report or a few statistics. @command{wdiff} compares files @var{old_file} and @var{new_file} and produces an annotated copy of @var{new_file} on standard output. The empty string or the string @option{-} denotes standard input, but standard input cannot be used twice in the same invocation. The complete path of a file should be given, a directory name is not accepted. @command{wdiff} will exit with a status of 0 if no differences were found, a status of 1 if any differences were found, or a status of 2 for any error. In this documentation, @dfn{deleted text} refers to text in @var{old_file} which is not in @var{new_file}, while @dfn{inserted text} refers to text on @var{new_file} which is not in @var{old_file}. @command{mdiff} supports the following command line options: @table @option @item --version Merely prints the version numbers on standard output, and exits without doing anything else. @item --help Merely prints a page of help on standard output, and exits without doing anything else. @item --threshold=@var{number} @itemx -t @var{number} Specifies the minimum number of non-ignorable lines which are required for two runs of lines to compare as equal. No cluster member may ever have less than @var{number} lines. By default, clusters have 4 lines or more. @item --no-deleted @itemx -1 Avoid producing deleted words on the output. If neither @option{-1} or @option{-2} is selected, the original right margin may be exceeded for some lines. @item --no-inserted @itemx -2 Avoid producing inserted words on the output. When this flag is given, the whitespace in the output is taken from @var{old_file} instead of @var{new_file}. If neither @option{-1} or @option{-2} is selected, the original right margin may be exceeded for some lines. @item --no-common @itemx -3 Avoid producing common words on the output. When this option is not selected, common words and whitespace are taken from @var{new_file}, unless option @option{-2} is given, in which case common words and whitespace are rather taken from @var{old_file}. When selected, differences are separated from one another by lines of dashes. Moreover, if this option is selected at the same time as @option{-1} or @option{-2}, then none of the output will have any emphasis, i.e. no bold or underlining. Finally, if this option is not selected, but both @option{-1} and @option{-2} are, then sections of common words between differences are segregated by lines of dashes. @item --ignore-case @itemx -i Do not consider case difference while comparing words. Each lower case letter is seen as identical to its upper case equivalent for the purpose of deciding if two words are the same. @item --auto-pager @itemx -A Some initiatives which were previously automatically taken in previous versions of @command{wdiff} are now put under the control of this option. By using it, a pager is interposed whenever the @command{wdiff} output is directed to the user's terminal. Without this option, no pager will be called, the user is then responsible for explicitly piping @command{wdiff} output into a pager, if required. The pager is selected by the value of the @var{PAGER} environment variable when @command{wdiff} is run. If @var{PAGER} is not defined at run time, then a default pager, selected at installation time, will be used instead. A defined but empty value of @var{PAGER} means no pager at all. When a pager is interposed through the use of this option, one of the options @option{-l} or @option{-t} is also selected, depending on whether the string @samp{less} appears in the pager's name or not. It is often useful to define @samp{wdiff} as an alias for @samp{wdiff -a}. However, this @emph{hides} the normal @command{wdiff} behaviour. The default behaviour may be restored simply by piping the output from @command{wdiff} through @command{cat}. This dissociates the output from the user's terminal. @item --printer @itemx -p Use over-striking to emphasize parts of the output. Each character of the deleted text is underlined by writing an underscore @samp{_} first, then a backspace and then the letter to be underlined. Each character of the inserted text is emboldened by writing it twice, with a backspace in between. This option is not selected by default. @item --less-mode @itemx -l Use over-striking to emphasize parts of output. This option works as option @option{-p}, but also over-strikes whitespace associated with inserted text. @command{less} shows such whitespace using reverse video. This option is not selected by default. However, it is automatically turned on whenever @command{wdiff} launches the pager @command{less}. See option @option{-a}. This option is commonly used in conjunction with @command{less}: @example wdiff -l @var{old_file} @var{new_file} | less @end example @item --terminal @itemx -t Force the production of @code{termcap} strings for emphasising parts of output, even if the standard output is not associated with a terminal. The @samp{TERM} environment variable must contain the name of a valid @code{termcap} entry. If the terminal description permits, underlining is used for marking deleted text, while bold or reverse video is used for marking inserted text. This option is not selected by default. However, it is automatically turned on whenever @command{wdiff} launches a pager, and it is known that the pager is @emph{not} @command{less}. See option @option{-a}. This option is commonly used when @command{wdiff} output is not redirected, but sent directly to the user terminal, as in: @example wdiff -t @var{old_file} @var{new_file} @end example A common kludge uses @command{wdiff} together with the pager @command{more}, as in: @example wdiff -t @var{old_file} @var{new_file} | more @end example However, some versions of @command{more} use @code{termcap} emphasis for their own purposes, so strange interactions are possible. @item --start-delete @var{argument} @itemx -w @var{argument} Use @var{argument} as the @dfn{start delete} string. This string will be output prior to any sequence of deleted text, to mark where it starts. By default, no start delete string is used unless there is no other means of distinguishing where such text starts; in this case the default start delete string is @samp{[-}. @item --end-delete @var{argument} @itemx -x @var{argument} Use @var{argument} as the @dfn{end delete} string. This string will be output after any sequence of deleted text, to mark where it ends. By default, no end delete string is used unless there is no other means of distinguishing where such text ends; in this case the default end delete string is @option{-]}. @item --start-insert @var{argument} @itemx -y @var{argument} Use @var{argument} as the @dfn{start insert} string. This string will be output prior to any sequence of inserted text, to mark where it starts. By default, no start insert string is used unless there is no other means of distinguishing where such text starts; in this case the default start insert string is @samp{@{+}. @item --end-insert @var{argument} @itemx -z @var{argument} Use @var{argument} as the @dfn{end insert} string. This string will be output after any sequence of inserted text, to mark where it ends. By default, no end insert string is used unless there is no other means of distinguishing where such text ends; in this case the default end insert string is @samp{+@}}. @item --avoid-wraps @itemx -n Avoid spanning the end of line while showing deleted or inserted text. Any single fragment of deleted or inserted text spanning many lines will be considered as being made up of many smaller fragments not containing a newline. So deleted text, for example, will have an end delete string at the end of each line, just before the new line, and a start delete string at the beginning of the next line. A long paragraph of inserted text will have each line bracketed between start insert and end insert strings. This behaviour is not selected by default. @end table Some choices are hard-wired into the program, but might well become options in later releases. For example: @itemize @bullet @item No cluster may span a file boundary, that is, start near the end of one input file and continue at the beginning of the next file. @item A cluster may have many members from the same file. @item White space is ignored between the beginning of a line and the first non-white character. @item White space is significant when embedded in a line, or when ending a line. @item Lines having no significant part (only white lines for now) are @dfn{ignorable}. Such ignorable lines are logically considered as not being part of the input files for the sake of comparisons. @item Comments from the C language are not especially ignored. Unless ignored for other reasons (being white lines), they are indeed significant lines. @item No cluster member may ever directly start nor end with ignorable lines. However, ignorable lines may still be embedded within a cluster member. @item In the generated output, clusters containing the biggest number of ignorable lines are output first, while smaller clusters appear last. All lines pertaining to a single cluster are output together. Within a cluster, members are listed in the order of the initial reading of input files. @end itemize Note that options @option{-p}, @option{-t}, and @option{-[wxyz]} are not mutually exclusive. If you use a combination of them, you will merely accumulate the effect of each. Option @option{-l} is a variant of option @option{-p}. @comment ------------------------------------------------------------- @node Efficiency @section Resource considerations and efficiency @table @asis @item Memory consumption @command{mdiff} can easily handle medium-sized project. For a 32 bits architecture, the memory requirements may computed like this: @itemize @bullet @item 8 bytes per file @item 8 bytes per line @item 4 bytes per cluster @item 8 bytes per cluster member @end itemize @item Time consumption To evaluate the speed, consider the example shown above (@pxref{mdiff}), and yielding these statistics: @example Read summary: 137 files, 41975 lines Work summary: 439 clusters, 1608 members @dots{} @end example @noindent Once many files in the memory cache, and redirecting the output to @file{/dev/null}, the processing takes 3 seconds of real time on an Intel 486/100, which looks good. I was indeed afraid of some hidden O(@var{n}^2) behaviour@footnote{@var{n} is the total number of lines.}, even if the program is mostly O(@var{n}*log(@var{n})). Maybe one will discover or construct cases putting @command{mdiff} on its knees. So far, @command{mdiff} seemingly behaves well for the little problems given to it. If we devise and generate a more traditional @command{diff}-like output, in which all input files are relisted, this will add some time to the processing, but it will be only linear with regard with the total length of input files. There is a clever optimized sorting algorithm for @emph{all} substrings of a file, which might be generalised to handle words or lines for @command{mdiff}. But since the program is already faster than we initially expected, there is no emergency to resort to using such an algorithm. @item Trading complexity for clarity When lines repeat a lot, there are surprisingly many ways to relate blocks of lines, and reporting them @emph{all} can make very hairy listings. Any choice about reporting similarities, or not, is somewhat arbitrary, but we ought to make some of such choices for the program to be practical. Some of these choices are detailed here. If all members of a given cluster @var{A} are proper subsets of all members of another given cluster @var{B}, then cluster @var{A} is wholly forgotten. However, let's presume for example that there are more members in @var{A} than in @var{B}. Then, some members of @var{A} necessarily appear unrelated to any member of @var{B}. In such case, it has been decided more useful to report @emph{all} occurrences of @var{A} members, even those embedded within occurrences of @var{B} members. When only interested in members @var{B}, annotations pertaining to @var{A} may be perceived as clutter. However, when interested in members of @var{A}, getting all of them is probably the most useful choice. It sometimes happen that members of a very same cluster overlap. In the string @samp{@w{a a a}}, there are two overlapping members for the cluster represented by the string @samp{@w{a a}}, one from the first two @samp{a}, another from the last two @samp{a}. In such cases, one member of such an overlap is automatically chopped so the overlap does not occur. White lines and items containing only delimiters are the possible source of a lot of complexity, if these are fully taken as significant. Since this does not add much to clarity, they are better ignored, usually, through using @option{--ignore-blank-lines} (@option{-B}) or @option{--ignore-delimiters} (@option{-j}). Increasing the value of @option{--minimum-size=@var{items}} (@samp{@w{-J @var{items}}}) option also cut off complexity in favor of clarity, yet some small matches may then go unnoticed. Exactly how to best adjust the @var{items} value is left for the user to decide. @end table @comment ============================================================= @node unify @chapter The diff format converter @comment ============================================================= The program @command{unify} has the purpose of manipulating context diffs and unified context diffs. @command{unify} will accept either a regular context diff (old- or new-style) or a unified context diff as input, and generate either a unified diff or a new-style context diff as output. Various other options allow you to echo the non-diff (comment) lines to stderr, modify the diff by removing the comment lines, and/or tweak the diff into a format that is good for releasing patches. I think most people prefer unified context diffs in general. But some of us just have trouble reading unidiffs, unless they get very simple. Usual context diffs show how the code was @emph{before}, and then, how the code is @emph{after}. Some people just prefer understanding twice thoroughly, than once fuzzily. The tool is useful for those who handle a lot of diffs from various sources, and want them in a uniform format. @menu * unify invocation:: Invoking @command{unify} @end menu @comment ------------------------------------------------------------- @node unify invocation @section Invoking @command{unify} The format for running the @command{unify} program is: @example unify @var{option} @dots{} [@var{file}] @end example The program reads the diff to convert from @var{file}, or if the source file is not mentioned, it will be read from the standard input. The default is to output the diff in the opposite style of whatever was input, that is, regular context diffs will become unified context diffs, and unified context diffs will become unified context diffs, but this can be overridden by options. @command{unify} supports the following command line options: @table @option @item --version Merely prints the version numbers on standard output, and exits without doing anything else. @item --help Merely prints a page of help on standard output, and exits without doing anything else. @item --context-diffs @itemx -c Forces context diff output. @item --echo-comments @itemx -e Echoes non-diff (comment) lines to stderr. If a comment line is being stripped via the @option{-p} option, it is echoed with a preceding @samp{!!! }. If all comments are being stripped (via the @option{-s} option), no special designation is given. @item --old-diffs @itemx -o Is used to force a context diff to be interpreted as being of the old-style even if it has the extra trailing asterisks that normally mark the new-style. This is only needed if @command{unify} fails to work with your version of @command{diff}. @item --patch-format @itemx -p Turns on patch-output mode. This will do two things: @enumerate @item Transform a header like: @example *** orig/file Sat May 5 02:59:37 1990 --- ./file Sat May 5 03:00:08 1990 @end example @noindent into a line of @samp{Index: file} --- we choose the shorter name and strip a leading @samp{./} sequence if present. @item Strip lines that begin with @samp{@w{Only in }}, @samp{@w{Common subdir}}, @samp{@w{Binary files}} or @samp{@w{diff -}}. @end enumerate @item -P Is the same as @option{-p}. @item --strip-comments @itemx -s Strips non-diff lines (comments). @item --unidiffs @itemx -u Forces unified diff output. @item -U Is the same as @option{-up}. @item --use-equals @itemx -= Will use a @samp{=} prefix in a unified diff for lines that are common to both files instead of using a leading space. Though this is harder to read, it is less likely to be mangled by trailing-space-stripping sites when posted to Usenet. @end table @comment ============================================================= @node Compatibility @chapter How @command{mdiff} differs @comment ============================================================= The GNU project already has a @command{diff} program which is part of the GNU diffutils package. There also are various non-GNU @command{diff} programs provided by various constructors. There is also the well-established @command{wdiff} which uses @command{diff} under the hood. It differs slightly from @command{wdiff2}, its intended @command{mdiff}-based successor. The following sections compare @command{mdiff} specifications with both GNU @command{diff} and with @command{wdiff}. @menu * diff Compatibility:: Differences with @command{diff} * wdiff Compatibility:: Differences with @command{wdiff} @end menu @comment ------------------------------------------------------------- @node diff Compatibility @section Differences with @command{diff} GNU @command{diff} is a program which matured for a long while, and for which algorithms are based on computer science literature. It is a fast program. By comparison, @command{mdiff} is not more than a program kludged up rapidly to satisfy a few precise needs. It only tries not being inordinately slow. Most @command{diff} options are accepted by @command{mdiff} under the same short and long option names, and is able to produce resembling output, for making @command{mdiff} easier to learn and less surprising to users. Yet, some differences exist in option decoding and output format. Since @command{diff} and @command{mdiff} use different matching algorithms, it is very likely that the differences will not be exactly analyzed identically. @itemize @bullet @item A few @command{diff} options, which either accept no argument or require a mandatory one, are implemented in @command{mdiff} as options accepting an optional argument. This may yield some surprises, for example, @option{-c4bir} would be accepted by @command{diff} and rejected by @command{mdiff}, yet it may rewritten @option{-birc4} for both. See below. @item Options @option{-c} and @option{-u} in @command{diff} ask for regular context and unified context output, respectively, without specifying the number of lines in the context. @command{diff} has @samp{@w{-C @var{number}}} and @samp{@w{-U @var{number}}} options for asking for regular or unified context diffs with @var{number} context lines. If @option{-c4} asks for four lines of context, the @samp{4} is not really an argument of @option{-c}, and this is really interpreted as @samp{@w{-c -4}}, where @option{-@var{number}} is meant to be a deprecated option for choosing the number of context lines, option which @command{mdiff} does not implement. In @command{mdiff}, @option{-c} and @option{-u} are really two options which are allowed to receive an optional argument, so the number of lines may, or may not be given, at the choice of the user. In @command{mdiff}, options @option{-C} and @option{-U} are completely equivalent to @option{-c} and @option{-u}, and are provided only for the sake of compatibility. @item Option @option{-v} in @command{diff} means @option{--version}, while it means @option{--verbose} in @command{mdiff}. There is no short form for @option{--version} in @command{mdiff}. @end itemize @comment ------------------------------------------------------------- @node wdiff Compatibility @section Differences with @command{wdiff} Even if @command{mdiff} is meant to fully support @command{wdiff}, options have been shuffled around so @command{mdiff} could better merge both @command{diff} and @command{wdiff} options in a common scheme. @command{diff} habits were almost always favored in this option reorganisation. @command{wdiff2} is now a mere front-end to @command{mdiff} that only rewrites the options. The following notes apply. @itemize @bullet @item Some options are just transmitted unchanged, these are @option{-1}, @option{-2}, @option{-3} and @option{-i}. @item Option @option{-c} also gets turned into @option{-i}, to be compatible with @command{wdiff} versions up to @samp{0.4}. @item Simple option @option{-a} in @command{wdiff} becomes @option{-A} in @command{mdiff}, @option{-l} becomes @option{-k}, @option{-n} becomes @option{-m}, @option{-p} becomes @option{-o}, @option{-s} becomes @option{-v} and @option{-t} becomes @option{-z}. @item Options introducing strings, which are @option{-w}, @option{-x}, @option{-y} and @option{-z} in @command{wdiff}, respectively become @option{-Y}, @option{-Z}, @option{-Q} and @option{-R} in @command{mdiff}. @item Options @option{-C}, @option{-h} and @option{-v} are processed directly by @command{wdiff} and are not transmitted to @command{mdiff}. @item Further, the @option{-C} option of @command{wdiff} has no equivalent in @command{mdiff}. @item A new option @option{-q} inhibits the message which explains how @command{mdiff} might have been directly called. @item The option @option{--diff-input} (@option{-d}) from @command{wdiff} isn't supported by @command{wdiff2} (yet). @end itemize @comment end ifset EXPERIMENTAL @end ifset @comment ============================================================= @node Experimental @chapter Experimental programs @comment ============================================================= The GNU wdiff source package contains sources for a number of tools besides @command{wdiff} itself. These are considered experimental: they might work for you, but they might just as well fail. The following programs are considered experimental: @itemize @bullet @item @command{mdiff} @item @command{wdiff2} @item @command{unify} @end itemize Building these applications can be configured at build time by passing @option{--with-experimental} to the @file{configure} script. @ifset EXPERIMENTAL @emph{For this build, they have been enabled.} If you encounter a bug in an experimental program, the maintainers would still like to learn about it, but there is a greater chance that they decide not to fix such issues unless you provide a patch as well. @end ifset @ifclear EXPERIMENTAL @emph{For this build, they have been disabled.} Therefore their documentation has been omitted here as well. You can find the full documentation for all parts of GNU wdiff on the @uref{http://www.gnu.org/software/wdiff/, GNU wdiff homepage}. If you feel you'd like to give them a try, you could compile this package from source yourself. @end ifclear @ifset EXPERIMENTAL @menu * Experimental History:: History of the experimental programs @end menu @comment ------------------------------------------------------------- @node Experimental History @section History of the Experimental programs Many users suggested features, which were in turn inviting for the integration of @command{wdiff} into GNU diffutils. Collaboration proved to be rather difficult. After a few years, the @command{wdiff} author finally gave in and created @command{mdiff} as a way to break out of the situation and for becoming able to proceed with users' suggestions. Before @command{mdiff} and the new @command{wdiff2} based on it were officially released, the original author resigned maintainership. The new maintainers had little experience with the code, and therefore decided to mark it experimental. That way, the code wouldn't be lost, but it would be clear that it wasn't as testes as the good old @code{wdiff} command. @end ifset @bye �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/flags.texi.in�����������������������������������������������������������������������0000644�0000000�0000000�00000000024�11744500575�012646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@EXPERIMENTAL_TEXI@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/doc/flags.texi��������������������������������������������������������������������������0000644�0000000�0000000�00000000022�12116513216�012225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@set EXPERIMENTAL ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/�������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12116513224�010076� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/mmap-anon.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003733�12116370307�012154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mmap-anon.m4 serial 10 dnl Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Detect how mmap can be used to create anonymous (not file-backed) memory # mappings. # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS # and MAP_ANON exist and have the same value. # - On HP-UX, only MAP_ANONYMOUS exists. # - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists. # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be # used. AC_DEFUN([gl_FUNC_MMAP_ANON], [ dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. AC_CHECK_FUNC([mmap], [gl_have_mmap=yes], [gl_have_mmap=no]) # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then AC_MSG_CHECKING([for MAP_ANONYMOUS]) AC_EGREP_CPP([I cannot identify this map], [ #include <sys/mman.h> #ifdef MAP_ANONYMOUS I cannot identify this map #endif ], [gl_have_mmap_anonymous=yes]) if test $gl_have_mmap_anonymous != yes; then AC_EGREP_CPP([I cannot identify this map], [ #include <sys/mman.h> #ifdef MAP_ANON I cannot identify this map #endif ], [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON], [Define to a substitute value for mmap()'s MAP_ANONYMOUS flag.]) gl_have_mmap_anonymous=yes]) fi AC_MSG_RESULT([$gl_have_mmap_anonymous]) if test $gl_have_mmap_anonymous = yes; then AC_DEFINE([HAVE_MAP_ANONYMOUS], [1], [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and <sys/mman.h>.]) fi fi ]) �������������������������������������wdiff-1.2.1/m4/localcharset.m4����������������������������������������������������������������������0000644�0000000�0000000�00000001125�12116370307�012726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# localcharset.m4 serial 7 dnl Copyright (C) 2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) AC_CHECK_DECLS_ONCE([getc_unlocked]) dnl Prerequisites of the lib/Makefile.am snippet. AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_GLIBC21]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/setenv.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000011012�12116370307�011562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# setenv.m4 serial 26 dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SETENV], [ AC_REQUIRE([gl_FUNC_SETENV_SEPARATE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else AC_CACHE_CHECK([whether setenv validates arguments], [gl_cv_func_setenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdlib.h> #include <errno.h> #include <string.h> ]], [[ int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ]])], [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi ]) # Like gl_FUNC_SETENV, except prepare for separate compilation # (no REPLACE_SETENV, no AC_LIBOBJ). AC_DEFUN([gl_FUNC_SETENV_SEPARATE], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([setenv]) if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi AC_CHECK_FUNCS_ONCE([setenv]) gl_PREREQ_SETENV ]) AC_DEFUN([gl_FUNC_UNSETENV], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_DECLS_ONCE([unsetenv]) if test $ac_cv_have_decl_unsetenv = no; then HAVE_DECL_UNSETENV=0 fi AC_CHECK_FUNCS([unsetenv]) if test $ac_cv_func_unsetenv = no; then HAVE_UNSETENV=0 else HAVE_UNSETENV=1 dnl Some BSDs return void, failing to do error checking. AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #undef _BSD #define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */ #include <stdlib.h> extern #ifdef __cplusplus "C" #endif int unsetenv (const char *name); ]], [[]])], [gt_cv_func_unsetenv_ret='int'], [gt_cv_func_unsetenv_ret='void'])]) if test $gt_cv_func_unsetenv_ret = 'void'; then AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void instead of int.]) REPLACE_UNSETENV=1 fi dnl Solaris 10 unsetenv does not remove all copies of a name. dnl Haiku alpha 2 unsetenv gets confused by assignment to environ. dnl OpenBSD 4.7 unsetenv("") does not fail. AC_CACHE_CHECK([whether unsetenv obeys POSIX], [gl_cv_func_unsetenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdlib.h> #include <errno.h> extern char **environ; ]], [[ char entry1[] = "a=1"; char entry2[] = "b=2"; char *env[] = { entry1, entry2, NULL }; if (putenv ((char *) "a=1")) return 1; if (putenv (entry2)) return 2; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; if (!unsetenv ("") || errno != EINVAL) return 4; entry2[0] = 'b'; environ = env; if (!getenv ("a")) return 5; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 6; ]])], [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unsetenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_unsetenv_works" in *yes) ;; *) REPLACE_UNSETENV=1 ;; esac fi ]) # Prerequisites of lib/setenv.c. AC_DEFUN([gl_PREREQ_SETENV], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([gl_ENVIRON]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_HEADERS([search.h]) AC_CHECK_FUNCS([tsearch]) ]) # Prerequisites of lib/unsetenv.c. AC_DEFUN([gl_PREREQ_UNSETENV], [ AC_REQUIRE([gl_ENVIRON]) AC_CHECK_HEADERS_ONCE([unistd.h]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/stdint.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000037014�12116370307�011575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdint.m4 serial 43 dnl Copyright (C) 2001-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether <stdint.h> is supported or must be substituted. AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl dnl Check for long long int and unsigned long long int. AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi AC_SUBST([HAVE_LONG_LONG_INT]) AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) dnl Check for <inttypes.h>. dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi AC_SUBST([HAVE_INTTYPES_H]) dnl Check for <sys/types.h>. dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h. if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi AC_SUBST([HAVE_SYS_TYPES_H]) gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi AC_SUBST([HAVE_STDINT_H]) dnl Now see whether we need a substitute <stdint.h>. if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" #endif ] gl_STDINT_INCLUDES [ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; #include <limits.h> /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], [dnl Determine whether the various *_MIN, *_MAX macros are usable dnl in preprocessor expression. We could do it by compiling a test dnl program for each of these macros. It is faster to run a program dnl that inspects the macro expansion. dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> ] gl_STDINT_INCLUDES [ #include <stdio.h> #include <string.h> #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; ]], [[ const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ]])], [gl_cv_header_working_stdint_h=yes], [], [dnl When cross-compiling, assume it works. gl_cv_header_working_stdint_h=yes ]) ]) ]) fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= else dnl Check for <sys/inttypes.h>, and for dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5). AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 else HAVE_SYS_INTTYPES_H=0 fi AC_SUBST([HAVE_SYS_INTTYPES_H]) if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 else HAVE_SYS_BITYPES_H=0 fi AC_SUBST([HAVE_SYS_BITYPES_H]) gl_STDINT_TYPE_PROPERTIES STDINT_H=stdint.h fi AC_SUBST([STDINT_H]) AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) dnl Determine the size of each of the given types in bits. AC_DEFUN([gl_STDINT_BITSIZEOF], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to the number of bits in type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [$2 #include <limits.h>], [result=unknown]) eval gl_cv_bitsizeof_${gltype}=\$result ]) eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, dnl do a syntax check even on unused #if conditions and give an error dnl on valid C code like this: dnl #if 0 dnl # if > 32 dnl # endif dnl #endif result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) eval BITSIZEOF_${GLTYPE}=\$result done m4_foreach_w([gltype], [$1], [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) dnl Determine the signedness of each of the given types. dnl Define HAVE_SIGNED_TYPE if type is signed. AC_DEFUN([gl_CHECK_TYPES_SIGNED], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to 1 if ']gltype[' is a signed integer type.])]) for gltype in $1 ; do AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], result=yes, result=no) eval gl_cv_type_${gltype}_signed=\$result ]) eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done m4_foreach_w([gltype], [$1], [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) dnl Determine the suffix to use for integer constants of the given types. dnl Define t_SUFFIX for each such type. AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], [Define to l, ll, u, ul, ull, etc., as suitable for constants of type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for $gltype integer literal suffix], [gl_cv_type_${gltype}_suffix], [eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ extern $gltype foo; extern $gltype1 foo;]])], [eval gl_cv_type_${gltype}_suffix=\$glsuf]) eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done]) GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) done m4_foreach_w([gltype], [$1], [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) ]) dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <stdio.h> # include <time.h> # include <wchar.h> #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. if test $BITSIZEOF_WINT_T -lt 32; then BITSIZEOF_WINT_T=32 fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) # Hey Emacs! # Local Variables: # indent-tabs-mode: nil # End: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/strerror.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000006236�12116370307�012154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strerror.m4 serial 17 dnl Copyright (C) 2002, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <string.h> ]], [[if (!*strerror (-2)) return 1;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac ]) ]) case "$gl_cv_func_working_strerror" in *yes) ;; *) dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 ;; esac m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's dnl buffer, we must replace strerror. case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to <errno.h>, or any fix for strerror(0). Replace it. REPLACE_STRERROR=1 fi ]) dnl Detect if strerror(0) passes (that is, does not set errno, and does not dnl return a string that matches strerror(-1)). AC_DEFUN([gl_FUNC_STRERROR_0], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles REPLACE_STRERROR_0=0 AC_CACHE_CHECK([whether strerror(0) succeeds], [gl_cv_func_strerror_0_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <string.h> #include <errno.h> ]], [[int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result;]])], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) does not return a message implying success.]) ;; esac ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/time_h.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000010206�12116370307�011527� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Configure a more-standard replacement for <time.h>. # Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. # serial 7 # 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. # Written by Paul Eggert and Jim Meyering. AC_DEFUN([gl_HEADER_TIME_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_TIME_H_BODY]) ]) AC_DEFUN([gl_HEADER_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) ]) dnl Check whether 'struct timespec' is declared dnl in time.h, sys/time.h, or pthread.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CACHE_CHECK([for struct timespec in <time.h>], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <time.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <sys/time.h>], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/time.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_sys_time_h=yes], [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <pthread.h>], [gl_cv_sys_struct_timespec_in_pthread_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <pthread.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_pthread_h=yes], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) ]) AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], [ GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/getopt.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000030134�12116370307�011566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getopt.m4 serial 44 dnl Copyright (C) 2002-2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Request a POSIX compliant getopt function. AC_DEFUN([gl_FUNC_GETOPT_POSIX], [ m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) dnl Other modules can request the gnulib implementation of the getopt dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS. dnl argp.m4 does this. m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [ REPLACE_GETOPT=1 ], [ REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi ]) if test $REPLACE_GETOPT = 1; then dnl Arrange for getopt.h to be created. gl_GETOPT_SUBSTITUTE_HEADER fi ]) # Request a POSIX compliant getopt function with GNU extensions (such as # options with optional arguments) and the functions getopt_long, # getopt_long_only. AC_DEFUN([gl_FUNC_GETOPT_GNU], [ m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU]) AC_REQUIRE([gl_FUNC_GETOPT_POSIX]) ]) # Determine whether to replace the entire getopt facility. AC_DEFUN([gl_GETOPT_CHECK_HEADERS], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_PROG_AWK]) dnl for awk that supports ENVIRON dnl Persuade Solaris <unistd.h> to declare optarg, optind, opterr, optopt. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) gl_CHECK_NEXT_HEADERS([getopt.h]) if test $ac_cv_header_getopt_h = yes; then HAVE_GETOPT_H=1 else HAVE_GETOPT_H=0 fi AC_SUBST([HAVE_GETOPT_H]) gl_replace_getopt= dnl Test whether <getopt.h> is available. if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes]) fi dnl Test whether the function getopt_long is available. if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes]) fi dnl POSIX 2008 does not specify leading '+' behavior, but see dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on dnl the next version of POSIX. For now, we only guarantee leading '+' dnl behavior with getopt-gnu. if test -z "$gl_replace_getopt"; then AC_CACHE_CHECK([whether getopt is POSIX compatible], [gl_cv_func_getopt_posix], [ dnl Merging these three different test programs into a single one dnl would require a reset mechanism. On BSD systems, it can be done dnl through 'optreset'; on some others (glibc), it can be done by dnl setting 'optind' to 0; on others again (HP-UX, IRIX, OSF/1, dnl Solaris 9, musl libc), there is no such mechanism. if test $cross_compiling = no; then dnl Sanity check. Succeeds everywhere (except on MSVC, dnl which lacks <unistd.h> and getopt() entirely). AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char a[] = "-a"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, a, foo, bar, NULL }; int c; c = getopt (4, argv, "ab"); if (!(c == 'a')) return 1; c = getopt (4, argv, "ab"); if (!(c == -1)) return 2; if (!(optind == 2)) return 3; return 0; } ]])], [gl_cv_func_getopt_posix=maybe], [gl_cv_func_getopt_posix=no]) if test $gl_cv_func_getopt_posix = maybe; then dnl Sanity check with '+'. Succeeds everywhere (except on MSVC, dnl which lacks <unistd.h> and getopt() entirely). AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char donald[] = "donald"; static char p[] = "-p"; static char billy[] = "billy"; static char duck[] = "duck"; static char a[] = "-a"; static char bar[] = "bar"; char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; int c; c = getopt (7, argv, "+abp:q:"); if (!(c == -1)) return 4; if (!(strcmp (argv[0], "program") == 0)) return 5; if (!(strcmp (argv[1], "donald") == 0)) return 6; if (!(strcmp (argv[2], "-p") == 0)) return 7; if (!(strcmp (argv[3], "billy") == 0)) return 8; if (!(strcmp (argv[4], "duck") == 0)) return 9; if (!(strcmp (argv[5], "-a") == 0)) return 10; if (!(strcmp (argv[6], "bar") == 0)) return 11; if (!(optind == 1)) return 12; return 0; } ]])], [gl_cv_func_getopt_posix=maybe], [gl_cv_func_getopt_posix=no]) fi if test $gl_cv_func_getopt_posix = maybe; then dnl Detect Mac OS X 10.5, AIX 7.1, mingw bug. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char ab[] = "-ab"; char *argv[3] = { program, ab, NULL }; if (getopt (2, argv, "ab:") != 'a') return 13; if (getopt (2, argv, "ab:") != '?') return 14; if (optopt != 'b') return 15; if (optind != 2) return 16; return 0; } ]])], [gl_cv_func_getopt_posix=yes], [gl_cv_func_getopt_posix=no]) fi else case "$host_os" in darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; *) gl_cv_func_getopt_posix="guessing yes";; esac fi ]) case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;; esac fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_getopt_gnu], [# Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the # optstring is necessary for programs like m4 that have POSIX-mandated # semantics for supporting options interspersed with files. # Also, since getopt_long is a GNU extension, we require optind=0. # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; # so take care to revert to the correct (non-)export state. dnl GNU Coding Standards currently allow awk but not env; besides, env dnl is ambiguous with environment values that contain newlines. gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in xx) gl_had_POSIXLY_CORRECT=exported ;; x) gl_had_POSIXLY_CORRECT=yes ;; *) gl_had_POSIXLY_CORRECT= ;; esac POSIXLY_CORRECT=1 export POSIXLY_CORRECT AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include <getopt.h> #include <stddef.h> #include <string.h> ]GL_NOCRASH[ ]], [[ int result = 0; nocrash_init(); /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ { static char conftest[] = "conftest"; static char plus[] = "-+"; char *argv[3] = { conftest, plus, NULL }; opterr = 0; if (getopt (2, argv, "+a") != '?') result |= 1; } /* This code succeeds on glibc 2.8, mingw, and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ { static char program[] = "program"; static char p[] = "-p"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, p, foo, bar, NULL }; optind = 1; if (getopt (4, argv, "p::") != 'p') result |= 2; else if (optarg != NULL) result |= 4; else if (getopt (4, argv, "p::") != -1) result |= 6; else if (optind != 2) result |= 8; } /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ { static char program[] = "program"; static char foo[] = "foo"; static char p[] = "-p"; char *argv[] = { program, foo, p, NULL }; optind = 0; if (getopt (3, argv, "-p") != 1) result |= 16; else if (getopt (3, argv, "-p") != 'p') result |= 16; } /* This code fails on glibc 2.11. */ { static char program[] = "program"; static char b[] = "-b"; static char a[] = "-a"; char *argv[] = { program, b, a, NULL }; optind = opterr = 0; if (getopt (3, argv, "+:a:b") != 'b') result |= 32; else if (getopt (3, argv, "+:a:b") != ':') result |= 32; } /* This code dumps core on glibc 2.14. */ { static char program[] = "program"; static char w[] = "-W"; static char dummy[] = "dummy"; char *argv[] = { program, w, dummy, NULL }; optind = opterr = 1; if (getopt (3, argv, "W;") != 'W') result |= 64; } return result; ]])], [gl_cv_func_getopt_gnu=yes], [gl_cv_func_getopt_gnu=no], [dnl Cross compiling. Assume the worst, even on glibc platforms. gl_cv_func_getopt_gnu="guessing no" ]) case $gl_had_POSIXLY_CORRECT in exported) ;; yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;; *) AS_UNSET([POSIXLY_CORRECT]) ;; esac ]) if test "$gl_cv_func_getopt_gnu" != yes; then gl_replace_getopt=yes else AC_CACHE_CHECK([for working GNU getopt_long function], [gl_cv_func_getopt_long_gnu], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <getopt.h> #include <stddef.h> #include <string.h> ]], [[static const struct option long_options[] = { { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; /* This code fails on OpenBSD 5.0. */ { static char program[] = "program"; static char xtremel[] = "--xtremel"; char *argv[] = { program, xtremel, NULL }; int option_index; optind = 1; opterr = 0; if (getopt_long (2, argv, "", long_options, &option_index) != 1003) return 1; } return 0; ]])], [gl_cv_func_getopt_long_gnu=yes], [gl_cv_func_getopt_long_gnu=no], [dnl Cross compiling. Guess no on OpenBSD, yes otherwise. case "$host_os" in openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; *) gl_cv_func_getopt_long_gnu="guessing yes";; esac ]) ]) case "$gl_cv_func_getopt_long_gnu" in *yes) ;; *) gl_replace_getopt=yes ;; esac fi fi ]) AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], [ GETOPT_H=getopt.h AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], [Define to rpl_ if the getopt replacement functions and variables should be used.]) AC_SUBST([GETOPT_H]) ]) # Prerequisites of lib/getopt*. AC_DEFUN([gl_PREREQ_GETOPT], [ AC_CHECK_DECLS_ONCE([getenv]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/longlong.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000011203�12116370307�012077� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# longlong.m4 serial 17 dnl Copyright (C) 1999-2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug is not important, since dnl nobody cross compiles for this platform as far as we know. AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include <limits.h> @%:@ifndef LLONG_MAX @%:@ define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) @%:@ define LLONG_MAX (HALF - 1 + HALF) @%:@endif]], [[long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0;]])], [], [ac_cv_type_long_long_int=no], [:]) fi fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) fi ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [], [ac_cv_type_unsigned_long_long_int=no]) fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) fi ]) # Expands to a C program that can be used to test for simultaneous support # of 'long long' and 'unsigned long long'. We don't want to say that # 'long long' is available if 'unsigned long long' is not, or vice versa, # because too many programs rely on the symmetry between signed and unsigned # integer types (excluding 'bool'). AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull));]]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/gnulib-common.m4���������������������������������������������������������������������0000644�0000000�0000000�00000033321�12116370307�013033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gnulib-common.m4 serial 33 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([unused_parameter], [/* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif ]) dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ]) # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( [GNULIB_[]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. # The shell variable's value is a C preprocessor expression that evaluates # to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], [ dnl Simplify the expression VALUE || 1 to 1. $1=1 ], [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], [gl_MODULE_INDICATOR_CONDITION])]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) # modifies the shell variable to include the given condition. The shell # variable's value is a C preprocessor expression that evaluates to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [ dnl Simplify the expression 1 || CONDITION to 1. if test "$[]$1" != 1; then dnl Simplify the expression 0 || CONDITION to CONDITION. if test "$[]$1" = 0; then $1=$2 else $1="($[]$1 || $2)" fi fi ]) # gl_MODULE_INDICATOR([modulename]) # defines a C macro indicating the presence of the given module # in a location where it can be used. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 0 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [gl_MODULE_INDICATOR_CONDITION], [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module $1 shall be considered present.]) ]) # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) # gl_ASSERT_NO_GNULIB_POSIXCHECK # asserts that there will never be a need to #define GNULIB_POSIXCHECK. # and thereby enables an optimization of configure and config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. dnl But hide this definition from 'aclocal'. AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS # asserts that there will be no gnulib tests in the scope of the configure.ac # and thereby enables an optimization of config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [ dnl Override gl_MODULE_INDICATOR_FOR_TESTS. AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) ]) # Test whether <features.h> exists. # Set HAVE_FEATURES_H. AC_DEFUN([gl_FEATURES_H], [ AC_CHECK_HEADERS_ONCE([features.h]) if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi AC_SUBST([HAVE_FEATURES_H]) ]) # m4_foreach_w # is a backport of autoconf-2.59c's m4_foreach_w. # Remove this macro when we can assume autoconf >= 2.60. m4_ifndef([m4_foreach_w], [m4_define([m4_foreach_w], [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) # ---------------------------------------------------- # Backport of autoconf-2.63b's macro. # Remove this macro when we can assume autoconf >= 2.64. m4_ifndef([AS_VAR_IF], [m4_define([AS_VAR_IF], [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. # This is like AC_PROG_CC_C99, except that # - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60, # - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC # <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00367.html>, # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 # <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00441.html>. # Remaining problems: # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options # to CC twice # <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00431.html>. # - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ dnl Change that version number to the minimum Autoconf version that supports dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls. m4_version_prereq([9.0], [AC_REQUIRE([AC_PROG_CC_C99])], [AC_REQUIRE([AC_PROG_CC_STDC])]) ]) # gl_PROG_AR_RANLIB # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override # the values. AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and dnl library formats. In particular, the GNU binutils programs ar, ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], [ #ifdef __ACK__ Amsterdam #endif ], [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) if test -z "$AR"; then if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl Use the Automake-documented default values for AR and ARFLAGS, dnl but prefer ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi else if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else dnl Use the ranlib program if it is available. AC_PROG_RANLIB fi fi AC_SUBST([RANLIB]) ]) # AC_PROG_MKDIR_P # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix # for interoperability with automake-1.9.6 from autoconf-2.62. # Remove this macro when we can assume autoconf >= 2.62 or # autoconf >= 2.60 && automake >= 1.10. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ m4_ifdef([AC_PROG_MKDIR_P], [ dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. m4_define([AC_PROG_MKDIR_P], m4_defn([AC_PROG_MKDIR_P])[ AC_SUBST([MKDIR_P])])], [ dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. AC_DEFUN_ONCE([AC_PROG_MKDIR_P], [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake MKDIR_P='$(mkdir_p)' AC_SUBST([MKDIR_P])])]) ]) # AC_C_RESTRICT # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ # works. # This definition can be removed once autoconf >= 2.62 can be assumed. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[typedef int * int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; }]], [[int s[1]; int * $ac_kw t = s; t[0] = 0; return foo(t)]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done ]) AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict, even though the corresponding Sun C compiler does, which causes "#define restrict _Restrict" in the previous line. Perhaps some future version of Sun C++ will work with _Restrict; if so, it'll probably define __RESTRICT, just as Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ]) ]) # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some # macros invoke AC_C_BIGENDIAN with arguments. AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. # This macro should be used instead of AC_CACHE_VAL when it is not surrounded # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ saved_as_echo_n="$as_echo_n" as_echo_n=':' AC_CACHE_VAL([$1], [$2]) as_echo_n="$saved_as_echo_n" ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/iconv.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000021620�12116370307�011402� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# iconv.m4 serial 18 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <iconv.h> #include <string.h> int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; }]])], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [ changequote(,)dnl case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac changequote([,])dnl ]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [m4_ifdef([gl_00GNULIB], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi ]) fi ]) ����������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/strstr.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000007746�12116370307�011642� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strstr.m4 serial 16 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check that strstr works. AC_DEFUN([gl_FUNC_STRSTR_SIMPLE], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MEMCHR]) if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092. AC_CACHE_CHECK([whether strstr works], [gl_cv_func_strstr_works_always], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <string.h> /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P ]], [[return !!strstr (HAYSTACK, NEEDLE); ]])], [gl_cv_func_strstr_works_always=yes], [gl_cv_func_strstr_works_always=no], [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not dnl affected, since it uses different source code for strstr than dnl glibc. dnl Assume that it works on all other platforms, even if it is not dnl linear. AC_EGREP_CPP([Lucky user], [ #ifdef __GNU_LIBRARY__ #include <features.h> #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif ], [gl_cv_func_strstr_works_always="guessing yes"], [gl_cv_func_strstr_works_always="guessing no"]) ]) ]) case "$gl_cv_func_strstr_works_always" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi ]) # gl_FUNC_STRSTR_SIMPLE dnl Additionally, check that strstr is efficient. AC_DEFUN([gl_FUNC_STRSTR], [ AC_REQUIRE([gl_FUNC_STRSTR_SIMPLE]) if test $REPLACE_STRSTR = 0; then AC_CACHE_CHECK([whether strstr works in linear time], [gl_cv_func_strstr_linear], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <signal.h> /* for signal */ #include <string.h> /* for strstr */ #include <stdlib.h> /* for malloc */ #include <unistd.h> /* for alarm */ static void quit (int sig) { exit (sig + 128); } ]], [[ int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 2); char *needle = (char *) malloc (m + 2); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also have quadratic strstr. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; haystack[2 * m + 1] = 0; memset (needle, 'A', m); needle[m] = 'B'; needle[m + 1] = 0; if (!strstr (haystack, needle)) result |= 1; } return result; ]])], [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no], [dnl Only glibc > 2.12 on processors without SSE 4.2 instructions and dnl cygwin > 1.7.7 are known to have a bug-free strstr that works in dnl linear time. AC_EGREP_CPP([Lucky user], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ && !(defined __i386__ || defined __x86_64__) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #endif ], [gl_cv_func_strstr_linear="guessing yes"], [gl_cv_func_strstr_linear="guessing no"]) ]) ]) case "$gl_cv_func_strstr_linear" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi ]) # gl_FUNC_STRSTR ��������������������������wdiff-1.2.1/m4/mbiter.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000000642�12116370307�011547� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbiter.m4 serial 7 dnl Copyright (C) 2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl autoconf tests required for use of mbiter.h dnl From Bruno Haible. AC_DEFUN([gl_MBITER], [ AC_REQUIRE([AC_TYPE_MBSTATE_T]) : ]) ����������������������������������������������������������������������������������������������wdiff-1.2.1/m4/lib-prefix.m4������������������������������������������������������������������������0000644�0000000�0000000�00000020422�12116370307�012324� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/getdelim.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000004714�12116370307�012063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getdelim.m4 serial 10 dnl Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc. dnl dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.59]) AC_DEFUN([gl_FUNC_GETDELIM], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) dnl Persuade glibc <stdio.h> to declare getdelim(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([getdelim]) AC_CHECK_FUNCS_ONCE([getdelim]) if test $ac_cv_func_getdelim = yes; then HAVE_GETDELIM=1 dnl Found it in some library. Verify that it works. AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim], [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) return 2; } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getdelim (&line, &siz, '\n', in) == -1) return 3; } return 0; } ]])], [gl_cv_func_working_getdelim=yes] dnl The library version works. , [gl_cv_func_working_getdelim=no] dnl The library version does NOT work. , dnl We're cross compiling. Assume it works on glibc2 systems. [AC_EGREP_CPP([Lucky GNU user], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [gl_cv_func_working_getdelim="guessing yes"], [gl_cv_func_working_getdelim="guessing no"])] )]) case "$gl_cv_func_working_getdelim" in *no) REPLACE_GETDELIM=1 ;; esac else HAVE_GETDELIM=0 fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi ]) # Prerequisites of lib/getdelim.c. AC_DEFUN([gl_PREREQ_GETDELIM], [ AC_CHECK_FUNCS([flockfile funlockfile]) AC_CHECK_DECLS([getc_unlocked]) ]) ����������������������������������������������������wdiff-1.2.1/m4/stat.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000005214�12116370307�011240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 11 # Copyright (C) 2009-2013 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. AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) dnl mingw is the only known platform where stat(".") and stat("./") differ AC_CACHE_CHECK([whether stat handles trailing slashes on directories], [gl_cv_func_stat_dir_slash], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/stat.h> ]], [[struct stat st; return stat (".", &st) != stat ("./", &st);]])], [gl_cv_func_stat_dir_slash=yes], [gl_cv_func_stat_dir_slash=no], [case $host_os in mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac])]) dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/stat.h> ]], [[int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_DIR], [1], [Define to 1 if stat needs help when passed a directory name with a trailing slash]);; esac case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs help when passed a file name with a trailing slash]);; esac ]) # Prerequisites of lib/stat.c. AC_DEFUN([gl_PREREQ_STAT], [:]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/string_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000012714�12116370307�012105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Configure a GNU-like replacement for <string.h>. # Copyright (C) 2007-2013 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 21 # Written by Paul Eggert. AC_DEFUN([gl_HEADER_STRING_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_STRING_H_BODY]) ]) AC_DEFUN([gl_HEADER_STRING_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include <string.h> ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp]) ]) AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) ����������������������������������������������������wdiff-1.2.1/m4/onceonly.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000010627�12116370307�012117� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# onceonly.m4 serial 9 dnl Copyright (C) 2002-2003, 2005-2006, 2008-2013 Free Software Foundation, dnl Inc. dnl dnl This file is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 3 of the License, or dnl (at your option) any later version. dnl dnl This file is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this file. If not, see <http://www.gnu.org/licenses/>. dnl dnl As a special exception to the GNU General Public License, dnl this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl This file defines some "once only" variants of standard autoconf macros. dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS dnl AC_REQUIRE([AC_FUNC_STRCOLL]) like AC_FUNC_STRCOLL dnl The advantage is that the check for each of the headers/functions/decls dnl will be put only once into the 'configure' file. It keeps the size of dnl the 'configure' file down, and avoids redundant output when 'configure' dnl is run. dnl The drawback is that the checks cannot be conditionalized. If you write dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to dnl empty, and the check will be inserted before the body of the AC_DEFUNed dnl function. dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested dnl headers at once, thus reducing the size of 'configure'. It is known to work dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%. dnl Autoconf version 2.59 plus gnulib is required; this file is not needed dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first dnl argument! AC_PREREQ([2.59]) # AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of # AC_CHECK_HEADERS(HEADER1 HEADER2 ...). AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ : m4_foreach_w([gl_HEADER_NAME], [$1], [ AC_DEFUN([gl_CHECK_HEADER_]m4_quote(m4_translit(gl_HEADER_NAME, [./-], [___])), [ m4_divert_text([INIT_PREPARE], [gl_header_list="$gl_header_list gl_HEADER_NAME"]) gl_HEADERS_EXPANSION AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])), [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.]) ]) AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(m4_translit(gl_HEADER_NAME, [./-], [___]))) ]) ]) m4_define([gl_HEADERS_EXPANSION], [ m4_divert_text([DEFAULTS], [gl_header_list=]) AC_CHECK_HEADERS([$gl_header_list]) m4_define([gl_HEADERS_EXPANSION], []) ]) # AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of # AC_CHECK_FUNCS(FUNC1 FUNC2 ...). AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ : m4_foreach_w([gl_FUNC_NAME], [$1], [ AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [ m4_divert_text([INIT_PREPARE], [gl_func_list="$gl_func_list gl_FUNC_NAME"]) gl_FUNCS_EXPANSION AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])), [Define to 1 if you have the ']m4_defn([gl_FUNC_NAME])[' function.]) ]) AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME])) ]) ]) m4_define([gl_FUNCS_EXPANSION], [ m4_divert_text([DEFAULTS], [gl_func_list=]) AC_CHECK_FUNCS([$gl_func_list]) m4_define([gl_FUNCS_EXPANSION], []) ]) # AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of # AC_CHECK_DECLS(DECL1, DECL2, ...). AC_DEFUN([AC_CHECK_DECLS_ONCE], [ : m4_foreach_w([gl_DECL_NAME], [$1], [ AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [ AC_CHECK_DECLS(m4_defn([gl_DECL_NAME])) ]) AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME])) ]) ]) ���������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/multiarch.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003674�12116370307�012265� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# multiarch.m4 serial 7 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine whether the compiler is or may be producing universal binaries. # # On Mac OS X 10.5 and later systems, the user can create libraries and # executables that work on multiple system types--known as "fat" or # "universal" binaries--by specifying multiple '-arch' options to the # compiler but only a single '-arch' option to the preprocessor. Like # this: # # ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CPP="gcc -E" CXXCPP="g++ -E" # # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. gl_cv_c_multiarch=no AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; ]])], [ dnl Check for potential -arch flags. It is not universal unless dnl there are at least two -arch flags with different values. arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi AC_SUBST([APPLE_UNIVERSAL_BUILD]) ]) ��������������������������������������������������������������������wdiff-1.2.1/m4/locale-fr.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000024225�12116370307�012134� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale-fr.m4 serial 17 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a french locale with traditional encoding. AC_DEFUN([gt_LOCALE_FR], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) ]) dnl Determine the name of a french locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_FR_UTF8], [ AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 AC_SUBST([LOCALE_FR_UTF8]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/stdio_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000022433�12116370307�011720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdio_h.m4 serial 43 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDIO_H], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. GNULIB_FSCANF=1 gl_MODULE_INDICATOR([fscanf]) GNULIB_SCANF=1 gl_MODULE_INDICATOR([scanf]) GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 AC_LIBOBJ([stdio-read]) fi ]) dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include <stdio.h> ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) ]) AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/lib-link.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000100443�12116370307�011766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-link.m4 serial 26 (gettext-0.18.2) dnl Copyright (C) 2001-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_LINK_IFELSE( [AC_LANG_PROGRAM([[$3]], [[$4]])], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_libname_spec, dnl acl_library_names_spec, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/sys_stat_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000007236�12116370307�012453� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_stat_h.m4 serial 28 -*- Autoconf -*- dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Eric Blake. dnl Provide a GNU-like <sys/stat.h>. AC_DEFUN([gl_HEADER_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override 'struct stat'. m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_ST_SIZE=0 ]) AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) if test $WINDOWS_64_BIT_ST_SIZE = 1; then AC_DEFINE([_GL_WINDOWS_64_BIT_ST_SIZE], [1], [Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct stat.st_size becomes 64-bit.]) fi dnl Define types that are supposed to be defined in <sys/types.h> or dnl <sys/stat.h>. AC_CHECK_TYPE([nlink_t], [], [AC_DEFINE([nlink_t], [int], [Define to the type of st_nlink in struct stat, or a supertype.])], [#include <sys/types.h> #include <sys/stat.h>]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h> ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) ]) # gl_HEADER_SYS_STAT_H AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT]) GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT]) GNULIB_FSTATAT=0; AC_SUBST([GNULIB_FSTATAT]) GNULIB_FUTIMENS=0; AC_SUBST([GNULIB_FUTIMENS]) GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) GNULIB_MKDIRAT=0; AC_SUBST([GNULIB_MKDIRAT]) GNULIB_MKFIFO=0; AC_SUBST([GNULIB_MKFIFO]) GNULIB_MKFIFOAT=0; AC_SUBST([GNULIB_MKFIFOAT]) GNULIB_MKNOD=0; AC_SUBST([GNULIB_MKNOD]) GNULIB_MKNODAT=0; AC_SUBST([GNULIB_MKNODAT]) GNULIB_STAT=0; AC_SUBST([GNULIB_STAT]) GNULIB_UTIMENSAT=0; AC_SUBST([GNULIB_UTIMENSAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/iswblank.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002341�12116370307�012075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# iswblank.m4 serial 4 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ISWBLANK], [ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([gl_WCTYPE_H]) dnl Persuade glibc <wctype.h> to declare iswblank(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([iswblank]) AC_CHECK_DECLS([iswblank], , , [[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> ]]) if test $ac_cv_func_iswblank = no; then HAVE_ISWBLANK=0 if test $ac_cv_have_decl_iswblank = yes; then REPLACE_ISWBLANK=1 fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>. : else if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then dnl Redefine only iswblank. : fi fi ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/fcntl-o.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000011074�12116370307�011630� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fcntl-o.m4 serial 4 dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> #include <sys/stat.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <io.h> # include <stdlib.h> # defined sleep(n) _sleep ((n) * 1000) #endif #include <fcntl.h> #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [gl_cv_header_working_fcntl_h=cross-compiling])]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/xsize.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000000626�12116370307�011431� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# xsize.m4 serial 5 dnl Copyright (C) 2003-2004, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_CHECK_HEADERS([stdint.h]) ]) ����������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/wcwidth.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000005652�12116370307�011744� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wcwidth.m4 serial 23 dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_WCWIDTH], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc <wchar.h> to declare wcwidth(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_HEADERS_ONCE([wchar.h]) AC_CHECK_FUNCS_ONCE([wcwidth]) AC_CHECK_DECLS([wcwidth], [], [], [[ /* AIX 3.2.5 declares wcwidth in <string.h>. */ #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> ]]) if test $ac_cv_have_decl_wcwidth != yes; then HAVE_DECL_WCWIDTH=0 fi if test $ac_cv_func_wcwidth = yes; then HAVE_WCWIDTH=1 dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1. dnl On OpenBSD 5.0, wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1. dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1. dnl This leads to bugs in 'ls' (coreutils). AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales], [gl_cv_func_wcwidth_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> /* AIX 3.2.5 declares wcwidth in <string.h>. */ #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if !HAVE_DECL_WCWIDTH extern # ifdef __cplusplus "C" # endif int wcwidth (int); #endif int main () { int result = 0; if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL) { if (wcwidth (0x0301) > 0) result |= 1; if (wcwidth (0x05B0) > 0) result |= 2; if (wcwidth (0x200B) > 0) result |= 4; } return result; }]])], [gl_cv_func_wcwidth_works=yes], [gl_cv_func_wcwidth_works=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc and AIX 7 systems. *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; *) gl_cv_func_wcwidth_works="guessing no";; esac changequote([,])dnl ]) ]) case "$gl_cv_func_wcwidth_works" in *yes) ;; *no) REPLACE_WCWIDTH=1 ;; esac else HAVE_WCWIDTH=0 fi dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not dnl have the wcwidth function, then it does not declare it. ]) ��������������������������������������������������������������������������������������wdiff-1.2.1/m4/msvc-inval.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001334�12116370307�012343� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_INVAL], [ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], [Define to 1 on MSVC platforms that have the "invalid parameter handler" concept.]) else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/error.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000001510�12116370307�011411� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 14 # Copyright (C) 1996-1998, 2001-2004, 2009-2013 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. AC_DEFUN([gl_ERROR], [ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer dnl maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <error.h>]], [[error_at_line (0, 0, "", 0, "an error occurred");]])], [ac_cv_lib_error_at_line=yes], [ac_cv_lib_error_at_line=no])]) ]) # Prerequisites of lib/error.c. AC_DEFUN([gl_PREREQ_ERROR], [ AC_REQUIRE([AC_FUNC_STRERROR_R]) : ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/printf.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000166350�12116370307�011600� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# printf.m4 serial 50 dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Test whether the *printf family of functions supports the 'j', 'z', 't', dnl 'L' size specifiers. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_sizes_c99. AC_DEFUN([gl_PRINTF_SIZES_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports size specifiers as in C99], [gl_cv_func_printf_sizes_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stddef.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #if HAVE_STDINT_H_WITH_UINTMAX # include <stdint.h> #endif #if HAVE_INTTYPES_H_WITH_UINTMAX # include <inttypes.h> #endif static char buf[100]; int main () { int result = 0; #if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX buf[0] = '\0'; if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0 || strcmp (buf, "12345671 33") != 0) result |= 1; #endif buf[0] = '\0'; if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0 || strcmp (buf, "12345672 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0 || strcmp (buf, "12345673 33") != 0) result |= 4; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0 || strcmp (buf, "1.5 33") != 0) result |= 8; return result; }]])], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";; darwin*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_printf_sizes_c99="guessing no";; openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_sizes_c99="guessing no";; netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_sizes_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports 'long double' dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_long_double. AC_DEFUN([gl_PRINTF_LONG_DOUBLE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports 'long double' arguments], [gl_cv_func_printf_long_double], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[10000]; int main () { int result = 0; buf[0] = '\0'; if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000 33") != 0) result |= 1; buf[0] = '\0'; if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000e+00 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.75 33") != 0) result |= 4; return result; }]])], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no], [ changequote(,)dnl case "$host_os" in beos*) gl_cv_func_printf_long_double="guessing no";; mingw* | pw*) gl_cv_func_printf_long_double="guessing no";; *) gl_cv_func_printf_long_double="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports infinite and NaN dnl 'double' arguments and negative zero arguments in the %f, %e, %g dnl directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite. AC_DEFUN([gl_PRINTF_INFINITE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports infinite 'double' arguments], [gl_cv_func_printf_infinite], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static int have_minus_zero () { static double plus_zero = 0.0; double minus_zero = - plus_zero; return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0; } static char buf[10000]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%f", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%f", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%f", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%e", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 4; if (sprintf (buf, "%e", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 4; if (sprintf (buf, "%e", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%g", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 16; if (sprintf (buf, "%g", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 16; if (sprintf (buf, "%g", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; /* This test fails on HP-UX 10.20. */ if (have_minus_zero ()) if (sprintf (buf, "%g", - zero) < 0 || strcmp (buf, "-0") != 0) result |= 64; return result; }]])], [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";; darwin*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";; hpux*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_infinite="guessing no";; netbsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_infinite="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports infinite and NaN dnl 'long double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite_long_double. AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_BIGENDIAN]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl The user can set or unset the variable gl_printf_safe to indicate dnl that he wishes a safe handling of non-IEEE-754 'long double' values. if test -n "$gl_printf_safe"; then AC_DEFINE([CHECK_PRINTF_SAFE], [1], [Define if you wish *printf() functions that have a safe handling of non-IEEE-754 'long double' values.]) fi case "$gl_cv_func_printf_long_double" in *yes) AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments], [gl_cv_func_printf_infinite_long_double], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ ]GL_NOCRASH[ #include <float.h> #include <stdio.h> #include <string.h> static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static char buf[10000]; static long double zeroL = 0.0L; int main () { int result = 0; nocrash_init(); if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Le", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; #if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Representation of an 80-bit 'long double' as an initializer for a sequence of 'unsigned int' words. */ # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else # define LDBL80_WORDS(exponent,manthi,mantlo) \ { mantlo, manthi, exponent } # endif { /* Quiet NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Signalling NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Pseudo-NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; } { /* Pseudo-Infinity. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; } { /* Pseudo-Zero. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; } { /* Unnormalized number. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; } { /* Pseudo-Denormal. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; } #endif return result; }]])], [gl_cv_func_printf_infinite_long_double=yes], [gl_cv_func_printf_infinite_long_double=no], [ changequote(,)dnl case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";; *) case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite_long_double="guessing no";; esac ;; esac changequote([,])dnl ]) ]) ;; *) gl_cv_func_printf_infinite_long_double="irrelevant" ;; esac ]) dnl Test whether the *printf family of functions supports the 'a' and 'A' dnl conversion specifier for hexadecimal output of floating-point numbers. dnl (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_a. AC_DEFUN([gl_PRINTF_DIRECTIVE_A], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives], [gl_cv_func_printf_directive_a], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "0x1.922p+1 33") != 0 && strcmp (buf, "0x3.244p+0 33") != 0 && strcmp (buf, "0x6.488p-1 33") != 0 && strcmp (buf, "0xc.91p-2 33") != 0)) result |= 1; if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "-0X1.922P+1 33") != 0 && strcmp (buf, "-0X3.244P+0 33") != 0 && strcmp (buf, "-0X6.488P-1 33") != 0 && strcmp (buf, "-0XC.91P-2 33") != 0)) result |= 2; /* This catches a FreeBSD 6.1 bug: it doesn't round. */ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 || (strcmp (buf, "0x1.83p+0 33") != 0 && strcmp (buf, "0x3.05p-1 33") != 0 && strcmp (buf, "0x6.0ap-2 33") != 0 && strcmp (buf, "0xc.14p-3 33") != 0)) result |= 4; /* This catches a FreeBSD 6.1 bug. See <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0 || buf[0] == '0') result |= 8; /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug. */ if (sprintf (buf, "%.1a", 1.999) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 16; /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */ if (sprintf (buf, "%.1La", 1.999L) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 32; return result; }]])], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no], [ case "$host_os" in # Guess yes on glibc >= 2.5 systems. *-gnu*) AC_EGREP_CPP([BZ2908], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__ BZ2908 #endif #endif ], [gl_cv_func_printf_directive_a="guessing yes"], [gl_cv_func_printf_directive_a="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_a="guessing no";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports the %F format dnl directive. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_f. AC_DEFUN([gl_PRINTF_DIRECTIVE_F], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'F' directive], [gl_cv_func_printf_directive_f], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0 || strcmp (buf, "1234567.000000 33") != 0) result |= 1; if (sprintf (buf, "%F", 1.0 / zero) < 0 || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0)) result |= 2; /* This catches a Cygwin 1.5.x bug. */ if (sprintf (buf, "%.F", 1234.0) < 0 || strcmp (buf, "1234") != 0) result |= 4; return result; }]])], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";; darwin*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_f="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the %n format dnl directive. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_n. AC_DEFUN([gl_PRINTF_DIRECTIVE_N], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'n' directive], [gl_cv_func_printf_directive_n], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef _MSC_VER /* See page about "Parameter Validation" on msdn.microsoft.com. */ static void cdecl invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { exit (1); } #endif static char fmtstring[10]; static char buf[100]; int main () { int count = -1; #ifdef _MSC_VER _set_invalid_parameter_handler (invalid_parameter_handler); #endif /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ strcpy (fmtstring, "%d %n"); if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0 || strcmp (buf, "123 ") != 0 || count != 4) return 1; return 0; }]])], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no], [ changequote(,)dnl case "$host_os" in mingw*) gl_cv_func_printf_directive_n="guessing no";; *) gl_cv_func_printf_directive_n="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the %ls format dnl directive and in particular, when a precision is specified, whether dnl the functions stop converting the wide string argument when the number dnl of bytes that have been produced by this conversion equals or exceeds dnl the precision. dnl Result is gl_cv_func_printf_directive_ls. AC_DEFUN([gl_PRINTF_DIRECTIVE_LS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'ls' directive], [gl_cv_func_printf_directive_ls], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <string.h> int main () { int result = 0; char buf[100]; /* Test whether %ls works at all. This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on Cygwin 1.5. */ { static const wchar_t wstring[] = { 'a', 'b', 'c', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "abc") != 0) result |= 1; } /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an assertion failure inside libc), but not on OpenBSD 4.0. */ { static const wchar_t wstring[] = { 'a', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "a") != 0) result |= 2; } /* Test whether precisions in %ls are supported as specified in ISO C 99 section 7.19.6.1: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." This test fails on Solaris 10. */ { static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 }; buf[0] = '\0'; if (sprintf (buf, "%.2ls", wstring) < 0 || strcmp (buf, "ab") != 0) result |= 8; } return result; }]])], [gl_cv_func_printf_directive_ls=yes], [gl_cv_func_printf_directive_ls=no], [ changequote(,)dnl case "$host_os" in openbsd*) gl_cv_func_printf_directive_ls="guessing no";; irix*) gl_cv_func_printf_directive_ls="guessing no";; solaris*) gl_cv_func_printf_directive_ls="guessing no";; cygwin*) gl_cv_func_printf_directive_ls="guessing no";; beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";; *) gl_cv_func_printf_directive_ls="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with positions. (POSIX:2001) dnl Result is gl_cv_func_printf_positions. AC_DEFUN([gl_PRINTF_POSITIONS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions], [gl_cv_func_printf_positions], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }]])], [gl_cv_func_printf_positions=yes], [gl_cv_func_printf_positions=no], [ changequote(,)dnl case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) gl_cv_func_printf_positions="guessing no";; beos*) gl_cv_func_printf_positions="guessing no";; mingw* | pw*) gl_cv_func_printf_positions="guessing no";; *) gl_cv_func_printf_positions="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with the ' flag for grouping of decimal digits. (POSIX:2001) dnl Result is gl_cv_func_printf_flag_grouping. AC_DEFUN([gl_PRINTF_FLAG_GROUPING], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the grouping flag], [gl_cv_func_printf_flag_grouping], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[100]; int main () { if (sprintf (buf, "%'d %d", 1234567, 99) < 0 || buf[strlen (buf) - 1] != '9') return 1; return 0; }]])], [gl_cv_func_printf_flag_grouping=yes], [gl_cv_func_printf_flag_grouping=no], [ changequote(,)dnl case "$host_os" in cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; *) gl_cv_func_printf_flag_grouping="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the - flag correctly. dnl (ISO C99.) See dnl <http://lists.gnu.org/archive/html/bug-coreutils/2008-02/msg00035.html> dnl Result is gl_cv_func_printf_flag_leftadjust. AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly], [gl_cv_func_printf_flag_leftadjust], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[100]; int main () { /* Check that a '-' flag is not annihilated by a negative width. */ if (sprintf (buf, "a%-*sc", -3, "b") < 0 || strcmp (buf, "ab c") != 0) return 1; return 0; }]])], [gl_cv_func_printf_flag_leftadjust=yes], [gl_cv_func_printf_flag_leftadjust=no], [ changequote(,)dnl case "$host_os" in # Guess yes on HP-UX 11. hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; # Guess no on HP-UX 10 and older. hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; # Guess yes otherwise. *) gl_cv_func_printf_flag_leftadjust="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports padding of non-finite dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See dnl <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> dnl Result is gl_cv_func_printf_flag_zero. AC_DEFUN([gl_PRINTF_FLAG_ZERO], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the zero flag correctly], [gl_cv_func_printf_flag_zero], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[100]; static double zero = 0.0; int main () { if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 || (strcmp (buf, " inf") != 0 && strcmp (buf, " infinity") != 0)) return 1; return 0; }]])], [gl_cv_func_printf_flag_zero=yes], [gl_cv_func_printf_flag_zero=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_flag_zero="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_flag_zero="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports large precisions. dnl On mingw, precisions larger than 512 are treated like 512, in integer, dnl floating-point or pointer output. On Solaris 10/x86, precisions larger dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC, dnl precisions larger than 510 in floating-point output yield wrong results. dnl On AIX 7.1, precisions larger than 998 in floating-point output yield dnl wrong results. On BeOS, precisions larger than 1044 crash the program. dnl Result is gl_cv_func_printf_precision. AC_DEFUN([gl_PRINTF_PRECISION], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports large precisions], [gl_cv_func_printf_precision], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> static char buf[5000]; int main () { int result = 0; #ifdef __BEOS__ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */ return 1; #endif if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3) result |= 1; if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5) result |= 2; if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5 || buf[0] != '1') result |= 4; if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5 || buf[0] != '1') result |= 4; return result; }]])], [gl_cv_func_printf_precision=yes], [gl_cv_func_printf_precision=no], [ changequote(,)dnl case "$host_os" in # Guess no only on Solaris, native Windows, and BeOS systems. solaris*) gl_cv_func_printf_precision="guessing no" ;; mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; beos*) gl_cv_func_printf_precision="guessing no" ;; *) gl_cv_func_printf_precision="guessing yes" ;; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions recovers gracefully in case dnl of an out-of-memory condition, or whether it crashes the entire program. dnl Result is gl_cv_func_printf_enomem. AC_DEFUN([gl_PRINTF_ENOMEM], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_MULTIARCH]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf survives out-of-memory conditions], [gl_cv_func_printf_enomem], [ gl_cv_func_printf_enomem="guessing no" if test "$cross_compiling" = no; then if test $APPLE_UNIVERSAL_BUILD = 0; then AC_LANG_CONFTEST([AC_LANG_SOURCE([ ]GL_NOCRASH[ changequote(,)dnl #include <stdio.h> #include <sys/types.h> #include <sys/time.h> #include <sys/resource.h> #include <errno.h> int main() { struct rlimit limit; int ret; nocrash_init (); /* Some printf implementations allocate temporary space with malloc. */ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */ #ifdef RLIMIT_DATA if (getrlimit (RLIMIT_DATA, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_DATA, &limit) < 0) return 77; #endif /* On Linux systems, malloc() is limited by RLIMIT_AS. */ #ifdef RLIMIT_AS if (getrlimit (RLIMIT_AS, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_AS, &limit) < 0) return 77; #endif /* Some printf implementations allocate temporary space on the stack. */ #ifdef RLIMIT_STACK if (getrlimit (RLIMIT_STACK, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_STACK, &limit) < 0) return 77; #endif ret = printf ("%.5000000f", 1.0); return !(ret == 5000002 || (ret < 0 && errno == ENOMEM)); } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then (./conftest 2>&AS_MESSAGE_LOG_FD result=$? _AS_ECHO_LOG([\$? = $result]) if test $result != 0 && test $result != 77; then result=1; fi exit $result ) >/dev/null 2>/dev/null case $? in 0) gl_cv_func_printf_enomem="yes" ;; 77) gl_cv_func_printf_enomem="guessing no" ;; *) gl_cv_func_printf_enomem="no" ;; esac else gl_cv_func_printf_enomem="guessing no" fi rm -fr conftest* else dnl A universal build on Apple Mac OS X platforms. dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode. dnl But we need a configuration result that is valid in both modes. gl_cv_func_printf_enomem="guessing no" fi fi if test "$gl_cv_func_printf_enomem" = "guessing no"; then changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Solaris. solaris*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on AIX. aix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on HP-UX/hppa. hpux*) case "$host_cpu" in hppa*) gl_cv_func_printf_enomem="guessing yes";; *) gl_cv_func_printf_enomem="guessing no";; esac ;; # Guess yes on IRIX. irix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on OSF/1. osf*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Haiku. haiku*) gl_cv_func_printf_enomem="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_enomem="guessing no";; esac changequote([,])dnl fi ]) ]) dnl Test whether the snprintf function exists. (ISO C99, POSIX:2001) dnl Result is ac_cv_func_snprintf. AC_DEFUN([gl_SNPRINTF_PRESENCE], [ AC_CHECK_FUNCS_ONCE([snprintf]) ]) dnl Test whether the string produced by the snprintf function is always NUL dnl terminated. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_truncation_c99. AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf truncates the result as in C99], [gl_cv_func_snprintf_truncation_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include <stdarg.h> static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); my_snprintf (buf, 3, "%d %d", 4567, 89); if (memcmp (buf, "45\0DEF", 6) != 0) return 1; return 0; }]])], [gl_cv_func_snprintf_truncation_c99=yes], [gl_cv_func_snprintf_truncation_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_truncation_c99="guessing no";; openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_snprintf_truncation_c99="guessing no";; solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_truncation_c99="guessing no";; netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_truncation_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the return value of the snprintf function is the number dnl of bytes (excluding the terminating NUL) that would have been produced dnl if the buffer had been large enough. (ISO C99, POSIX:2001) dnl For example, this test program fails on IRIX 6.5: dnl --------------------------------------------------------------------- dnl #include <stdio.h> dnl int main() dnl { dnl static char buf[8]; dnl int retval = snprintf (buf, 3, "%d", 12345); dnl return retval >= 0 && retval < 3; dnl } dnl --------------------------------------------------------------------- dnl Result is gl_cv_func_snprintf_retval_c99. AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf returns a byte count as in C99], [gl_cv_func_snprintf_retval_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include <stdarg.h> static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) return 1; if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) return 2; if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) return 3; return 0; }]])], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the snprintf function supports the %n format directive dnl also in truncated portions of the format string. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_directive_n. AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive], [gl_cv_func_snprintf_directive_n], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <string.h> #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include <stdarg.h> static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char fmtstring[10]; static char buf[100]; int main () { int count = -1; /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ strcpy (fmtstring, "%d %n"); my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55); if (count != 6) return 1; return 0; }]])], [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_snprintf_directive_n="guessing no";; solaris*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";; aix*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";; osf*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_directive_n="guessing no";; netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_directive_n="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_directive_n="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the snprintf function, when passed a size = 1, writes any dnl output without bounds in this case, behaving like sprintf. This is the dnl case on Linux libc5. dnl Result is gl_cv_func_snprintf_size1. AC_DEFUN([gl_SNPRINTF_SIZE1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf respects a size of 1], [gl_cv_func_snprintf_size1], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include <stdarg.h> static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 1, "%d", 12345); return buf[1] != 'E'; }]])], [gl_cv_func_snprintf_size1=yes], [gl_cv_func_snprintf_size1=no], [gl_cv_func_snprintf_size1="guessing yes"]) ]) ]) dnl Test whether the vsnprintf function, when passed a zero size, produces no dnl output. (ISO C99, POSIX:2001) dnl For example, snprintf nevertheless writes a NUL byte in this case dnl on OSF/1 5.1: dnl --------------------------------------------------------------------- dnl #include <stdio.h> dnl int main() dnl { dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; dnl snprintf (buf, 0, "%d", 12345); dnl return buf[0] != 'D'; dnl } dnl --------------------------------------------------------------------- dnl And vsnprintf writes any output without bounds in this case, behaving like dnl vsprintf, on HP-UX 11 and OSF/1 5.1: dnl --------------------------------------------------------------------- dnl #include <stdarg.h> dnl #include <stdio.h> dnl static int my_snprintf (char *buf, int size, const char *format, ...) dnl { dnl va_list args; dnl int ret; dnl va_start (args, format); dnl ret = vsnprintf (buf, size, format, args); dnl va_end (args); dnl return ret; dnl } dnl int main() dnl { dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; dnl my_snprintf (buf, 0, "%d", 12345); dnl return buf[0] != 'D'; dnl } dnl --------------------------------------------------------------------- dnl Result is gl_cv_func_vsnprintf_zerosize_c99. AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99], [gl_cv_func_vsnprintf_zerosize_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdarg.h> #include <stdio.h> static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 0, "%d", 12345); return buf[0] != 'D'; }]])], [gl_cv_func_vsnprintf_zerosize_c99=yes], [gl_cv_func_vsnprintf_zerosize_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on mingw. mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl The results of these tests on various platforms are: dnl dnl 1 = gl_PRINTF_SIZES_C99 dnl 2 = gl_PRINTF_LONG_DOUBLE dnl 3 = gl_PRINTF_INFINITE dnl 4 = gl_PRINTF_INFINITE_LONG_DOUBLE dnl 5 = gl_PRINTF_DIRECTIVE_A dnl 6 = gl_PRINTF_DIRECTIVE_F dnl 7 = gl_PRINTF_DIRECTIVE_N dnl 8 = gl_PRINTF_DIRECTIVE_LS dnl 9 = gl_PRINTF_POSITIONS dnl 10 = gl_PRINTF_FLAG_GROUPING dnl 11 = gl_PRINTF_FLAG_LEFTADJUST dnl 12 = gl_PRINTF_FLAG_ZERO dnl 13 = gl_PRINTF_PRECISION dnl 14 = gl_PRINTF_ENOMEM dnl 15 = gl_SNPRINTF_PRESENCE dnl 16 = gl_SNPRINTF_TRUNCATION_C99 dnl 17 = gl_SNPRINTF_RETVAL_C99 dnl 18 = gl_SNPRINTF_DIRECTIVE_N dnl 19 = gl_SNPRINTF_SIZE1 dnl 20 = gl_VSNPRINTF_ZEROSIZE_C99 dnl dnl 1 = checking whether printf supports size specifiers as in C99... dnl 2 = checking whether printf supports 'long double' arguments... dnl 3 = checking whether printf supports infinite 'double' arguments... dnl 4 = checking whether printf supports infinite 'long double' arguments... dnl 5 = checking whether printf supports the 'a' and 'A' directives... dnl 6 = checking whether printf supports the 'F' directive... dnl 7 = checking whether printf supports the 'n' directive... dnl 8 = checking whether printf supports the 'ls' directive... dnl 9 = checking whether printf supports POSIX/XSI format strings with positions... dnl 10 = checking whether printf supports the grouping flag... dnl 11 = checking whether printf supports the left-adjust flag correctly... dnl 12 = checking whether printf supports the zero flag correctly... dnl 13 = checking whether printf supports large precisions... dnl 14 = checking whether printf survives out-of-memory conditions... dnl 15 = checking for snprintf... dnl 16 = checking whether snprintf truncates the result as in C99... dnl 17 = checking whether snprintf returns a byte count as in C99... dnl 18 = checking whether snprintf fully supports the 'n' directive... dnl 19 = checking whether snprintf respects a size of 1... dnl 20 = checking whether vsnprintf respects a zero size as in C99... dnl dnl . = yes, # = no. dnl dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . . dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . . dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . . dnl Mac OS X 10.5.8 . . . # # . . . . . . # . . . . . . . . dnl Mac OS X 10.3.9 . . . . # . . . . . . # . # . . . . . . dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # . . . . . . dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . . dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . . dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . . dnl Solaris 11 2011-11 . . # # # . . # . . . # . . . . . . . . dnl Solaris 10 . . # # # . . # . . . # # . . . . . . . dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . . dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # # dnl AIX 7.1 . . # # # . . . . . . # # . . . . . . . dnl AIX 5.2 . . # # # . . . . . . # . . . . . . . . dnl AIX 4.3.2, 5.1 # . # # # # . . . . . # . . . . # . . . dnl HP-UX 11.31 . . . . # . . . . . . # . . . . # # . . dnl HP-UX 11.{00,11,23} # . . . # # . . . . . # . . . . # # . # dnl HP-UX 10.20 # . # . # # . ? . . # # . . . . # # ? # dnl IRIX 6.5 # . # # # # . # . . . # . . . . # . . . dnl OSF/1 5.1 # . # # # # . . . . . # . . . . # . . # dnl OSF/1 4.0d # . # # # # . . . . . # . . # # # # # # dnl NetBSD 5.0 . . . # # . . . . . . # . # . . . . . . dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? . . . ? ? ? dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . dnl Haiku . . . # # # . # . . . . . ? . . ? . . . dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . . dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . . dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . . dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . . dnl mingw-w64 2011 # # # # # # . . # # . # # ? . # # # . . ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/libunistring-base.m4�����������������������������������������������������������������0000644�0000000�0000000�00000014260�12116370307�013707� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# libunistring-base.m4 serial 5 dnl Copyright (C) 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paolo Bonzini and Bruno Haible. dnl gl_LIBUNISTRING_MODULE([VERSION], [Module]) dnl Declares that the source files of Module should be compiled, unless we dnl are linking with libunistring and its version is >= the given VERSION. dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is dnl true if the source files of Module should be compiled. dnl This macro is to be used for public libunistring API, not for dnl undocumented API. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a change that affects the behaviour of the dnl functions defined in Module (even if the sources of Module itself do not dnl change). AC_DEFUN([gl_LIBUNISTRING_MODULE], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]), [gl_LIBUNISTRING_VERSION_CMP([$1])]) ]) dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile]) dnl Declares that HeaderFile should be created, unless we are linking dnl with libunistring and its version is >= the given VERSION. dnl HeaderFile should be relative to the lib directory and end in '.h'. dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty). dnl dnl When we are linking with the already installed libunistring and its version dnl is < VERSION, we create HeaderFile here, because we may compile functions dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed dnl version. dnl When we are linking with the already installed libunistring and its version dnl is > VERSION, we don't create HeaderFile here: it could cause compilation dnl errors in other libunistring header files if some types are missing. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a non-comment change to the HeaderFile. AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. if gl_LIBUNISTRING_VERSION_CMP([$1]); then LIBUNISTRING_[]AS_TR_CPP([$2])='$2' else LIBUNISTRING_[]AS_TR_CPP([$2])= fi AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2])) ]) dnl Miscellaneous preparations/initializations. AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], [ dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point. m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])]) AC_REQUIRE([AC_PROG_AWK]) dnl Sed expressions to extract the parts of a version number. changequote(,) gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' changequote([,]) if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi ]) dnl gl_LIBUNISTRING_VERSION_CMP([VERSION]) dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION dnl is less than the VERSION argument. AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], [ { test "$HAVE_LIBUNISTRING" != yes \ || { dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least. AS_LITERAL_IF([$1], [dnl This is the optimized variant, that assumes the argument is a literal: m4_pushdef([requested_version_major], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])]) m4_pushdef([requested_version_minor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) m4_pushdef([requested_version_subminor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor } } } m4_popdef([requested_version_subminor]) m4_popdef([requested_version_minor]) m4_popdef([requested_version_major]) ], [dnl This is the unoptimized variant: requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"` requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"` requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"` test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor } } } ]) } }]) dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the dnl same as ORIG, otherwise to 0. m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/lstat.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000005112�12116370307�011411� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 26 # Copyright (C) 1997-2001, 2003-2013 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. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_LSTAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement <sys/stat.h> does dnl "#define lstat stat", and lstat.c is a no-op. AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi ]) # Prerequisites of lib/lstat.c. AC_DEFUN([gl_PREREQ_LSTAT], [:]) AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([whether lstat correctly handles trailing slash], [gl_cv_func_lstat_dereferences_slashed_symlink], [rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ]])], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac ]) else # If the 'ln -s' command failed, then we probably don't even # have an lstat function. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" fi rm -f conftest.sym conftest.file ]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], [Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash.]) ;; esac ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/extensions.m4������������������������������������������������������������������������0000644�0000000�0000000�00000012237�12116370307�012467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 13 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2013 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 definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS # Autoconf. Perhaps we can remove this once we can assume Autoconf # 2.70 or later everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. # If autoconf reports a warning # warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # the fix is # 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked # but always AC_REQUIREd, # 2) to ensure that for each occurrence of # AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) # or # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # the corresponding gnulib module description has 'extensions' among # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. # # Remember that #undef in AH_VERBATIM gets replaced with #define by # AC_DEFINE. The goal here is to define all known feature-enabling # macros, then, if reports of conflicts are made, disable macros that # cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) if test "$MINIX" = yes; then AC_DEFINE([_POSIX_SOURCE], [1], [Define to 1 if you need to in order for 'stat' and other things to work.]) AC_DEFINE([_POSIX_1_SOURCE], [2], [Define to 2 if the system does not provide POSIX.1 features except with this defined.]) AC_DEFINE([_MINIX], [1], [Define to 1 if on MINIX.]) AC_DEFINE([_NETBSD_SOURCE], [1], [Define to 1 to make NetBSD features available. MINIX 3 needs this.]) fi dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif ]) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ # define __EXTENSIONS__ 1 ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) test $ac_cv_safe_to_define___extensions__ = yes && AC_DEFINE([__EXTENSIONS__]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([_TANDEM_SOURCE]) AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], [ac_cv_should_define__xopen_source], [ac_cv_should_define__xopen_source=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include <wchar.h> mbstate_t x;]])], [], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #define _XOPEN_SOURCE 500 #include <wchar.h> mbstate_t x;]])], [ac_cv_should_define__xopen_source=yes])])]) test $ac_cv_should_define__xopen_source = yes && AC_DEFINE([_XOPEN_SOURCE], [500]) ])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS. dnl gnulib does not need it. But if it gets required by third-party macros dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE, dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck. AC_REQUIRE([AC_GNU_SOURCE]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/off_t.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000001006�12116370307�011355� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# off_t.m4 serial 1 dnl Copyright (C) 2012-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check whether to override the 'off_t' type. dnl Set WINDOWS_64_BIT_OFF_T. AC_DEFUN([gl_TYPE_OFF_T], [ m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_OFF_T=0 ]) AC_SUBST([WINDOWS_64_BIT_OFF_T]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/wchar_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000022240�12116370307�011676� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. # wchar_h.m4 serial 39 AC_DEFUN([gl_WCHAR_H], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) dnl Prepare for creating substitute <wchar.h>. dnl Check for <wchar.h> (missing in Linux uClibc when built without wide dnl character support). dnl <wchar.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> # include <stdio.h> # include <time.h> #endif #include <wchar.h> ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ]) ]) dnl Check whether <wchar.h> is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether <wchar.h> suffers due to the transition from '__inline' to dnl 'gnu_inline'. See <http://sourceware.org/bugzilla/show_bug.cgi?id=4022> dnl and <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken <wchar.h>. AC_CACHE_CHECK([whether <wchar.h> uses 'inline' correctly], [gl_cv_header_wchar_h_correct_inline], [gl_cv_header_wchar_h_correct_inline=yes AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> extern int zero (void); int main () { return zero(); } ]])]) if AC_TRY_EVAL([ac_compile]); then mv conftest.$ac_objext conftest1.$ac_objext AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int zero (void) { return 0; } ]])]) if AC_TRY_EVAL([ac_compile]); then mv conftest.$ac_objext conftest2.$ac_objext if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) fi ]) AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCHAR_H_DEFAULTS], [ GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR]) GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP]) GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY]) GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE]) GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET]) GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN]) GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN]) GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY]) GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY]) GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY]) GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY]) GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT]) GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT]) GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP]) GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP]) GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP]) GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP]) GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL]) GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM]) GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP]) GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR]) GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR]) GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN]) GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN]) GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK]) GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR]) GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK]) GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR]) HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY]) HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY]) HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY]) HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY]) HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT]) HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT]) HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP]) HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP]) HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP]) HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP]) HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL]) HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM]) HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP]) HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR]) HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR]) HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN]) HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN]) HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK]) HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/canonicalize.m4����������������������������������������������������������������������0000644�0000000�0000000�00000007171�12116370307�012730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# canonicalize.m4 serial 26 dnl Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Provides canonicalize_file_name and canonicalize_filename_mode, but does # not provide or fix realpath. AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([canonicalize_file_name]) AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_CANONICALIZE_FILE_NAME=1 ;; esac fi ]) # Provides canonicalize_file_name and realpath. AC_DEFUN([gl_CANONICALIZE_LGPL], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE]) if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 if test $ac_cv_func_realpath = no; then HAVE_REALPATH=0 else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_REALPATH=1 ;; esac fi else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_CANONICALIZE_FILE_NAME=1 REPLACE_REALPATH=1 ;; esac fi ]) # Like gl_CANONICALIZE_LGPL, except prepare for separate compilation # (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, no AC_LIBOBJ). AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([canonicalize_file_name getcwd readlink]) AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Check whether realpath works. Assume that if a platform has both # realpath and canonicalize_file_name, but the former is broken, then # so is the latter. AC_DEFUN([gl_FUNC_REALPATH_WORKS], [ AC_CHECK_FUNCS_ONCE([realpath]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [ touch conftest.a mkdir conftest.d AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ ]GL_NOCRASH[ #include <stdlib.h> #include <string.h> ]], [[ int result = 0; { char *name = realpath ("conftest.a", NULL); if (!(name && *name == '/')) result |= 1; } { char *name = realpath ("conftest.b/../conftest.a", NULL); if (name != NULL) result |= 2; } { char *name = realpath ("conftest.a/", NULL); if (name != NULL) result |= 4; } { char *name1 = realpath (".", NULL); char *name2 = realpath ("conftest.d//./..", NULL); if (strcmp (name1, name2) != 0) result |= 8; } return result; ]]) ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_realpath_works="guessing no" ;; esac ]) rm -rf conftest.a conftest.d ]) case "$gl_cv_func_realpath_works" in *yes) AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles trailing slash correctly.]) ;; esac ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/stdlib_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000013101�12116370307�012047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdlib_h.m4 serial 42 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include <stdlib.h> #if HAVE_SYS_LOADAVG_H # include <sys/loadavg.h> #endif #if HAVE_RANDOM_H # include <random.h> #endif ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT]) GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/wint_t.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000002035�12116370307�011567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wint_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <wchar.h> has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) fi ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/nocrash.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000010555�12116370307�011726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nocrash.m4 serial 4 dnl Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini. AC_PREREQ([2.13]) dnl Expands to some code for use in .c programs that will cause the configure dnl test to exit instead of crashing. This is useful to avoid triggering dnl action from a background debugger and to avoid core dumps. dnl Usage: ... dnl ]GL_NOCRASH[ dnl ... dnl int main() { nocrash_init(); ... } AC_DEFUN([GL_NOCRASH],[[ #include <stdlib.h> #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include <mach/mach.h> #include <mach/mach_error.h> #include <mach/thread_status.h> #include <mach/exception.h> #include <mach/task.h> #include <pthread.h> /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winerror.h> static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include <signal.h> /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif ]]) ���������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/localeconv.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001147�12116370307�012413� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# localeconv.m4 serial 1 dnl Copyright (C) 2012-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LOCALECONV], [ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) AC_REQUIRE([gl_LOCALE_H]) if test $REPLACE_STRUCT_LCONV = 1; then REPLACE_LOCALECONV=1 fi ]) # Prerequisites of lib/localeconv.c. AC_DEFUN([gl_PREREQ_LOCALECONV], [ AC_CHECK_MEMBERS([struct lconv.decimal_point], [], [], [[#include <locale.h>]]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/double-slash-root.m4�����������������������������������������������������������������0000644�0000000�0000000�00000003125�12116370307�013627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# double-slash-root.m4 serial 4 -*- Autoconf -*- dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_DOUBLE_SLASH_ROOT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], [ if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # <bug-gnulib@gnu.org>. case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi]) if test "$gl_cv_double_slash_root" = yes; then AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1], [Define to 1 if // is a file system root distinct from /.]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/mbtowc.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000000714�12116370307�011560� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbtowc.m4 serial 2 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBTOWC], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) if false; then REPLACE_MBTOWC=1 fi ]) # Prerequisites of lib/mbtowc.c. AC_DEFUN([gl_PREREQ_MBTOWC], [ : ]) ����������������������������������������������������wdiff-1.2.1/m4/intmax_t.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000004166�12116370307�012115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# intmax_t.m4 serial 8 dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_PREREQ([2.53]) # Define intmax_t to 'long' or 'long long' # if it is not already defined in <stdint.h> or <inttypes.h>. AC_DEFUN([gl_AC_TYPE_INTMAX_T], [ dnl For simplicity, we assume that a header file defines 'intmax_t' if and dnl only if it defines 'uintmax_t'. AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if <inttypes.h> and <stdint.h> don't define.]) else AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.]) fi ]) dnl An alternative would be to explicitly test for 'intmax_t'. AC_DEFUN([gt_AC_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <stddef.h> #include <stdlib.h> #if HAVE_STDINT_H_WITH_UINTMAX #include <stdint.h> #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include <inttypes.h> #endif ]], [[intmax_t x = -1; return !x;]])], [gt_cv_c_intmax_t=yes], [gt_cv_c_intmax_t=no])]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.]) else AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if <stdint.h> and <inttypes.h> don't define.]) fi ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/locale-zh.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000012226�12116370307�012144� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale-zh.m4 serial 12 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a chinese locale with GB18030 encoding. AC_DEFUN([gt_LOCALE_ZH_CN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <stdlib.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/unistd_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000021434�12116370307�012104� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# unistd_h.m4 serial 66 dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson, Bruno Haible. AC_DEFUN([gl_UNISTD_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Determine WINDOWS_64_BIT_OFF_T. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_UNISTD_H # include <unistd.h> #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <fcntl.h> # include <stdio.h> # include <stdlib.h> # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include <io.h> # endif #endif ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep]) ]) AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) GNULIB_READ=0; AC_SUBST([GNULIB_READ]) GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/intlmacosx.m4������������������������������������������������������������������������0000644�0000000�0000000�00000004753�12116370307�012455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFPreferences.h>]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFLocale.h>]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) ���������������������wdiff-1.2.1/m4/codeset.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001500�12116370307�011705� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <langinfo.h>]], [[char* cs = nl_langinfo(CODESET); return !cs;]])], [am_cv_langinfo_codeset=yes], [am_cv_langinfo_codeset=no]) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE([HAVE_LANGINFO_CODESET], [1], [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) fi ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/ssize_t.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001463�12116370307�011747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether ssize_t is defined. AC_DEFUN([gt_TYPE_SSIZE_T], [ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h>]], [[int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x;]])], [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) if test $gt_cv_ssize_t = no; then AC_DEFINE([ssize_t], [int], [Define as a signed type of the same size as size_t.]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/sys_socket_h.m4����������������������������������������������������������������������0000644�0000000�0000000�00000014163�12116370307�012765� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_socket_h.m4 serial 23 dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson. AC_DEFUN([gl_HEADER_SYS_SOCKET], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have dnl old-style declarations (with return type 'int' instead of 'ssize_t') dnl unless _POSIX_PII_SOCKET is defined. case "$host_os" in osf*) AC_DEFINE([_POSIX_PII_SOCKET], [1], [Define to 1 in order to get the POSIX compatible declarations of socket functions.]) ;; esac AC_CACHE_CHECK([whether <sys/socket.h> is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])], [gl_cv_header_sys_socket_h_selfcontained=yes], [gl_cv_header_sys_socket_h_selfcontained=no]) ]) if test $gl_cv_header_sys_socket_h_selfcontained = yes; then dnl If the shutdown function exists, <sys/socket.h> should define dnl SHUT_RD, SHUT_WR, SHUT_RDWR. AC_CHECK_FUNCS([shutdown]) if test $ac_cv_func_shutdown = yes; then AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros], [gl_cv_header_sys_socket_h_shut], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], [gl_cv_header_sys_socket_h_shut=yes], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. gl_PREREQ_SYS_H_SOCKET AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif ]) if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], [], [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], [#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif ]) fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include <sys/types.h> #include <sys/socket.h> ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the <sys/socket.h> replacement. AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi AC_SUBST([HAVE_SYS_SOCKET_H]) AC_SUBST([HAVE_WS2TCPIP_H]) ]) # Common prerequisites of the <sys/socket.h> replacement and of the # <sys/select.h> replacement. # Sets and substitutes HAVE_WINSOCK2_H. AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h != yes; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([winsock2.h]) fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi AC_SUBST([HAVE_WINSOCK2_H]) ]) AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET]) GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT]) GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT]) GNULIB_BIND=0; AC_SUBST([GNULIB_BIND]) GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME]) GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME]) GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT]) GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN]) GNULIB_RECV=0; AC_SUBST([GNULIB_RECV]) GNULIB_SEND=0; AC_SUBST([GNULIB_SEND]) GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM]) GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN]) GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4]) HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/wctype_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000015435�12116370307�012115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wctype_h.m4 serial 18 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it. dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl_WCTYPE_H], [ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi AC_SUBST([HAVE_ISWCNTRL]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) gl_CHECK_NEXT_HEADERS([wctype.h]) if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then dnl Linux libc5 has an iswprint function that returns 0 for all arguments. dnl The other functions are likely broken in the same way. AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> int main () { return iswprint ('x') == 0; } ]])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif]], [])], [gl_cv_func_iswcntrl_works="guessing yes"], [gl_cv_func_iswcntrl_works="guessing no"]) ]) ]) fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi AC_SUBST([HAVE_WCTYPE_H]) case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac AC_SUBST([REPLACE_ISWCNTRL]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>. : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else AC_CHECK_FUNCS([towlower]) if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else AC_CHECK_DECLS([towlower],,, [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif ]]) if test $ac_cv_have_decl_towlower = yes; then dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and dnl towupper() although it does not have the functions. Avoid a dnl collision with gnulib's replacement. REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi AC_SUBST([REPLACE_TOWLOWER]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then dnl Redefine towlower, towupper in <wctype.h>. : fi dnl We assume that the wctype() and iswctype() functions exist if and only dnl if the type wctype_t is defined in <wchar.h> or in <wctype.h> if that dnl exists. dnl HP-UX 11.00 declares all these in <wchar.h> and lacks <wctype.h>. AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif wctype_t a; ]], [[]])], [gl_cv_type_wctype_t=yes], [gl_cv_type_wctype_t=no]) ]) if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi dnl We assume that the wctrans() and towctrans() functions exist if and only dnl if the type wctrans_t is defined in <wctype.h>. AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> #include <wctype.h> wctrans_t a; ]], [[]])], [gl_cv_type_wctrans_t=yes], [gl_cv_type_wctrans_t=no]) ]) if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> # include <stdio.h> # include <time.h> # include <wchar.h> #endif #include <wctype.h> ]], [wctype iswctype wctrans towctrans ]) ]) AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCTYPE_H_DEFAULTS], [ GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK]) GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE]) GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE]) GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS]) GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T]) REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/pathmax.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002204�12116370307�011723� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pathmax.m4 serial 10 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Expands to a piece of C program that defines PATH_MAX in the same way as # "pathmax.h" will do. AC_DEFUN([gl_PATHMAX_SNIPPET], [[ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include <unistd.h> #endif #include <limits.h> #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif ]]) # Prerequisites of gl_PATHMAX_SNIPPET. AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/progtest.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000006040�12116370307�012132� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# progtest.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1996-2003, 2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. 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 ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # 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. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done 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 ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/stddef_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002755�12116370307�012054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues. # stddef_h.m4 serial 4 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h> int test[2 * (sizeof NULL == sizeof (void *)) -1]; ]])], [gl_cv_decl_null_works=yes], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi AC_SUBST([STDDEF_H]) AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi ]) AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) �������������������wdiff-1.2.1/m4/mbchar.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000000653�12116370307�011523� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbchar.m4 serial 9 dnl Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl autoconf tests required for use of mbchar.m4 dnl From Bruno Haible. AC_DEFUN([gl_MBCHAR], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) �������������������������������������������������������������������������������������wdiff-1.2.1/m4/sys_wait_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000002245�12116370307�012437� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_wait_h.m4 serial 6 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_SYS_WAIT_H], [ AC_REQUIRE([gl_SYS_WAIT_H_DEFAULTS]) dnl <sys/wait.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/wait.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <sys/wait.h>]], [waitpid]) ]) AC_DEFUN([gl_SYS_WAIT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_WAIT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_WAIT_H_DEFAULTS], [ GNULIB_WAITPID=0; AC_SUBST([GNULIB_WAITPID]) dnl Assume proper GNU behavior unless another module says otherwise. ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/alloca.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000010372�12116370307�011521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# alloca.m4 serial 14 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ALLOCA], [ AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ AC_EGREP_CPP([Need own alloca], [ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) ]) if test $gl_cv_rpl_alloca = yes; then dnl OK, alloca can be implemented through a compiler built-in. AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including <alloca.h>, a header that may be supplied by this distribution.]) ALLOCA_H=alloca.h else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. ALLOCA_H= fi else ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) # This works around a bug in autoconf <= 2.68. # See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>. m4_version_prereq([2.69], [] ,[ # This is taken from the following Autoconf patch: # http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # _AC_LIBOBJ_ALLOCA # ----------------- # Set up the LIBOBJ replacement of 'alloca'. Well, not exactly # AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray, [AC_EGREP_CPP(webecray, [#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, [Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP systems. This function is required for 'alloca.c' support on those systems.]) break]) done fi AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; }])], [ac_cv_c_stack_direction=1], [ac_cv_c_stack_direction=-1], [ac_cv_c_stack_direction=0])]) AH_VERBATIM([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/btowc.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000006133�12116370307�011404� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# btowc.m4 serial 10 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_BTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) dnl Check whether <wchar.h> is usable at all, first. Otherwise the test dnl program below may lead to an endless loop. See dnl <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) AC_CHECK_FUNCS_ONCE([btowc]) if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 else AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0. AC_CACHE_CHECK([whether btowc(0) is correct], [gl_cv_func_btowc_nul], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (btowc ('\0') != 0) return 1; return 0; }]])], [gl_cv_func_btowc_nul=yes], [gl_cv_func_btowc_nul=no], [ changequote(,)dnl case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac changequote([,])dnl ]) ]) dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF. AC_CACHE_CHECK([whether btowc(EOF) is correct], [gl_cv_func_btowc_eof], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on IRIX. irix*) gl_cv_func_btowc_eof="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_eof="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (btowc (EOF) != WEOF) return 1; } return 0; }]])], [gl_cv_func_btowc_eof=yes], [gl_cv_func_btowc_eof=no], [:]) fi ]) case "$gl_cv_func_btowc_nul" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac fi ]) # Prerequisites of lib/btowc.c. AC_DEFUN([gl_PREREQ_BTOWC], [ : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/warn-on-use.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000004154�12116370307�012442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# warn-on-use.m4 serial 5 dnl Copyright (C) 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. # # See warn-on-use.h for some hints on how to poison function names, as # well as ideas on poisoning global variables and macros. NAMES may # include global variables, but remember that only functions work with # _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single # header, but if the replacement header pulls in other headers because # some systems declare functions in the wrong header, then INCLUDES # should do likewise. # # It is generally safe to assume declarations for functions declared # in the intersection of C89 and C11 (such as printf) without # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ m4_foreach_w([gl_decl], [$2], [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), [Define to 1 if ]m4_defn([gl_decl])[ is declared even after undefining macros.])])dnl dnl FIXME: gl_Symbol must be used unquoted until we can assume dnl autoconf 2.64 or newer. for gl_func in m4_flatten([$2]); do AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl AC_CACHE_CHECK([whether $gl_func is declared without a macro], gl_Symbol, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [@%:@undef $gl_func (void) $gl_func;])], [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) AS_VAR_IF(gl_Symbol, [yes], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) dnl shortcut - if the raw declaration exists, then set a cache dnl variable to allow skipping any later AC_CHECK_DECL efforts eval ac_cv_have_decl_$gl_func=yes]) AS_VAR_POPDEF([gl_Symbol])dnl done ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/msvc-nothrow.m4����������������������������������������������������������������������0000644�0000000�0000000�00000000530�12116370307�012727� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_NOTHROW], [ AC_REQUIRE([gl_MSVC_INVAL]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/eealloc.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001667�12116370307�011701� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EEALLOC], [ AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_EEREALLOC]) ]) AC_DEFUN([gl_EEMALLOC], [ _AC_FUNC_MALLOC_IF( [gl_cv_func_malloc_0_nonnull=1], [gl_cv_func_malloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], [If malloc(0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) AC_DEFUN([gl_EEREALLOC], [ _AC_FUNC_REALLOC_IF( [gl_cv_func_realloc_0_nonnull=1], [gl_cv_func_realloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) �������������������������������������������������������������������������wdiff-1.2.1/m4/inttypes_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001774�12116370307�012462� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# inttypes_h.m4 serial 10 dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists, # doesn't clash with <sys/types.h>, and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <sys/types.h> #include <inttypes.h> ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_inttypes_h=yes], [gl_cv_header_inttypes_h=no])]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1], [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and declares uintmax_t. ]) fi ]) ����wdiff-1.2.1/m4/extern-inline.m4���������������������������������������������������������������������0000644�0000000�0000000�00000005011�12116370307�013041� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EXTERN_INLINE], [ AH_VERBATIM([extern_inline], [/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'. _GL_EXTERN_INLINE is a portable alternative to 'extern inline'. _GL_INLINE_HEADER_BEGIN contains useful stuff to put in an include file, before uses of _GL_INLINE. It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic, when FOO is an inline function in the header; see <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>. _GL_INLINE_HEADER_END contains useful stuff to put in the same include file, after uses of _GL_INLINE. Suppress extern inline with HP-UX cc, as it appears to be broken; see <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>. Suppress the use of extern inline on Apple's platforms, as Libc-825.25 (2012-09-19) is incompatible with it; see <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>. Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline #elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__ # if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/locale_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000010401�12116370307�012025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale_h.m4 serial 19 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALE_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_* dnl members of 'struct lconv'. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl If <stddef.h> is replaced, then <locale.h> must also be replaced. AC_REQUIRE([gl_STDDEF_H]) dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in solaris*) AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.]) ;; esac AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001], [gl_cv_header_locale_h_posix2001], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point);]], [[]])], [gl_cv_header_locale_h_posix2001=yes], [gl_cv_header_locale_h_posix2001=no])]) dnl Check for <xlocale.h>. AC_CHECK_HEADERS_ONCE([xlocale.h]) if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 dnl Check whether use of locale_t requires inclusion of <xlocale.h>, dnl e.g. on Mac OS X 10.5. If <locale.h> does not define locale_t by dnl itself, we assume that <xlocale.h> will do so. AC_CACHE_CHECK([whether locale.h defines locale_t], [gl_cv_header_locale_has_locale_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> locale_t x;]], [[]])], [gl_cv_header_locale_has_locale_t=yes], [gl_cv_header_locale_has_locale_t=no]) ]) if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi AC_SUBST([HAVE_XLOCALE_H]) dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members. AC_CACHE_CHECK([whether struct lconv is properly defined], [gl_cv_sys_struct_lconv_ok], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes);]], [[]])], [gl_cv_sys_struct_lconv_ok=yes], [gl_cv_sys_struct_lconv_ok=no]) ]) if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK. gl_NEXT_HEADERS([locale.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <locale.h> /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include <xlocale.h> #endif ]], [setlocale duplocale]) ]) AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LOCALE_H_DEFAULTS], [ GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/regex.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000025316�12116370307�011404� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 63 # Copyright (C) 1996-2001, 2003-2013 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. dnl Initially derived from code in GNU grep. dnl Mostly written by Jim Meyering. AC_PREREQ([2.50]) AC_DEFUN([gl_REGEX], [ AC_ARG_WITH([included-regex], [AS_HELP_STRING([--without-included-regex], [don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library (use with caution on other systems).])]) case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. AC_CHECK_FUNCS_ONCE([alarm]) AC_CACHE_CHECK([for working re_compile_pattern], [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <regex.h> #include <locale.h> #include <limits.h> #include <string.h> #if HAVE_ALARM # include <unistd.h> # include <signal.h> #endif ]], [[int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; #if HAVE_ALARM /* Some builds of glibc go into an infinite loop on this test. */ signal (SIGALRM, SIG_DFL); alarm (2); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>. */ static char const pat[] = "[^x]x"; static char const data[] = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80" "\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0) != 21) result |= 1; } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; /* The following example is derived from a problem report against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; /* Catch a bug reported by Vin Shelton in http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; ]])], [gl_cv_func_re_compile_pattern_working=yes], [gl_cv_func_re_compile_pattern_working=no], dnl When crosscompiling, assume it is not working. [gl_cv_func_re_compile_pattern_working=no])]) case $gl_cv_func_re_compile_pattern_working in #( yes) ac_use_included_regex=no;; #( no) ac_use_included_regex=yes;; esac ;; *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex]) ;; esac if test $ac_use_included_regex = yes; then AC_DEFINE([_REGEX_INCLUDE_LIMITS_H], [1], [Define if you want <regex.h> to include <limits.h>, so that it consistently overrides <limits.h>'s RE_DUP_MAX.]) AC_DEFINE([_REGEX_LARGE_OFFSETS], [1], [Define if you want regoff_t to be at least as wide POSIX requires.]) AC_DEFINE([re_syntax_options], [rpl_re_syntax_options], [Define to rpl_re_syntax_options if the replacement should be used.]) AC_DEFINE([re_set_syntax], [rpl_re_set_syntax], [Define to rpl_re_set_syntax if the replacement should be used.]) AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern], [Define to rpl_re_compile_pattern if the replacement should be used.]) AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap], [Define to rpl_re_compile_fastmap if the replacement should be used.]) AC_DEFINE([re_search], [rpl_re_search], [Define to rpl_re_search if the replacement should be used.]) AC_DEFINE([re_search_2], [rpl_re_search_2], [Define to rpl_re_search_2 if the replacement should be used.]) AC_DEFINE([re_match], [rpl_re_match], [Define to rpl_re_match if the replacement should be used.]) AC_DEFINE([re_match_2], [rpl_re_match_2], [Define to rpl_re_match_2 if the replacement should be used.]) AC_DEFINE([re_set_registers], [rpl_re_set_registers], [Define to rpl_re_set_registers if the replacement should be used.]) AC_DEFINE([re_comp], [rpl_re_comp], [Define to rpl_re_comp if the replacement should be used.]) AC_DEFINE([re_exec], [rpl_re_exec], [Define to rpl_re_exec if the replacement should be used.]) AC_DEFINE([regcomp], [rpl_regcomp], [Define to rpl_regcomp if the replacement should be used.]) AC_DEFINE([regexec], [rpl_regexec], [Define to rpl_regexec if the replacement should be used.]) AC_DEFINE([regerror], [rpl_regerror], [Define to rpl_regerror if the replacement should be used.]) AC_DEFINE([regfree], [rpl_regfree], [Define to rpl_regfree if the replacement should be used.]) fi ]) # Prerequisites of lib/regex.c and lib/regex_internal.c. AC_DEFUN([gl_PREREQ_REGEX], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_REQUIRE([gl_EEMALLOC]) AC_CHECK_HEADERS([libintl.h]) AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll]) AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/environ.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002616�12116370307�011750� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# environ.m4 serial 6 dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_ENVIRON], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc <unistd.h> to declare environ. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([unistd.h]) gt_CHECK_VAR_DECL( [#if HAVE_UNISTD_H #include <unistd.h> #endif /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ #include <stdlib.h> ], [environ]) if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi ]) # Check if a variable is properly declared. # gt_CHECK_VAR_DECL(includes,variable) AC_DEFUN([gt_CHECK_VAR_DECL], [ define([gt_cv_var], [gt_cv_var_]$2[_declaration]) AC_MSG_CHECKING([if $2 is properly declared]) AC_CACHE_VAL([gt_cv_var], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[$1 extern struct { int foo; } $2;]], [[$2.foo = 1;]])], [gt_cv_var=no], [gt_cv_var=yes])]) AC_MSG_RESULT([$gt_cv_var]) if test $gt_cv_var = yes; then AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, [Define if you have the declaration of $2.]) fi undefine([gt_cv_var]) ]) ������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/mbrtowc.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000041537�12116370307�011752� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbrtowc.m4 serial 25 dnl Copyright (C) 2001-2002, 2004-2005, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBRTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 AC_CHECK_DECLS([mbrtowc],,, [[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> ]]) if test $ac_cv_have_decl_mbrtowc = yes; then dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else gl_MBRTOWC_NULL_ARG1 gl_MBRTOWC_NULL_ARG2 gl_MBRTOWC_RETVAL gl_MBRTOWC_NUL_RETVAL case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1], [Define if the mbrtowc function has the NULL pwc argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1], [Define if the mbrtowc function has the NULL string argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1], [Define if the mbrtowc function returns a wrong return value.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1], [Define if the mbrtowc function does not return 0 for a NUL character.]) REPLACE_MBRTOWC=1 ;; esac fi fi ]) dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that dnl redefines the semantics of the given mbstate_t type. dnl Result is REPLACE_MBSTATE_T. dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to dnl avoid inconsistencies. AC_DEFUN([gl_MBSTATE_T_BROKEN], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_CHECK_FUNCS_ONCE([mbsinit]) AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then gl_MBRTOWC_INCOMPLETE_STATE gl_MBRTOWC_SANITYCHECK REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi ]) dnl Test whether mbrtowc puts the state into non-initial state when parsing an dnl incomplete multibyte character. dnl Result is gl_cv_func_mbrtowc_incomplete_state. AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles incomplete characters], [gl_cv_func_mbrtowc_incomplete_state], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_JA != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 1; } return 0; }]])], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], [:]) fi ]) ]) dnl Test whether mbrtowc works not worse than mbtowc. dnl Result is gl_cv_func_mbrtowc_sanitycheck. AC_DEFUN([gl_MBRTOWC_SANITYCHECK], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works as well as mbtowc], [gl_cv_func_mbrtowc_sanitycheck], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 1; } return 0; }]])], [gl_cv_func_mbrtowc_sanitycheck=yes], [gl_cv_func_mbrtowc_sanitycheck=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL pwc argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg1. AC_DEFUN([gl_MBRTOWC_NULL_ARG1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument], [gl_cv_func_mbrtowc_null_arg1], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <stdlib.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; }]])], [gl_cv_func_mbrtowc_null_arg1=yes], [gl_cv_func_mbrtowc_null_arg1=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL string argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg2. AC_DEFUN([gl_MBRTOWC_NULL_ARG2], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument], [gl_cv_func_mbrtowc_null_arg2], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 1; } return 0; }]])], [gl_cv_func_mbrtowc_null_arg2=yes], [gl_cv_func_mbrtowc_null_arg2=no], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing the end of a multibyte character, dnl correctly returns the number of bytes that were needed to complete the dnl character (not the total number of bytes of the multibyte character). dnl Result is gl_cv_func_mbrtowc_retval. AC_DEFUN([gl_MBRTOWC_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether mbrtowc has a correct return value], [gl_cv_func_mbrtowc_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); }]])], [gl_cv_func_mbrtowc_retval=yes], [if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi ], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing a NUL character, correctly returns 0. dnl Result is gl_cv_func_mbrtowc_nul_retval. AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc returns 0 when parsing a NUL character], [gl_cv_func_mbrtowc_nul_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 1; } return 0; }]])], [gl_cv_func_mbrtowc_nul_retval=yes], [gl_cv_func_mbrtowc_nul_retval=no], [:]) fi ]) ]) # Prerequisites of lib/mbrtowc.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ : ]) dnl From Paul Eggert dnl This is an override of an autoconf macro. AC_DEFUN([AC_FUNC_MBRTOWC], [ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], gl_cv_func_mbrtowc, [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h>]], [[wchar_t wc; char const s[] = ""; size_t n = 1; mbstate_t state; return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], gl_cv_func_mbrtowc=yes, gl_cv_func_mbrtowc=no)]) if test $gl_cv_func_mbrtowc = yes; then AC_DEFINE([HAVE_MBRTOWC], [1], [Define to 1 if mbrtowc and mbstate_t are properly declared.]) fi ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/configmake.m4������������������������������������������������������������������������0000644�0000000�0000000�00000003540�12116370307�012370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# configmake.m4 serial 1 dnl Copyright (C) 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_CONFIGMAKE_PREP # ------------------ # Guarantee all of the standard directory variables, even when used with # autoconf 2.59 (datarootdir wasn't supported until 2.59c) or automake # 1.9.6 (pkglibexecdir wasn't supported until 1.10b.). AC_DEFUN([gl_CONFIGMAKE_PREP], [ dnl Technically, datadir should default to datarootdir. But if dnl autoconf is too old to provide datarootdir, then reversing the dnl definition is a reasonable compromise. Only AC_SUBST a variable dnl if it was not already defined earlier by autoconf. if test "x$datarootdir" = x; then AC_SUBST([datarootdir], ['${datadir}']) fi dnl Copy the approach used in autoconf 2.60. if test "x$docdir" = x; then AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], ['${datarootdir}/doc/${PACKAGE_TARNAME}'], ['${datarootdir}/doc/${PACKAGE}'])]) fi dnl The remaining variables missing from autoconf 2.59 are easier. if test "x$htmldir" = x; then AC_SUBST([htmldir], ['${docdir}']) fi if test "x$dvidir" = x; then AC_SUBST([dvidir], ['${docdir}']) fi if test "x$pdfdir" = x; then AC_SUBST([pdfdir], ['${docdir}']) fi if test "x$psdir" = x; then AC_SUBST([psdir], ['${docdir}']) fi if test "x$lispdir" = x; then AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp']) fi if test "x$localedir" = x; then AC_SUBST([localedir], ['${datarootdir}/locale']) fi dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe. AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}']) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/lib-ld.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000007143�12116370307�011433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-ld.m4 serial 6 dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) acl_cv_prog_gnu_ld=yes ;; *) acl_cv_prog_gnu_ld=no ;; esac]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-2.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld [default=no]])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$acl_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT([$LD]) else AC_MSG_RESULT([no]) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/wchar_t.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001462�12116370307�011715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <stddef.h> has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stddef.h> wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/locale-ja.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000012603�12116370307�012114� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale-ja.m4 serial 12 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a japanese locale with EUC-JP encoding. AC_DEFUN([gt_LOCALE_JA], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) ]) �����������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/sys_types_h.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000001217�12116370307�012635� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_types_h.m4 serial 5 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_TYPES_H], [ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/getline.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000005637�12116370307�011725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getline.m4 serial 26 dnl Copyright (C) 1998-2003, 2005-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.59]) dnl See if there's a working, system-supplied version of the getline function. dnl We can't just do AC_REPLACE_FUNCS([getline]) because some systems dnl have a function by that name in -linet that doesn't have anything dnl to do with the function we need. AC_DEFUN([gl_FUNC_GETLINE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) dnl Persuade glibc <stdio.h> to declare getline(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([getline]) gl_getline_needs_run_time_check=no AC_CHECK_FUNC([getline], [dnl Found it in some library. Verify that it works. gl_getline_needs_run_time_check=yes], [am_cv_func_working_getline=no]) if test $gl_getline_needs_run_time_check = yes; then AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline], [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getline (&line, &siz, in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) return 2; } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getline (&line, &siz, in) == -1) return 3; } return 0; } ]])], [am_cv_func_working_getline=yes] dnl The library version works. , [am_cv_func_working_getline=no] dnl The library version does NOT work. , dnl We're cross compiling. Assume it works on glibc2 systems. [AC_EGREP_CPP([Lucky GNU user], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [am_cv_func_working_getline="guessing yes"], [am_cv_func_working_getline="guessing no"])] )]) fi if test $ac_cv_have_decl_getline = no; then HAVE_DECL_GETLINE=0 fi case "$am_cv_func_working_getline" in *no) dnl Set REPLACE_GETLINE always: Even if we have not found the broken dnl getline function among $LIBS, it may exist in libinet and the dnl executable may be linked with -linet. REPLACE_GETLINE=1 ;; esac ]) # Prerequisites of lib/getline.c. AC_DEFUN([gl_PREREQ_GETLINE], [ : ]) �������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/readlink.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000004670�12116370307�012063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# readlink.m4 serial 12 dnl Copyright (C) 2003, 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_READLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([readlink]) if test $ac_cv_func_readlink = no; then HAVE_READLINK=0 else AC_CACHE_CHECK([whether readlink signature is correct], [gl_cv_decl_readlink_works], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> /* Cause compilation failure if original declaration has wrong type. */ ssize_t readlink (const char *, char *, size_t);]])], [gl_cv_decl_readlink_works=yes], [gl_cv_decl_readlink_works=no])]) dnl Solaris 9 ignores trailing slash. dnl FreeBSD 7.2 dereferences only one level of links with trailing slash. AC_CACHE_CHECK([whether readlink handles trailing slash correctly], [gl_cv_func_readlink_works], [# We have readlink, so assume ln -s works. ln -s conftest.no-such conftest.link ln -s conftest.link conftest.lnk2 AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> ]], [[char buf[20]; return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], [gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_readlink_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_readlink_works="guessing no" ;; esac ]) rm -f conftest.link conftest.lnk2]) case "$gl_cv_func_readlink_works" in *yes) if test "$gl_cv_decl_readlink_works" != yes; then REPLACE_READLINK=1 fi ;; *) AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink fails to recognize a trailing slash.]) REPLACE_READLINK=1 ;; esac fi ]) # Like gl_FUNC_READLINK, except prepare for separate compilation # (no REPLACE_READLINK, no AC_LIBOBJ). AC_DEFUN([gl_FUNC_READLINK_SEPARATE], [ AC_CHECK_FUNCS_ONCE([readlink]) gl_PREREQ_READLINK ]) # Prerequisites of lib/readlink.c. AC_DEFUN([gl_PREREQ_READLINK], [ : ]) ������������������������������������������������������������������������wdiff-1.2.1/m4/exponentd.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000007552�12116370307�012300� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# exponentd.m4 serial 3 dnl Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION], [ AC_CACHE_CHECK([where to find the exponent in a 'double'], [gl_cv_cc_double_expbit0], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <float.h> #include <stddef.h> #include <stdio.h> #include <string.h> #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (double x) { memory_double m; size_t i; /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ memset (&m, 0, sizeof (memory_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25); add_to_ored_words (0.5); add_to_ored_words (1.0); add_to_ored_words (2.0); add_to_ored_words (4.0); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } ]])], [gl_cv_cc_double_expbit0=`cat conftest.out`], [gl_cv_cc_double_expbit0="unknown"], [ dnl On ARM, there are two 'double' floating-point formats, used by dnl different sets of instructions: The older FPA instructions assume dnl that they are stored in big-endian word order, while the words dnl (like integer types) are stored in little-endian byte order. dnl The newer VFP instructions assume little-endian order dnl consistently. AC_EGREP_CPP([mixed_endianness], [ #if defined arm || defined __arm || defined __arm__ mixed_endianness #endif ], [gl_cv_cc_double_expbit0="unknown"], [ pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl AC_C_BIGENDIAN( [gl_cv_cc_double_expbit0="word 0 bit 20"], [gl_cv_cc_double_expbit0="word 1 bit 20"], [gl_cv_cc_double_expbit0="unknown"]) popdef([AC_MSG_RESULT_UNQUOTED])dnl popdef([AC_MSG_RESULT])dnl popdef([AC_MSG_CHECKING])dnl ]) ]) rm -f conftest.out ]) case "$gl_cv_cc_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` AC_DEFINE_UNQUOTED([DBL_EXPBIT0_WORD], [$word], [Define as the word index where to find the exponent of 'double'.]) AC_DEFINE_UNQUOTED([DBL_EXPBIT0_BIT], [$bit], [Define as the bit index in the word where to find bit 0 of the exponent of 'double'.]) ;; esac ]) ������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/nls.m4�������������������������������������������������������������������������������0000644�0000000�0000000�00000002315�12116370307�011060� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/po.m4��������������������������������������������������������������������������������0000644�0000000�0000000�00000045002�12116370307�010702� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# po.m4 serial 20 (gettext-0.18.2) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat <<EOT $* EOT } gt_echo='echo_func' fi fi # A sed script that extracts the value of VARIABLE from a Makefile. tab=`printf '\t'` sed_x_variable=' # Test if the hold space is empty. x s/P/P/ x ta # Yes it was empty. Look if we have the expected variable definition. /^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{ # Seen the first line of the variable definition. s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=// ba } bd :a # Here we are processing a line from the variable definition. # Remove comment, more precisely replace it with a space. s/#.*$/ / # See if the line ends in a backslash. tb :b s/\\$// # Print the line, without the trailing backslash. p tc # There was no trailing backslash. The end of the variable definition is # reached. Clear the hold space. s/^.*$// x bd :c # A trailing backslash means that the variable definition continues in the # next line. Put a nonempty string into the hold space to indicate this. s/^.*$/P/ x :d ' changequote([,])dnl # Set POTFILES to the value of the Makefile variable POTFILES. sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` # Compute POTFILES_DEPS as # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) POTFILES_DEPS= for file in $POTFILES; do POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" done POMAKEFILEDEPS="" if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` fi # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) # Compute PROPERTIESFILES # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) # Compute CLASSFILES # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) # Compute QMFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) # Compute MSGFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) # Compute RESOURCESDLLFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= PROPERTIESFILES= CLASSFILES= QMFILES= MSGFILES= RESOURCESDLLFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" QMFILES="$QMFILES $srcdirpre$lang.qm" frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= JAVACATALOGS= QTCATALOGS= TCLCATALOGS= CSHARPCATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" QTCATALOGS="$QTCATALOGS $lang.qm" frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" done fi sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" tab=`printf '\t'` if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" <<EOF $frobbedlang.msg: $lang.po ${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ ${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } EOF done fi if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <<EOF $frobbedlang/\$(DOMAIN).resources.dll: $lang.po ${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ ${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } EOF done fi if test -n "$POMAKEFILEDEPS"; then cat >> "$ac_file.tmp" <<EOF Makefile: $POMAKEFILEDEPS EOF fi mv "$ac_file.tmp" "$ac_file" ]) dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. AC_DEFUN([AM_XGETTEXT_OPTION_INIT], [ XGETTEXT_EXTRA_OPTIONS= ]) dnl Registers an option to be passed to xgettext in the po subdirectory. AC_DEFUN([AM_XGETTEXT_OPTION], [ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/vasnprintf.m4������������������������������������������������������������������������0000644�0000000�0000000�00000021133�12116370307�012455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# vasnprintf.m4 serial 36 dnl Copyright (C) 2002-2004, 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_VASNPRINTF], [ AC_CHECK_FUNCS_ONCE([vasnprintf]) if test $ac_cv_func_vasnprintf = no; then gl_REPLACE_VASNPRINTF fi ]) AC_DEFUN([gl_REPLACE_VASNPRINTF], [ AC_CHECK_FUNCS_ONCE([vasnprintf]) AC_LIBOBJ([vasnprintf]) AC_LIBOBJ([printf-args]) AC_LIBOBJ([printf-parse]) AC_LIBOBJ([asnprintf]) if test $ac_cv_func_vasnprintf = yes; then AC_DEFINE([REPLACE_VASNPRINTF], [1], [Define if vasnprintf exists but is overridden by gnulib.]) fi gl_PREREQ_PRINTF_ARGS gl_PREREQ_PRINTF_PARSE gl_PREREQ_VASNPRINTF gl_PREREQ_ASNPRINTF ]) # Prerequisites of lib/printf-args.h, lib/printf-args.c. AC_DEFUN([gl_PREREQ_PRINTF_ARGS], [ AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) ]) # Prerequisites of lib/printf-parse.h, lib/printf-parse.c. AC_DEFUN([gl_PREREQ_PRINTF_PARSE], [ AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_REQUIRE([AC_TYPE_SIZE_T]) AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_REQUIRE([gt_AC_TYPE_INTMAX_T]) ]) # Prerequisites of lib/vasnprintf.c. AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). AC_CHECK_DECLS([_snprintf], , , [[#include <stdio.h>]]) dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE. AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION]) dnl We can avoid a lot of code by assuming that snprintf's return value dnl conforms to ISO C99. So check that. AC_REQUIRE([gl_SNPRINTF_RETVAL_C99]) case "$gl_cv_func_snprintf_retval_c99" in *yes) AC_DEFINE([HAVE_SNPRINTF_RETVAL_C99], [1], [Define if the return value of the snprintf function is the number of of bytes (excluding the terminating NUL) that would have been produced if the buffer had been large enough.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting 'long double' # arguments. AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double' # arguments. AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE], [ AC_REQUIRE([gl_PRINTF_INFINITE]) case "$gl_cv_func_printf_infinite" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for infinite 'double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double' # arguments. AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE]) dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if dnl NEED_PRINTF_LONG_DOUBLE is already set. AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in *yes) case "$gl_cv_func_printf_infinite_long_double" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for infinite 'long double' arguments.]) ;; esac ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_A]) case "$gl_cv_func_printf_directive_a" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1], [Define if the vasnprintf implementation needs special code for the 'a' and 'A' directives.]) AC_CHECK_FUNCS([nl_langinfo]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F]) case "$gl_cv_func_printf_directive_f" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], [1], [Define if the vasnprintf implementation needs special code for the 'F' directive.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'ls' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LS], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS]) case "$gl_cv_func_printf_directive_ls" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_LS], [1], [Define if the vasnprintf implementation needs special code for the 'ls' directive.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the ' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING], [ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING]) case "$gl_cv_func_printf_flag_grouping" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1], [Define if the vasnprintf implementation needs special code for the ' flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST], [ AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST]) case "$gl_cv_func_printf_flag_leftadjust" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], [1], [Define if the vasnprintf implementation needs special code for the '-' flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO], [ AC_REQUIRE([gl_PRINTF_FLAG_ZERO]) case "$gl_cv_func_printf_flag_zero" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_ZERO], [1], [Define if the vasnprintf implementation needs special code for the 0 flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting large precisions. AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION], [ AC_REQUIRE([gl_PRINTF_PRECISION]) case "$gl_cv_func_printf_precision" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], [1], [Define if the vasnprintf implementation needs special code for supporting large precisions without arbitrary bounds.]) AC_DEFINE([NEED_PRINTF_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'double' arguments.]) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory # conditions. AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM], [ AC_REQUIRE([gl_PRINTF_ENOMEM]) case "$gl_cv_func_printf_enomem" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_ENOMEM], [1], [Define if the vasnprintf implementation needs special code for surviving out-of-memory conditions.]) AC_DEFINE([NEED_PRINTF_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'double' arguments.]) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance. AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS], [ AC_REQUIRE([gl_PREREQ_VASNPRINTF]) gl_PREREQ_VASNPRINTF_LONG_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE gl_PREREQ_VASNPRINTF_DIRECTIVE_A gl_PREREQ_VASNPRINTF_DIRECTIVE_F gl_PREREQ_VASNPRINTF_DIRECTIVE_LS gl_PREREQ_VASNPRINTF_FLAG_GROUPING gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST gl_PREREQ_VASNPRINTF_FLAG_ZERO gl_PREREQ_VASNPRINTF_PRECISION gl_PREREQ_VASNPRINTF_ENOMEM ]) # Prerequisites of lib/asnprintf.c. AC_DEFUN([gl_PREREQ_ASNPRINTF], [ ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/realloc.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000004753�12116370307�011715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# realloc.m4 serial 13 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. m4_version_prereq([2.70], [] ,[ # This is taken from the following Autoconf patch: # http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 AC_DEFUN([_AC_FUNC_REALLOC_IF], [ AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CHECK_HEADERS([stdlib.h]) AC_CACHE_CHECK([for GNU libc compatible realloc], [ac_cv_func_realloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include <stdlib.h> #else char *realloc (); #endif ]], [[return ! realloc (0, 0);]]) ], [ac_cv_func_realloc_0_nonnull=yes], [ac_cv_func_realloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_realloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_realloc_0_nonnull=no ;; esac ]) ]) AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2]) ])# AC_FUNC_REALLOC ]) # gl_FUNC_REALLOC_GNU # ------------------- # Test whether 'realloc (0, 0)' is handled like in GNU libc, and replace # realloc if it is not. AC_DEFUN([gl_FUNC_REALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl _AC_FUNC_REALLOC_IF is defined in Autoconf. _AC_FUNC_REALLOC_IF( [AC_DEFINE([HAVE_REALLOC_GNU], [1], [Define to 1 if your system has a GNU libc compatible 'realloc' function, and to 0 otherwise.])], [AC_DEFINE([HAVE_REALLOC_GNU], [0]) REPLACE_REALLOC=1 ]) ])# gl_FUNC_REALLOC_GNU # gl_FUNC_REALLOC_POSIX # --------------------- # Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace realloc if it is not. AC_DEFUN([gl_FUNC_REALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_REALLOC_POSIX], [1], [Define if the 'realloc' function is POSIX compliant.]) else REPLACE_REALLOC=1 fi ]) ���������������������wdiff-1.2.1/m4/errno_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000006234�12116370307�011724� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# errno_h.m4 serial 12 dnl Copyright (C) 2004, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ #include <errno.h> #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif ], [gl_cv_header_errno_h_complete=no], [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else gl_NEXT_HEADERS([errno.h]) ERRNO_H='errno.h' fi AC_SUBST([ERRNO_H]) AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) ]) # Assuming $1 = EOVERFLOW. # The EOVERFLOW errno value ought to be defined in <errno.h>, according to # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. # Check for the value of EOVERFLOW. # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ if test -n "$ERRNO_H"; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include <errno.h> #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=yes], [gl_cv_header_errno_h_]$1[=no]) if test $gl_cv_header_errno_h_]$1[ = no; then AC_EGREP_CPP([yes],[ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=hidden]) if test $gl_cv_header_errno_h_]$1[ = hidden; then dnl The macro exists but is hidden. dnl Define it to the same value. AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> ]) fi fi ]) case $gl_cv_header_errno_h_]$1[ in yes | no) ]$1[_HIDDEN=0; ]$1[_VALUE= ;; *) ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" ;; esac AC_SUBST($1[_HIDDEN]) AC_SUBST($1[_VALUE]) fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/mbsinit.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002763�12116370307�011740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbsinit.m4 serial 8 dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBSINIT], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbsinit]) if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 AC_CHECK_DECLS([mbsinit],,, [[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> ]]) if test $ac_cv_have_decl_mbsinit = yes; then dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else dnl On mingw, mbsinit() always returns 1, which is inappropriate for dnl states produced by mbrtowc() for an incomplete multibyte character dnl in multibyte locales. case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi ]) # Prerequisites of lib/mbsinit.c. AC_DEFUN([gl_PREREQ_MBSINIT], [ : ]) �������������wdiff-1.2.1/m4/mbstate_t.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000002567�12116370307�012257� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbstate_t.m4 serial 13 dnl Copyright (C) 2000-2002, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # From Paul Eggert. # BeOS 5 has <wchar.h> but does not define mbstate_t, # so you can't declare an object of that type. # Check for this incompatibility with Standard C. # AC_TYPE_MBSTATE_T # ----------------- AC_DEFUN([AC_TYPE_MBSTATE_T], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11 AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h>]], [[mbstate_t x; return sizeof x;]])], [ac_cv_type_mbstate_t=yes], [ac_cv_type_mbstate_t=no])]) if test $ac_cv_type_mbstate_t = yes; then AC_DEFINE([HAVE_MBSTATE_T], [1], [Define to 1 if <wchar.h> declares mbstate_t.]) else AC_DEFINE([mbstate_t], [int], [Define to a type if <wchar.h> does not define.]) fi ]) �����������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/vasprintf.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000002100�12116370307�012270� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# vasprintf.m4 serial 6 dnl Copyright (C) 2002-2003, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_VASPRINTF], [ AC_CHECK_FUNCS([vasprintf]) if test $ac_cv_func_vasprintf = no; then gl_REPLACE_VASPRINTF fi ]) AC_DEFUN([gl_REPLACE_VASPRINTF], [ AC_LIBOBJ([vasprintf]) AC_LIBOBJ([asprintf]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) if test $ac_cv_func_vasprintf = yes; then REPLACE_VASPRINTF=1 else HAVE_VASPRINTF=0 fi gl_PREREQ_VASPRINTF_H gl_PREREQ_VASPRINTF gl_PREREQ_ASPRINTF ]) # Prerequisites of the vasprintf portion of lib/stdio.h. AC_DEFUN([gl_PREREQ_VASPRINTF_H], [ dnl Persuade glibc <stdio.h> to declare asprintf() and vasprintf(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) # Prerequisites of lib/vasprintf.c. AC_DEFUN([gl_PREREQ_VASPRINTF], [ ]) # Prerequisites of lib/asprintf.c. AC_DEFUN([gl_PREREQ_ASPRINTF], [ ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/malloca.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001101�12116370307�011664� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# malloca.m4 serial 1 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MALLOCA], [ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/float_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000004663�12116370307�011710� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# float_h.m4 serial 9 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FLOAT_H], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) FLOAT_H=float.h ;; freebsd*) case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. AC_EGREP_CPP([yes], [#if defined __LP64__ || defined __x86_64__ || defined __amd64__ yes #endif], [], [FLOAT_H=float.h]) ;; esac ;; linux*) case "$host_cpu" in powerpc*) FLOAT_H=float.h ;; esac ;; esac case "$host_os" in aix* | freebsd* | linux*) if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; esac dnl Test against glibc-2.7 Linux/SPARC64 bug. REPLACE_ITOLD=0 AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works], [gl_cv_func_itold_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ int i = -1; volatile long double ld; int main () { ld += i * 1.0L; if (ld > 0) return 1; return 0; }]])], [gl_cv_func_itold_works=yes], [gl_cv_func_itold_works=no], [case "$host" in sparc*-*-linux*) AC_EGREP_CPP([yes], [#if defined __LP64__ || defined __arch64__ yes #endif], [gl_cv_func_itold_works="guessing no"], [gl_cv_func_itold_works="guessing yes"]) ;; *) gl_cv_func_itold_works="guessing yes" ;; esac ]) ]) case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 dnl We add the workaround to <float.h> but also to <math.h>, dnl to increase the chances that the fix function gets pulled in. FLOAT_H=float.h ;; esac if test -n "$FLOAT_H"; then gl_NEXT_HEADERS([float.h]) fi AC_SUBST([FLOAT_H]) AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"]) AC_SUBST([REPLACE_ITOLD]) ]) �����������������������������������������������������������������������������wdiff-1.2.1/m4/dup2.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000005464�12116370307�011146� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 19 dnl Copyright (C) 2002, 2005, 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [ AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = no; then HAVE_DUP2=0 fi ], [ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) ]) if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include <unistd.h> #include <fcntl.h> #include <errno.h>]], [int result = 0; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) == 0) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, 1000000) == -1 && errno != EBADF) result |= 16; /* Flush out a cygwin core dump. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; return result; ]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 ;; esac fi dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then if test $HAVE_DUP2 = 1; then REPLACE_DUP2=1 fi fi ]) ]) # Prerequisites of lib/dup2.c. AC_DEFUN([gl_PREREQ_DUP2], []) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/gnulib-comp.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000052553�12116370307�012511� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <http://www.gnu.org/licenses/>. # # 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. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([gl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable AC_REQUIRE([gl_PROG_AR_RANLIB]) AC_REQUIRE([AM_PROG_CC_C_O]) # Code from module alloca-opt: # Code from module btowc: # Code from module canonicalize-lgpl: # Code from module configmake: # Code from module dosname: # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module extern-inline: # Code from module float: # Code from module gendocs: # Code from module getdelim: # Code from module getline: # Code from module getopt: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module gettext: # Code from module gettext-h: # Code from module gnumakefile: # Code from module havelib: # Code from module include_next: # Code from module intprops: # Code from module iswblank: # Code from module langinfo: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module localcharset: # Code from module locale: # Code from module localeconv: # Code from module lstat: # Code from module maintainer-makefile: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: # Code from module mbchar: # Code from module mbrtowc: # Code from module mbsinit: # Code from module mbsrchr: # Code from module mbtowc: # Code from module mbuiter: # Code from module memchr: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nl_langinfo: # Code from module nocrash: # Code from module pathmax: # Code from module readlink: # Code from module realloc-posix: # Code from module regex: # Code from module setenv: # Code from module size_max: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stat: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module string: # Code from module strnlen1: # Code from module strstr-simple: # Code from module sys_stat: # Code from module sys_types: # Code from module sys_wait: # Code from module time: # Code from module unistd: # Code from module unitypes: # Code from module uniwidth/base: # Code from module uniwidth/width: # Code from module useless-if-before-free: # Code from module vasnprintf: # Code from module vasprintf: # Code from module vc-list-files: # Code from module verify: # Code from module wchar: # Code from module wcrtomb: # Code from module wctype-h: # Code from module wcwidth: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: # Code from module xsize: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [false]) gl_cond_libtool=false gl_libdeps= gl_ltlibdeps= gl_m4_base='m4' m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='lib' gl_FUNC_ALLOCA gl_FUNC_BTOWC if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then AC_LIBOBJ([btowc]) gl_PREREQ_BTOWC fi gl_WCHAR_MODULE_INDICATOR([btowc]) gl_CANONICALIZE_LGPL if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then AC_LIBOBJ([canonicalize-lgpl]) fi gl_MODULE_INDICATOR([canonicalize-lgpl]) gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) gl_STDLIB_MODULE_INDICATOR([realpath]) gl_CONFIGMAKE_PREP gl_FUNC_DUP2 if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then AC_LIBOBJ([dup2]) gl_PREREQ_DUP2 fi gl_UNISTD_MODULE_INDICATOR([dup2]) gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) gl_HEADER_ERRNO_H gl_ERROR if test $ac_cv_lib_error_at_line = no; then AC_LIBOBJ([error]) gl_PREREQ_ERROR fi m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) AC_REQUIRE([gl_EXTERN_INLINE]) gl_FLOAT_H if test $REPLACE_FLOAT_LDBL = 1; then AC_LIBOBJ([float]) fi if test $REPLACE_ITOLD = 1; then AC_LIBOBJ([itold]) fi gl_FUNC_GETDELIM if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then AC_LIBOBJ([getdelim]) gl_PREREQ_GETDELIM fi gl_STDIO_MODULE_INDICATOR([getdelim]) gl_FUNC_GETLINE if test $REPLACE_GETLINE = 1; then AC_LIBOBJ([getline]) gl_PREREQ_GETLINE fi gl_STDIO_MODULE_INDICATOR([getline]) gl_FUNC_GETOPT_GNU if test $REPLACE_GETOPT = 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT dnl Arrange for unistd.h to include getopt.h. GNULIB_GL_UNISTD_H_GETOPT=1 fi AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) gl_FUNC_GETOPT_POSIX if test $REPLACE_GETOPT = 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT dnl Arrange for unistd.h to include getopt.h. GNULIB_GL_UNISTD_H_GETOPT=1 fi AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. AM_GNU_GETTEXT_VERSION([0.18.1]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile m4_if(m4_version_compare([2.61a.100], m4_defn([m4_PACKAGE_VERSION])), [1], [], [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], [GNUmakefile=$GNUmakefile])]) gl_FUNC_ISWBLANK if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : else if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then AC_LIBOBJ([iswblank]) fi fi gl_WCTYPE_MODULE_INDICATOR([iswblank]) gl_LANGINFO_H AC_REQUIRE([gl_LARGEFILE]) gl_LOCALCHARSET LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_LOCALE_H gl_FUNC_LOCALECONV if test $REPLACE_LOCALECONV = 1; then AC_LIBOBJ([localeconv]) gl_PREREQ_LOCALECONV fi gl_LOCALE_MODULE_INDICATOR([localeconv]) gl_FUNC_LSTAT if test $REPLACE_LSTAT = 1; then AC_LIBOBJ([lstat]) gl_PREREQ_LSTAT fi gl_SYS_STAT_MODULE_INDICATOR([lstat]) AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) gl_FUNC_MALLOC_GNU if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_MODULE_INDICATOR([malloc-gnu]) gl_FUNC_MALLOC_POSIX if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MALLOCA gl_MBCHAR gl_FUNC_MBRTOWC if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then AC_LIBOBJ([mbrtowc]) gl_PREREQ_MBRTOWC fi gl_WCHAR_MODULE_INDICATOR([mbrtowc]) gl_FUNC_MBSINIT if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then AC_LIBOBJ([mbsinit]) gl_PREREQ_MBSINIT fi gl_WCHAR_MODULE_INDICATOR([mbsinit]) gl_STRING_MODULE_INDICATOR([mbsrchr]) gl_FUNC_MBTOWC if test $REPLACE_MBTOWC = 1; then AC_LIBOBJ([mbtowc]) gl_PREREQ_MBTOWC fi gl_STDLIB_MODULE_INDICATOR([mbtowc]) gl_MBITER gl_FUNC_MEMCHR if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then AC_LIBOBJ([memchr]) gl_PREREQ_MEMCHR fi gl_STRING_MODULE_INDICATOR([memchr]) gl_MSVC_INVAL if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-inval]) fi gl_MSVC_NOTHROW if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-nothrow]) fi gl_MULTIARCH gl_FUNC_NL_LANGINFO if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then AC_LIBOBJ([nl_langinfo]) fi gl_LANGINFO_MODULE_INDICATOR([nl_langinfo]) gl_PATHMAX gl_FUNC_READLINK if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then AC_LIBOBJ([readlink]) gl_PREREQ_READLINK fi gl_UNISTD_MODULE_INDICATOR([readlink]) gl_FUNC_REALLOC_POSIX if test $REPLACE_REALLOC = 1; then AC_LIBOBJ([realloc]) fi gl_STDLIB_MODULE_INDICATOR([realloc-posix]) gl_REGEX if test $ac_use_included_regex = yes; then AC_LIBOBJ([regex]) gl_PREREQ_REGEX fi gl_FUNC_SETENV if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then AC_LIBOBJ([setenv]) fi gl_STDLIB_MODULE_INDICATOR([setenv]) gl_SIZE_MAX gt_TYPE_SSIZE_T gl_FUNC_STAT if test $REPLACE_STAT = 1; then AC_LIBOBJ([stat]) gl_PREREQ_STAT fi gl_SYS_STAT_MODULE_INDICATOR([stat]) AM_STDBOOL_H gl_STDDEF_H gl_STDINT_H gl_STDIO_H gl_STDLIB_H gl_FUNC_STRERROR if test $REPLACE_STRERROR = 1; then AC_LIBOBJ([strerror]) fi gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then AC_LIBOBJ([strerror-override]) gl_PREREQ_SYS_H_WINSOCK2 fi gl_HEADER_STRING_H gl_FUNC_STRSTR_SIMPLE if test $REPLACE_STRSTR = 1; then AC_LIBOBJ([strstr]) fi gl_STRING_MODULE_INDICATOR([strstr]) gl_HEADER_SYS_STAT_H AC_PROG_MKDIR_P gl_SYS_TYPES_H AC_PROG_MKDIR_P gl_SYS_WAIT_H AC_PROG_MKDIR_P gl_HEADER_TIME_H gl_UNISTD_H gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h]) gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h]) gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width]) gl_FUNC_VASNPRINTF gl_FUNC_VASPRINTF gl_STDIO_MODULE_INDICATOR([vasprintf]) m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format]) AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])]) gl_WCHAR_H gl_FUNC_WCRTOMB if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then AC_LIBOBJ([wcrtomb]) gl_PREREQ_WCRTOMB fi gl_WCHAR_MODULE_INDICATOR([wcrtomb]) gl_WCTYPE_H gl_FUNC_WCWIDTH if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then AC_LIBOBJ([wcwidth]) fi gl_WCHAR_MODULE_INDICATOR([wcwidth]) gl_XALLOC gl_XSIZE # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='tests' changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([gltests_WITNESS]) gl_module_indicator_condition=$gltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) ]) LIBGNU_LIBDEPS="$gl_libdeps" AC_SUBST([LIBGNU_LIBDEPS]) LIBGNU_LTLIBDEPS="$gl_ltlibdeps" AC_SUBST([LIBGNU_LTLIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_LIBOBJ], [ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gl_LIBSOURCES_DIR], [lib]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_LIBOBJ], [ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gltests_LIBSOURCES_DIR], [tests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/config.rpath build-aux/gendocs.sh build-aux/snippet/_Noreturn.h build-aux/snippet/arg-nonnull.h build-aux/snippet/c++defs.h build-aux/snippet/warn-on-use.h build-aux/useless-if-before-free build-aux/vc-list-files doc/gendocs_template lib/alloca.in.h lib/asnprintf.c lib/asprintf.c lib/btowc.c lib/canonicalize-lgpl.c lib/config.charset lib/dosname.h lib/dup2.c lib/errno.in.h lib/error.c lib/error.h lib/exitfail.c lib/exitfail.h lib/float+.h lib/float.c lib/float.in.h lib/getdelim.c lib/getline.c lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h lib/gettext.h lib/intprops.h lib/iswblank.c lib/itold.c lib/langinfo.in.h lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/localeconv.c lib/lstat.c lib/malloc.c lib/malloca.c lib/malloca.h lib/malloca.valgrind lib/mbchar.c lib/mbchar.h lib/mbrtowc.c lib/mbsinit.c lib/mbsrchr.c lib/mbtowc-impl.h lib/mbtowc.c lib/mbuiter.c lib/mbuiter.h lib/memchr.c lib/memchr.valgrind lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/nl_langinfo.c lib/pathmax.h lib/printf-args.c lib/printf-args.h lib/printf-parse.c lib/printf-parse.h lib/readlink.c lib/realloc.c lib/ref-add.sin lib/ref-del.sin lib/regcomp.c lib/regex.c lib/regex.h lib/regex_internal.c lib/regex_internal.h lib/regexec.c lib/setenv.c lib/size_max.h lib/stat.c lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio.in.h lib/stdlib.in.h lib/str-two-way.h lib/streq.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/string.in.h lib/strnlen1.c lib/strnlen1.h lib/strstr.c lib/sys_stat.in.h lib/sys_types.in.h lib/sys_wait.in.h lib/time.in.h lib/unistd.c lib/unistd.in.h lib/unitypes.in.h lib/uniwidth.in.h lib/uniwidth/cjk.h lib/uniwidth/width.c lib/vasnprintf.c lib/vasnprintf.h lib/vasprintf.c lib/verify.h lib/wchar.in.h lib/wcrtomb.c lib/wctype-h.c lib/wctype.in.h lib/wcwidth.c lib/xalloc-die.c lib/xalloc-oversized.h lib/xalloc.h lib/xmalloc.c lib/xsize.c lib/xsize.h m4/00gnulib.m4 m4/alloca.m4 m4/btowc.m4 m4/canonicalize.m4 m4/codeset.m4 m4/configmake.m4 m4/double-slash-root.m4 m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 m4/error.m4 m4/exponentd.m4 m4/extensions.m4 m4/extern-inline.m4 m4/fcntl-o.m4 m4/float_h.m4 m4/getdelim.m4 m4/getline.m4 m4/getopt.m4 m4/gettext.m4 m4/glibc2.m4 m4/glibc21.m4 m4/gnulib-common.m4 m4/iconv.m4 m4/include_next.m4 m4/intdiv0.m4 m4/intl.m4 m4/intldir.m4 m4/intlmacosx.m4 m4/intmax.m4 m4/intmax_t.m4 m4/inttypes-pri.m4 m4/inttypes_h.m4 m4/iswblank.m4 m4/langinfo_h.m4 m4/largefile.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/libunistring-base.m4 m4/localcharset.m4 m4/locale-fr.m4 m4/locale-ja.m4 m4/locale-zh.m4 m4/locale_h.m4 m4/localeconv.m4 m4/lock.m4 m4/longlong.m4 m4/lstat.m4 m4/malloc.m4 m4/malloca.m4 m4/math_h.m4 m4/mbchar.m4 m4/mbiter.m4 m4/mbrtowc.m4 m4/mbsinit.m4 m4/mbstate_t.m4 m4/mbtowc.m4 m4/memchr.m4 m4/mmap-anon.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nl_langinfo.m4 m4/nls.m4 m4/nocrash.m4 m4/off_t.m4 m4/onceonly.m4 m4/pathmax.m4 m4/po.m4 m4/printf-posix.m4 m4/printf.m4 m4/progtest.m4 m4/readlink.m4 m4/realloc.m4 m4/regex.m4 m4/setenv.m4 m4/size_max.m4 m4/ssize_t.m4 m4/stat.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdint_h.m4 m4/stdio_h.m4 m4/stdlib_h.m4 m4/strerror.m4 m4/string_h.m4 m4/strstr.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_types_h.m4 m4/sys_wait_h.m4 m4/threadlib.m4 m4/time_h.m4 m4/uintmax_t.m4 m4/unistd_h.m4 m4/vasnprintf.m4 m4/vasprintf.m4 m4/visibility.m4 m4/warn-on-use.m4 m4/wchar_h.m4 m4/wchar_t.m4 m4/wcrtomb.m4 m4/wctype_h.m4 m4/wcwidth.m4 m4/wint_t.m4 m4/xalloc.m4 m4/xsize.m4 top/GNUmakefile top/maint.mk ]) �����������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/size_max.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000005770�12116370307�012113� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# size_max.m4 serial 10 dnl Copyright (C) 2003, 2005-2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) dnl First test whether the system already has SIZE_MAX. AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include <limits.h> #if HAVE_STDINT_H #include <stdint.h> #endif #ifdef SIZE_MAX Found it #endif ], [gl_cv_size_max=yes]) if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], [#include <stddef.h> #include <limits.h>], [size_t_bits_minus_1=]) AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], [#include <stddef.h>], [fits_in_uint=]) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stddef.h> extern size_t foo; extern unsigned long foo; ]], [[]])], [fits_in_uint=0]) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... gl_cv_size_max='((size_t)~(size_t)0)' fi fi ]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi dnl Don't redefine SIZE_MAX in config.h if config.h is re-included after dnl <stdint.h>. Remember that the #undef in AH_VERBATIM gets replaced with dnl #define by AC_DEFINE_UNQUOTED. AH_VERBATIM([SIZE_MAX], [/* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif]) ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) ��������wdiff-1.2.1/m4/stdbool.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000006371�12116370307�011740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Check for stdbool.h that conforms to C99. dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #serial 5 # Prepare for substituting <stdbool.h> if it is not supported. AC_DEFUN([AM_STDBOOL_H], [ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi AC_SUBST([STDBOOL_H]) AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi AC_SUBST([HAVE__BOOL]) ]) # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) # This version of the macro is needed in autoconf <= 2.68. AC_DEFUN([AC_CHECK_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99], [ac_cv_header_stdbool_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdbool.h> #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; ]], [[ bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ]])], [ac_cv_header_stdbool_h=yes], [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/stdint_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001743�12116370307�012104� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdint_h.m4 serial 9 dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists, # doesn't clash with <sys/types.h>, and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> #include <stdint.h>]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_stdint_h=yes], [gl_cv_header_stdint_h=no])]) if test $gl_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1], [Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares uintmax_t. ]) fi ]) �����������������������������wdiff-1.2.1/m4/nl_langinfo.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000003524�12116370307�012555� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nl_langinfo.m4 serial 5 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_NL_LANGINFO], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) AC_REQUIRE([gl_LANGINFO_H]) AC_CHECK_FUNCS_ONCE([nl_langinfo]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. AC_CACHE_CHECK([whether YESEXPR works], [gl_cv_func_nl_langinfo_yesexpr_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include <langinfo.h> ]], [[return !*nl_langinfo(YESEXPR); ]])], [gl_cv_func_nl_langinfo_yesexpr_works=yes], [gl_cv_func_nl_langinfo_yesexpr_works=no], [ case "$host_os" in # Guess no on irix systems. irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; # Guess yes elsewhere. *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; esac ]) ]) case $gl_cv_func_nl_langinfo_yesexpr_works in *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; esac AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS], [$FUNC_NL_LANGINFO_YESEXPR_WORKS], [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.]) if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 AC_DEFINE([REPLACE_NL_LANGINFO], [1], [Define if nl_langinfo exists but is overridden by gnulib.]) fi else HAVE_NL_LANGINFO=0 fi ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/include_next.m4����������������������������������������������������������������������0000644�0000000�0000000�00000025424�12116370307�012753� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# include_next.m4 serial 23 dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Derek Price. dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. dnl dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler dnl supports it in the special case that it is the first include directive in dnl the given file, or to 'include' otherwise. dnl dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, dnl so as to avoid GCC warnings when the gcc option -pedantic is used. dnl '#pragma GCC system_header' has the same effect as if the file was found dnl through the include search path specified with '-isystem' options (as dnl opposed to the search path specified with '-I' options). Namely, gcc dnl does not warn about some things, and on some systems (Solaris and Interix) dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead dnl of plain '__STDC__'. dnl dnl PRAGMA_COLUMNS can be used in files that override system header files, so dnl as to avoid compilation errors on HP NonStop systems when the gnulib file dnl is included by a system header file that does a "#pragma COLUMNS 80" (which dnl has the effect of truncating the lines of that file and all files that it dnl includes to 80 columns) and the gnulib file has lines longer than 80 dnl columns. AC_DEFUN([gl_INCLUDE_NEXT], [ AC_LANG_PREPROC_REQUIRE() AC_CACHE_CHECK([whether the preprocessor supports include_next], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on dnl AIX 6.1 support include_next when used as first preprocessor directive dnl in a file, but not when preceded by another include directive. Check dnl for this bug by including <stdio.h>. dnl Additionally, with this same compiler, include_next is a no-op when dnl used in a header file that was included by specifying its absolute dnl file name. Despite these two bugs, include_next is used in the dnl compiler's <math.h>. By virtue of the second bug, we need to use dnl include_next as well in this case. cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include <stdio.h> #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" dnl We intentionally avoid using AC_LANG_SOURCE here. AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], [gl_cv_have_include_next=yes], [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], [gl_cv_have_include_next=buggy], [gl_cv_have_include_next=no]) ]) CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 ]) PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi AC_SUBST([INCLUDE_NEXT]) AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) AC_SUBST([PRAGMA_SYSTEM_HEADER]) AC_CACHE_CHECK([whether system header files limit the line length], [gl_cv_pragma_columns], [dnl HP NonStop systems, which define __TANDEM, have this misfeature. AC_EGREP_CPP([choke me], [ #ifdef __TANDEM choke me #endif ], [gl_cv_pragma_columns=yes], [gl_cv_pragma_columns=no]) ]) if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi AC_SUBST([PRAGMA_COLUMNS]) ]) # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------------ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # '<foo.h>'; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # Also, if #include_next works as first preprocessing directive in a file, # define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be '<foo.h>'; otherwise define it to # be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: # #@INCLUDE_NEXT@ @NEXT_FOO_H@ # or # #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained # #include_next <foo.h> # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. # # This macro also checks whether each header exists, by invoking # AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. AC_DEFUN([gl_CHECK_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [check]) ]) # gl_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------ # Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. # This is suitable for headers like <stddef.h> that are standardized by C89 # and therefore can be assumed to exist. AC_DEFUN([gl_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [assume]) ]) # The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [ AC_REQUIRE([gl_INCLUDE_NEXT]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_if([$2], [check], [AC_CHECK_HEADERS_ONCE([$1]) ]) dnl FIXME: gl_next_header and gl_header_exists must be used unquoted dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], m4_defn([gl_next_header]), [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) if test AS_VAR_GET(gl_header_exists) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) AC_LANG_CONFTEST( [AC_LANG_SOURCE( [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] )]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header dnl files that contain only a #include of other header files and dnl no non-comment tokens of their own. This leads to a failure dnl to detect the absolute name of <dirent.h>, <signal.h>, dnl <poll.h> and others. The workaround is to force preservation dnl of comments through option -C. This ensures all necessary dnl #line directives are present. GCC supports option -C as well. case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac changequote(,) case "$host_os" in mingw*) dnl For the sake of native Windows compilers (excluding gcc), dnl treat backslash as a directory separator, like /. dnl Actually, these compilers use a double-backslash as dnl directory separator, inside the dnl # line "filename" dnl directives. gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac dnl A sed expression that turns a string into a basic regular dnl expression, for use within "/.../". gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' changequote([,]) gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ changequote(,)dnl s|^/[^/]|//&| changequote([,])dnl p q }' dnl eval is necessary to expand gl_absname_cpp. dnl Ultrix and Pyramid sh refuse to redirect output of eval, dnl so use subshell. AS_VAR_SET(gl_next_header, ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`'"']) m4_if([$2], [check], [else AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET(gl_next_header)]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=AS_VAR_GET(gl_next_header) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) # Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; # this fallback is safe for all earlier autoconf versions. m4_define_default([AC_LANG_DEFINES_PROVIDED]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/xalloc.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000000472�12116370307�011550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# xalloc.m4 serial 18 dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XALLOC], [:]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/memchr.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000005340�12116370307�011540� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# memchr.m4 serial 12 dnl Copyright (C) 2002-2004, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_FUNC_MEMCHR], [ dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [ dnl These days, we assume memchr is present. But if support for old dnl platforms is desired: AC_CHECK_FUNCS_ONCE([memchr]) if test $ac_cv_func_memchr = no; then HAVE_MEMCHR=0 fi ]) if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 # memchr should not dereference overestimated length after a match # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 # Assume that memchr works on platforms that lack mprotect. AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <string.h> #if HAVE_SYS_MMAN_H # include <fcntl.h> # include <unistd.h> # include <sys/types.h> # include <sys/mman.h> # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif ]], [[ int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } return result; ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], [dnl Be pessimistic for now. gl_cv_func_memchr_works="guessing no"])]) if test "$gl_cv_func_memchr_works" != yes; then REPLACE_MEMCHR=1 fi fi ]) # Prerequisites of lib/memchr.c. AC_DEFUN([gl_PREREQ_MEMCHR], [ AC_CHECK_HEADERS([bp-sym.h]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/gnulib-cache.m4����������������������������������������������������������������������0000644�0000000�0000000�00000004264�12116370307�012612� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <http://www.gnu.org/licenses/>. # # 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. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --po-base=lib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --po-domain=wdiff canonicalize-lgpl dup2 error gendocs getline getopt gettext locale maintainer-makefile mbsrchr regex setenv strstr-simple sys_stat sys_wait unistd vasprintf xalloc xmalloc # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ canonicalize-lgpl dup2 error gendocs getline getopt gettext locale maintainer-makefile mbsrchr regex setenv strstr-simple sys_stat sys_wait unistd vasprintf xalloc xmalloc ]) gl_AVOID([]) gl_SOURCE_BASE([lib]) gl_M4_BASE([m4]) gl_PO_BASE([lib/po]) gl_DOC_BASE([doc]) gl_TESTS_BASE([tests]) gl_LIB([libgnu]) gl_MAKEFILE_NAME([]) gl_MACRO_PREFIX([gl]) gl_PO_DOMAIN([wdiff]) gl_WITNESS_C_MACRO([]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/malloc.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000006276�12116370307�011545� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# malloc.m4 serial 14 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. m4_version_prereq([2.70], [] ,[ # This is taken from the following Autoconf patch: # http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 AC_DEFUN([_AC_FUNC_MALLOC_IF], [ AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CHECK_HEADERS([stdlib.h]) AC_CACHE_CHECK([for GNU libc compatible malloc], [ac_cv_func_malloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include <stdlib.h> #else char *malloc (); #endif ]], [[return ! malloc (0);]]) ], [ac_cv_func_malloc_0_nonnull=yes], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac ]) ]) AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2]) ])# _AC_FUNC_MALLOC_IF ]) # gl_FUNC_MALLOC_GNU # ------------------ # Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if # it is not. AC_DEFUN([gl_FUNC_MALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. _AC_FUNC_MALLOC_IF( [AC_DEFINE([HAVE_MALLOC_GNU], [1], [Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise.])], [AC_DEFINE([HAVE_MALLOC_GNU], [0]) REPLACE_MALLOC=1 ]) ]) # gl_FUNC_MALLOC_POSIX # -------------------- # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_MALLOC_POSIX], [1], [Define if the 'malloc' function is POSIX compliant.]) else REPLACE_MALLOC=1 fi ]) # Test whether malloc, realloc, calloc are POSIX compliant, # Set gl_cv_func_malloc_posix to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], [gl_cv_func_malloc_posix], [ dnl It is too dangerous to try to allocate a large amount of memory: dnl some systems go to their knees when you do that. So assume that dnl all Unix implementations of the function are POSIX compliant. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[]], [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ choke me #endif ]])], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) ]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/wcrtomb.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000006610�12116370307�011743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wcrtomb.m4 serial 11 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_WCRTOMB], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([wcrtomb]) if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 AC_CHECK_DECLS([wcrtomb],,, [[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> ]]) if test $ac_cv_have_decl_wcrtomb = yes; then dnl On Minix 3.1.8, the system's <wchar.h> declares wcrtomb() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_WCRTOMB=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes dnl returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether wcrtomb return value is correct], [gl_cv_func_wcrtomb_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX 4, OSF/1 and Solaris. aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 1; } if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 4; } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 8; } return result; }]])], [gl_cv_func_wcrtomb_retval=yes], [gl_cv_func_wcrtomb_retval=no], [:]) fi ]) case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; esac fi fi ]) # Prerequisites of lib/wcrtomb.c. AC_DEFUN([gl_PREREQ_WCRTOMB], [ : ]) ������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/glibc21.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001613�12116370307�011507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# glibc21.m4 serial 5 dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer, or uClibc. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc], [ac_cv_gnu_library_2_1], [AC_EGREP_CPP([Lucky], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif ], [ac_cv_gnu_library_2_1=yes], [ac_cv_gnu_library_2_1=no]) ] ) AC_SUBST([GLIBC21]) GLIBC21="$ac_cv_gnu_library_2_1" ] ) ���������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/gettext.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000035615�12116370307�011761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gettext.m4 serial 66 (gettext-0.18.2) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value '$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ]])], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) �������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/langinfo_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000006721�12116370307�012375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# langinfo_h.m4 serial 7 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LANGINFO_H], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) dnl Persuade glibc-2.0.6 <langinfo.h> to define CODESET. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl <langinfo.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([langinfo.h]) dnl Determine whether <langinfo.h> exists. It is missing on mingw and BeOS. HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 AC_CHECK_HEADERS_ONCE([langinfo.h]) if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 dnl Determine what <langinfo.h> defines. CODESET and ERA etc. are missing dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. AC_CACHE_CHECK([whether langinfo.h defines CODESET], [gl_cv_header_langinfo_codeset], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <langinfo.h> int a = CODESET; ]])], [gl_cv_header_langinfo_codeset=yes], [gl_cv_header_langinfo_codeset=no]) ]) if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi AC_CACHE_CHECK([whether langinfo.h defines T_FMT_AMPM], [gl_cv_header_langinfo_t_fmt_ampm], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <langinfo.h> int a = T_FMT_AMPM; ]])], [gl_cv_header_langinfo_t_fmt_ampm=yes], [gl_cv_header_langinfo_t_fmt_ampm=no]) ]) if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi AC_CACHE_CHECK([whether langinfo.h defines ERA], [gl_cv_header_langinfo_era], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <langinfo.h> int a = ERA; ]])], [gl_cv_header_langinfo_era=yes], [gl_cv_header_langinfo_era=no]) ]) if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi AC_CACHE_CHECK([whether langinfo.h defines YESEXPR], [gl_cv_header_langinfo_yesexpr], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <langinfo.h> int a = YESEXPR; ]])], [gl_cv_header_langinfo_yesexpr=yes], [gl_cv_header_langinfo_yesexpr=no]) ]) if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi AC_SUBST([HAVE_LANGINFO_H]) AC_SUBST([HAVE_LANGINFO_CODESET]) AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM]) AC_SUBST([HAVE_LANGINFO_ERA]) AC_SUBST([HAVE_LANGINFO_YESEXPR]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <langinfo.h> ]], [nl_langinfo]) ]) AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LANGINFO_H_DEFAULTS], [ GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) ]) �����������������������������������������������wdiff-1.2.1/m4/largefile.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000012332�12116370307�012216� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Enable large files on systems where this is not the default. # Copyright 1992-1996, 1998-2013 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. # The following implementation works around a problem in autoconf <= 2.69; # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. m4_version_prereq([2.70], [] ,[ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [@%:@include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ @%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, # CACHE-VAR, # DESCRIPTION, # PROLOGUE, [FUNCTION-BODY]) # -------------------------------------------------------- m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], [AC_CACHE_CHECK([for $1 value needed for large files], [$3], [while :; do m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([$5], [$6])], [$3=no; break]) m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([@%:@define $1 $2 $5], [$6])], [$3=$2; break]) $3=unknown break done]) case $$3 in #( no | unknown) ;; *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; esac rm -rf conftest*[]dnl ])# _AC_SYS_LARGEFILE_MACRO_VALUE # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: # http://www.unix-systems.org/version2/whatsnew/lfs20mar.html AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile, [ --disable-largefile omit support for large files]) if test "$enable_largefile" != no; then AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) AC_COMPILE_IFELSE([], [break]) CC="$CC -n32" AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) break done CC=$ac_save_CC rm -f conftest.$ac_ext fi]) if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits, [Number of bits in a file offset, on hosts where this is settable.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) if test $ac_cv_sys_file_offset_bits = unknown; then _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files, [Define for large files, on AIX-style hosts.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) fi AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1], [Enable large inode numbers on Mac OS X 10.5.]) fi ])# AC_SYS_LARGEFILE ])# m4_version_prereq 2.70 # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. # Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib # overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. AC_DEFUN([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows. dnl mingw64 defines off_t to a 64-bit type already, if dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) ]) if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi dnl But all native Windows platforms (including mingw64) have a 32-bit dnl st_size member in 'struct stat'. WINDOWS_64_BIT_ST_SIZE=1 ;; *) dnl Nothing to do on gnulib's side. dnl A 64-bit off_t is dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, dnl OSF/1, Cygwin, dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on dnl glibc, HP-UX, Solaris, dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, dnl - impossible to achieve on Minix 3.1.8. WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/m4/00gnulib.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002522�12116370307�011704� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# 00gnulib.m4 serial 2 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts before all other dnl gnulib-provided .m4 files. It is needed until such time as we can dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics. # AC_DEFUN_ONCE([NAME], VALUE) # ---------------------------- # Define NAME to expand to VALUE on the first use (whether by direct # expansion, or by AC_REQUIRE), and to nothing on all subsequent uses. # Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This # definition is slower than the version in Autoconf 2.64, because it # can only use interfaces that existed since 2.59; but it achieves the # same effect. Quoting is necessary to avoid confusing Automake. m4_version_prereq([2.63.263], [], [m4_define([AC][_DEFUN_ONCE], [AC][_DEFUN([$1], [AC_REQUIRE([_gl_DEFUN_ONCE([$1])], [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl [AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])]) # gl_00GNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file prior to all other gnulib .m4 files. AC_DEFUN([gl_00GNULIB]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/THANKS����������������������������������������������������������������������������������0000644�0000000�0000000�00000004252�11744500575�010427� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. GNU wdiff has originally been written by Francois Pinard. Other people contributed to GNU wdiff by reporting problems, suggesting various improvements or submitting actual code. Here is a list of these people. Help me keeping it complete and exempt of errors. See various ChangeLogs for a detailed description of contributions. Aaron Ucko amu@mit.edu http://www.mit.edu/~amu/ Ambrose Li acli@ada.ddns.org Andreas Schwab schwab@issan.informatik.uni-dortmund.de Andy Norman ange@hplb.hpl.hp.com http://www-uk.hpl.hp.com/people/ange Charles C. Fu ccwf@bacchus.com http://www.klab.caltech.edu/~ccwf/ Colin Brough David Zuhn zoo@armadillo.com http://www.armadillo.com/zoo/ Francois Pinard pinard@iro.umontreal.ca http://www.iro.umontreal.ca/~pinard Greg McGary H.J. Lu hjl@lucon.org James Ganong jeg@ced.berkeley.edu Jim Meyering meyering@na-net.ornl.gov Joe Wells jbw@cs.bu.edu Joseph E. Sacco Joshua R. Poulson jrp@plaza.ds.adp.com Karl Berry karl@cs.umb.edu http://www.cs.umb.edu/~karl/ Karl Heuer kwzh@gnu.org Kaveh R. Ghazi Kawakami Akira kawakami@mita.nel.co.jp Larry Virden lvirden@cas.org http://purl.org/net/lvirden/ Lukas Petrlik luki@kiv.zcu.cz Massimo Dal Zotto dz@cs.unitn.it http://www.cs.unitn.it/~dz/ Nelson H.F. Beebe beebe@math.utah.edu http://www.math.utah.edu/~beebe Nicola Bernardini nicb@axnet.it Paul Eggert eggert@twinsun.com Paul Fox pgf@cayman.com Per Cederqvist ceder@lysator.liu.se http://www.lysator.liu.se/~ceder/ Pierre Gaumond gaumondp@ere.umontreal.ca Piet van Oostrum piet@cs.uu.nl http://www.cs.uu.nl/~piet Richard Stallman rms@gnu.org Robert Chassell bob@gnu.org http://www.rattlesnake.com Roland McGrath roland@gnu.org http://www.frob.com/~roland/ Santiago Vila Doncel sanvila@unex.es Steve Fisk fisk@bowdoin.edu http://www.bowdoin.edu/~fisk Thorsten Ohl Tony Leneis tony@plaza.ds.adp.com Ulrich Drepper drepper@gnu.org Vern Paxson vern@ee.lbl.gov Wayne Davison Ze'ev Shtadler Zhuo Zang ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wdiff-1.2.1/ChangeLog�������������������������������������������������������������������������������0000644�0000000�0000000�00000204454�12116513223�011260� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������2013-03-09 Martin von Gagern <Martin.vGagern@gmx.net> Do not require Texinfo 5.0. 2013-03-08 Martin von Gagern <Martin.vGagern@gmx.net> Disable some syntax checks to ensure we pass the rest. As there is no portable alternative to strncpy, and the strncpy uses in this application should be handling things careful enough, this seems safe. Keeping 9 years of copyrights in a single line in the texi file doesn't agree with my ideas of good style, so I'll rather disable the check. 2013-03-08 Martin von Gagern <Martin.vGagern@gmx.net> Improved ChangeLog: UTF-8 and without merges. 2013-03-08 Martin von Gagern <Martin.vGagern@gmx.net> Updated NEWS. 2013-01-29 Felipe Castro <fefcas@gmail.com> New Esperanto translation. 2013-01-29 Leandro Regueiro <leandro.regueiro@gmail.com> Updated Galician translation. 2013-01-29 Marco Colombo <m.colombo@ed.ac.uk> Updated Italian translation. 2013-01-29 David Prévot <david@tilapin.org> Updated French translation. 2012-07-12 Мирослав Николић <miroslavnikolic@rocketmail.com> Updated Serbian translation. 2012-05-31 Benno Schulenberg <benno@vertaalt.nl> Updated Dutch translation. 2012-05-30 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translation. 2012-05-30 Michael Piefel <piefel@informatik.hu-berlin.de> Updated German translation. 2012-05-30 Primož Peterlin <primozz.peterlin@gmail.com> Updated Slovenian translation. 2012-05-28 Santiago Vila Doncel <sanvila@unex.es> Updated Spanish translation. 2012-05-28 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translation. 2012-05-26 Jorma Karvonen <karvonen.jorma@gmail.com> Updated Finnish translation. 2012-05-26 Petr Pisar <petr.pisar@atlas.cz> Updated Czech translation. 2012-05-26 Trần Ngọc Quân <vnwildman@gmail.com> Updated Vietnamese translation. 2012-05-26 Rafał Maszkowski <rzm@icm.edu.pl> Updated Polish translation. 2012-05-25 Yuri Chornoivan <yurchor@ukr.net> Updated Ukrainian translation. 2013-03-08 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision 929bd53a6d2863c97bd3eb371f4693c39540bcb5 of the master branch, or more precisely, revision 3e80f5daa3f249b507666cec4133727d313f63a8 of my own "mvg" branch, available from github. 2012-05-23 Martin von Gagern <Martin.vGagern@gmx.net> Beta release 1.2.0. 2012-05-19 Martin von Gagern <Martin.vGagern@gmx.net> Add NEWS item for 1.1.1 2012-05-19 Martin von Gagern <Martin.vGagern@gmx.net> Update copyright to 2012. 2012-05-19 Martin von Gagern <Martin.vGagern@gmx.net> Only index files, not directories. Without this change, many syntax checks suddenly fail. Perhaps due to some change to bzr, not sure. 2012-05-17 Мирослав Николић <miroslavnikolic@rocketmail.com> Added Serbian translation. 2012-04-22 Trần Ngọc Quân <vnwildman@gmail.com> Updated Vietnamese translation. 2012-04-22 Keld Simonsen <keld@keldix.com> Updated Danish translation. 2012-04-21 Martin von Gagern <Martin.vGagern@gmx.net> Fix wdiff man page synopsis. This fix works around the actual problem using a patch, in order to avoid changes to the translatable messages of the help on usage. 2012-04-21 Martin von Gagern <Martin.vGagern@gmx.net> Adjust usage lines in help to match what help2man expects. 2011-11-16 Martin von Gagern <Martin.vGagern@gmx.net> Fix title of 1.1.0 section in NEWS file. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 1.1.0. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> Updated NEWS. 2011-10-27 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translation. 2011-10-20 Santiago Vila Doncel <sanvila@unex.es> Updated Spanish translation. 2011-09-28 Michael Piefel <piefel@informatik.hu-berlin.de> Updated German translation. 2011-09-19 Benno Schulenberg <benno@vertaalt.nl> Updated Dutch translation. 2011-09-19 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translation. 2011-09-19 Petr Pisar <petr.pisar@atlas.cz> Updated Czech translation. 2011-09-19 Jorma Karvonen <karvonen.jorma@gmail.com> Updated Finnish translation. 2011-09-17 Primož Peterlin <primozz.peterlin@gmail.com> Updated Slovenian translation. 2011-09-17 Rafał Maszkowski <rzm@icm.edu.pl> Updated Polish translation. 2011-09-17 Yuri Chornoivan <yurchor@ukr.net> Updated Ukrainian translation. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision 9c19e102abfbf90cb5286c01441fec9f0b37b348 of the master branch, or more precisely, revision 52f7b80b7d853ef399e51f8189558b9976299bb8 of my own "mvg" branch, available from github. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> Imported gnulib modules we started using in the last two commits. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> Drop autodetection of less in mdiff as well. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> Drop autodetection of less. Use the environment variable LESS instead to pass options to less without affecting other pagers. Pass -R in addition to -X so less will simply pass control sequences to the terminal. By no longer automatically enabling less-mode (i.e. overstrike_for_less), we avoid having to split a byte stream into characters for multibyte locales. Less-mode is now deprecated, but can still be used if explicitely enabled on the command line. 2011-11-15 Martin von Gagern <Martin.vGagern@gmx.net> * Pass PATH on to env inside screen. Without this, screen on OS X 10.5 will set that variable to some default, and the version of wdiff that will be tested will be the one installed, not the one just built. * Don't mention screen in AT_TESTED, as doing so will cause the test suite to fail if screen isn't available. Thanks to Nelson H. F. Beebe for a verbose e-mail pointing out these issues. 2011-09-29 Martin von Gagern <Martin.vGagern@gmx.net> Don't run the public-submodule-commit rule as part of the check target. The resulting extra output of "make check" can be confusing for users, and doesn't benefit wdiff as we're using neither git nor submodules. 2011-09-29 Martin von Gagern <Martin.vGagern@gmx.net> Document testsuite fix 2011-09-29 Martin von Gagern <Martin.vGagern@gmx.net> Use tr instead of sed to remove carriage returns in testsuite. The sed binary on OS X 10.6 doesn't recognise the '\r' escape sequence, and matches all occurrences of the letter 'r' instead. POSIX doesnapparently doesn't require sed to understand '\r', but tr is required to know about it. Thanks to John Purnell for the report and detailed investigation. 2011-09-15 Martin von Gagern <Martin.vGagern@gmx.net> Beta release 1.0.2. 2011-09-15 Martin von Gagern <Martin.vGagern@gmx.net> Preparing a beta release 1.0.2 for translators. As there are virtually no changes except for the translation message id strings, there is little point in releasing this version tothe public before a significant number of translations are available as well. Thus it's beta. 2011-09-15 Martin von Gagern <Martin.vGagern@gmx.net> Use ngettext to allow the use of proper plural forms. Thanks to Petr Pisar for bringing this to my attention. 2011-09-15 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 1.0.1. 2011-09-11 Petr Pisar <petr.pisar@atlas.cz> Updated Czech translation. 2011-09-08 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translation. 2011-09-08 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translation. 2011-09-08 Martin von Gagern <Martin.vGagern@gmx.net> Document new translations in NEWS file. 2011-09-08 Jorma Karvonen <karvonen.jorma@gmail.com> Updated Finnish translation. 2011-09-08 Benno Schulenberg <benno@vertaalt.nl> Updated Dutch translation. 2011-09-08 Primož Peterlin <primozz.peterlin@gmail.com> Updated Slovenian translation. 2011-09-08 Yuri Chornoivan <yurchor@ukr.net> Updated Ukrainian translation. 2011-09-08 Rafał Maszkowski <rzm@icm.edu.pl> Updated Polish translation. 2011-09-05 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 1.0.0. 2011-09-05 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision 2c53fc42a02ccb53023521043c774769b057cbfb of the master branch, or more precisely, revision 161eb687864aaabb0aa54a8a8e3b7e446077e977 of my own "mvg" branch, available from github. 2011-09-04 Martin von Gagern <Martin.vGagern@gmx.net> Add test case to check handling of unified diff files as input. 2011-09-04 Martin von Gagern <Martin.vGagern@gmx.net> Improve pager test. The test now checks the full output, which helps in case wdiff prints any error message that it should not. The test now is more likely to skip if any application out of our control does not behave as expected. 2011-09-03 Martin von Gagern <Martin.vGagern@gmx.net> Rename system.h to wdiff.h. The header contains code common to many source files in the wdiff package, but not necessarily code related to the system (as in operating system) we're building for. This the new name should be better suited. 2011-09-03 Martin von Gagern <Martin.vGagern@gmx.net> Reindented pipes.c. 2011-09-03 Martin von Gagern <Martin.vGagern@gmx.net> Scan renamed pipes.c for translatable strings, instead of old file names. Accidentially reverted that change before I committed the pipes.c rewrite. 2011-09-02 Martin von Gagern <Martin.vGagern@gmx.net> Add test for usage of the pager. This requires screen to provide a tty which isatty will accept. If screen is not available, the test will be skipped. 2011-09-02 Martin von Gagern <Martin.vGagern@gmx.net> Unify pipe stream code. Now we have a single function to do the bulk of the pipe operation. The two frontends readpipe and writepipe are rather minimalistic. The main motivation behind this change is using dup2 from gnulib instead of the old and probably less portable code relying on the order in which file descriptors are allocated by the operating system. 2011-09-02 Martin von Gagern <Martin.vGagern@gmx.net> Perform uniform indentation using the indent tool. This commit is simply the result of a call to "make indent", which in turn ran "indent -gnu -ppi1 -ut" on all our source files. 2011-09-02 Martin von Gagern <Martin.vGagern@gmx.net> Prepare for uniform indentation using the indent tool. Adding a set of style flags to cfg.mk which matches current style as closely as possible, and is also reasonably close to GNU defaults. As mixing lines using tabs and those using only spaces will look particularly horrible in editors, we're forcing all code to use one style only. As the current code mostly use tabs, that's our choice for now, but we might change that to spaces only one day. A check for proper indentation is now included in the syntax checks as well, so if a developer executes those checks as part of the release process, bad indentation will cause that check to fail. Some other minor fixes and improvements to maint.mk were included in the process. The usage texts are not automatically indented, as for those lines, having output lines and code lines increases readability dramatically. Having all those fputs lines reindented would make the code much harder to read than even hard wrapped lines do. And most editors will allow truncating lines instead or wrapping them, making them even easier to read. 2011-09-02 Martin von Gagern <Martin.vGagern@gmx.net> Scan readpipe.c and writepipe.c for translatable error messages. Thanks to the gnulib maintainer-makefile syntax-check for catching this. 2011-09-02 Martin von Gagern <Martin.vGagern@gmx.net> Report errors due to a problem calling the diff program. - We use the gnulib error module for reporting, so explicitely adding it as a dependency. - Dropped old vararg syntax in readpipe.c and writepipe.c. The gnulib error function provides the new syntax only, so we depend on that being supported anyway. Dropping old cruft only adds readability here. - When diff returned with an error code other than 0 (no differences) or 1 (some differences), then we should not print remaining lines as unchanged, but exit with an error code ourselves. This requires moving of the complete_input_program call to a location before the common tail is printed. - Added a test group simulating a missing or erroring diff binary. 2011-08-31 Primož Peterlin <primozz.peterlin@gmail.com> Updated Slovenian translation. 2011-08-31 Jean-Christophe Helary <jean.christophe.helary@gmail.com> Updated French translation. 2011-02-08 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision 489cedffb410a94803cf10502b27b1facf026dfc of the master branch, or more precisely, revision 2a8557cf108b945966d0a8495218e2e86e983a0e of my own "mvg" branch, available from github. 2011-02-08 Martin von Gagern <Martin.vGagern@gmx.net> Don't modify main po files when updating gnulib. 2011-02-06 Yuri Chornoivan <yurchor@ukr.net> Added Ukrainian translation. 2011-02-06 Martin von Gagern <Martin.vGagern@gmx.net> Updated copyright line in texinfo documentation. This is mainly to keep the gnulib style checks happy, as there is no real modification to the documentation as such. 2011-01-15 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision 9779055889c2715b593930e39ead552759b5ddc2 of the master branch, or more precisely, revision 912de5d35a526ae0de84f7ae86358fffd1e9e66b of my own "mvg" branch, available from github. 2011-01-15 Martin von Gagern <Martin.vGagern@gmx.net> Omit gnulib po file changes only affecting line numbers. 2011-01-15 Primož Peterlin <primozz.peterlin@gmail.com> Updated Slovenian translation. 2011-01-14 Martin von Gagern <Martin.vGagern@gmx.net> Include merges in ChangeLog. This way, contributors to sidelines, the translations sideline in particular, will be credited properly in the ChangeLog as well, not just in the translation message files. One (somewhat ugly) consequence is that many messages appear twice, once for the sideline commit and once for the merge. Can't be helped just now. 2011-01-14 Keld Simonsen <keld@keldix.com> Updated Danish translation. 2010-12-20 Nicolas Provost <nprovost@quadriv.com> Updated French translation. 2010-12-08 Benno Schulenberg <benno@vertaalt.nl> Updated Dutch translation. 2010-12-05 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.5. 2010-12-05 Martin von Gagern <Martin.vGagern@gmx.net> Include wdiff.h2m in distribution tarball. 2010-12-05 Martin von Gagern <Martin.vGagern@gmx.net> Add call to bindtextdomain to wdiff2. Thanks to gnulib for catching this. 2010-12-05 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision e8eabe5a3d44bcd5ca87fba668d52203192b1645 of the master branch, or more precisely, revision 2eabdc8c392a6cd5abfc4e2e35fff798a5158248 of my own "mvg" branch, available from github. 2010-12-05 Martin von Gagern <Martin.vGagern@gmx.net> Use $(PATH_SEPARATOR) in makefile for added compatibility. This was suggested by the gnulib syntax check. 2010-12-04 Martin von Gagern <Martin.vGagern@gmx.net> Deprecate --no-init-term, make --terminal a synonym to it. Terminal initialization is only required when performing cursor movement, which wdiff doesn't. Therefore there should be no need to initialize the terminal. Furthermore, doing initialization can cause the screen to be restored to its pre-initialization state upon deinitialization, thereby clearing all wdiff output. As a consequence, we never do terminal initialization. This is what the old --no-init-term option did. Nevertheless we keep the shorter and more intuitive --terminal (-t) as the documented and preferred option, deprecating --no-init-term. We still accept the option, but don't document it in the online help, and use a dedicated section on compatibility in the man page. 2010-12-04 Martin von Gagern <Martin.vGagern@gmx.net> Improve help2man generation of man pages. * Avoid passing a path in argv[0] to the invoked process. * Ensure binary not only exists, but is more recent than source file. * Put long things like the name section into a separate help2man file. 2010-11-06 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.4. 2010-11-05 Martin von Gagern <Martin.vGagern@gmx.net> Updated NEWS 2010-11-05 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision e9101693adb3c251ee277242ef4af7aa570193b6 of the master branch, or more precisely, revision 53eef0ec613ddadc83449fe9cc1275e787e4ac1c of my own "mvg" branch, available from github. 2010-11-05 Jordi Mallach <jordi@sindominio.net> Updated Catalan translations 2010-06-10 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.3 again, this time with updated NEWS file. 2010-06-10 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.3. 2010-06-10 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision 47e899ad11a04647942b39dd501bfc2381e9b2f0 of the master branch, or more precisely, revision 6cd4f0c488faed6acf44bfb07184cfd9ae4f1ba1 of my own "mvg" branch, available from github. 2010-06-09 Marco Colombo <m.colombo@ed.ac.uk> Updated Italian translations 2010-06-09 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translations 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.2. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Pass sc_prohibit_always-defined_macros, introduce EXIT_ERROR. The old use of EXIT_FAILURE with a nonstandard value of 2 was confusing. It's cleaner to pick a new name when using a new value. So I replaced most occurrences of EXIT_FAILURE with EXIT_ERROR (=2), in distinction to EXIT_DIFFERENCE (=1). sc_prohibit_always-defined_macros complains about the environ definition in a comment in build-aux/warn-on-use.h which obviously doesn't make a lot of sense. We simply ignore build-aux altogether for this kind of check. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Set gnulib_dir so sc_prohibit_always_true_header_tests works. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Pass sc_prohibit_empty_lines_at_EOF syntax check. Except ABOUT-NLS from that check, as it is generated by gettext and therefore not under our control. Drop empty line from end of Makefile.am. It was there because previous gettextize invocations used to append stuff to that file, and we want such additions separated. But recent gettext behaves well, so let's be clean here. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Add ./ or build-aux/ to several files given as raw file names before. Newly ignore build-aux/compile and lib/uniwidth/.dirstamp which occur now. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Replace strrchr with mbsrchr. This prevents the gnulib syntax check sc_prohibit_strings_without_use from complaining about the strings.h inclusion. Any platform where the old code used to build but the new one doesn't will be considered a bug in gnulib. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Import gnulib module mbsrchr. We'll use it to replace a strrchr invocation that the gnulib syntax check sc_prohibit_strings_without_use complains about. 2010-04-09 Benno Schulenberg <benno@vertaalt.nl> Updated Dutch translation. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Add files generated by autopoint for gnulib. The autopoint from gettext 0.18 seems to create some more files, or more precisely, the same files in additional directories, i.e. lib/po/ as well as po/ itself. Add them, as we have all gettext infrastructure under revision control. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Upgrade to gettext-0.18. 2010-05-25 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision daeb0e53ab0726d41bbda09ff5d70d67ddcc8f0d of the master branch, or more precisely, revision f614b2a3415a22f33a46b3fa3b0cbdb9575624f4 of my own "mvg" branch, available from github. 2010-04-14 Martin von Gagern <Martin.vGagern@gmx.net> Fix shell test syntax in configure script. 2010-04-09 Antonio Diaz Diaz <ant_diaz@teleline.es> Typo in comment. 2010-04-09 Martin von Gagern <Martin.vGagern@gmx.net> Ignore files generated by testsuite. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.1. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision e01b458f40440e64ce6f59beb0b446219bb6302d of the master branch, or more precisely, revision 56a274bbc6b1c1efe8f1fca30360feb6ea5f696c of my own "mvg" branch, available from github. 2010-03-29 Michael Piefel <piefel@informatik.hu-berlin.de> Updated German translation. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Imported gnulib module strstr-simple. This ensures that a strstr implementation is available, without bothering about its efficiency. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Resolve symlinks for PAGER when detecting less. E.g. on Debian, people might have /usr/bin/pager as their configured pager, which is a symlink to /etc/alternatives/pager which in turn might be a symlink to /usr/bin/less. So resolving symlinks increases chances we detect less. Loosely based on a Debian patch by Charles C. Fu, currently available from: http://patch-tracker.debian.org/patch/series/view/wdiff/0.5-21/04 and mentioning http://bugs.debian.org/36618. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Imported gnulib module canonicalize-lgpl for realpath implementation. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Introduce --with-default-pager=PAGER configure switch. This might benefit distros like e.g. debian, which can configure --with-default-pager=/usr/bin/pager in order to get a sane system-wide default for users without PAGER environment variable. Of course, specifying --with-default-pager=/usr/bin/less or similar would be a sensible thing even for many systems without configurable system-wide default pager. 2010-04-01 Martin von Gagern <Martin.vGagern@gmx.net> Drop PARAMS macro in mdiff as well. 2010-03-31 Martin von Gagern <Martin.vGagern@gmx.net> Fix missing newline in info dir entry list. 2010-03-30 Martin von Gagern <Martin.vGagern@gmx.net> Updated NEWS file to include 0.6.0 release. Yes, I know the release has been made, and the NEWS have been forgotten. Still it would be good for later releases to include this information. 2010-03-30 Martin von Gagern <Martin.vGagern@gmx.net> Drop strstr declaration. Any sane system should supply a strstr implementation sane enough for our application: locating "less" in the basename of the PAGER program. We could use the gnulib strstr module here, but that seems to be more concerned about efficiency, and probably is overkill here. Taken from debian patch, author UNKNOWN, see: http://patch-tracker.debian.org/patch/series/view/wdiff/0.5-21/03 http://bugs.debian.org/29711 http://bugs.debian.org/30174 2010-03-30 Martin von Gagern <Martin.vGagern@gmx.net> Drop PARAMS macro. Always include parameters in function prototypes. 2010-03-29 Martin von Gagern <Martin.vGagern@gmx.net> Releasing 0.6.0. 2010-03-29 Martin von Gagern <Martin.vGagern@gmx.net> Updated German translation. I checked this translation myself, and offered the resulting file to the German translations team for upload to translation project. That upload hasn't happened yet, but I expect it will eventually, and I don't want to delay the release for this. 2010-02-16 Santiago Vila Doncel <sanvila@unex.es> Updated Spanish translation 2010-02-14 Jan Djärv <jan.h.d@swipnet.se> Dropped periods in Swedish error messages 2010-02-13 Jan Djärv <jan.h.d@swipnet.se> Updated Swedish translations 2010-02-11 Clytie Siddall <clytie@riverland.net.au> Updated Vietnamese translation 2010-02-11 Rafał Maszkowski <rzm@icm.edu.pl> Updated Polish translation 2010-02-11 Erwin Poeze <erwin.poeze@yahoo.com> Updated Dutch translation 2010-02-11 Jorma Karvonen <karvonen.jorma@gmail.com> Updated Finnish translation 2010-03-29 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. Re-imported gnulib modules based on the current revision e936a81c04962903122ea0d8b6af63c5fce4beaf of the master branch, or more precisely, revision fa649b55747429c1fa633047770dbd71a14d6f9a of my own "mvg" branch, available from github. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Correct Compatibility documentation. wdiff uses whatever diff it finds, not necessarily GNU diff. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Updated titlepage. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Added comment lines for chapters and sections. This makes browsing the texinfo source a bit easier, even without the use fancy outline editor features. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Various small documentation improvements. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Colored output example. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Moved examples from mdiff to wdiff. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Provide phony "manual" target to generate online manual using gendocs.sh. 2010-03-11 Martin von Gagern <Martin.vGagern@gmx.net> Import gendocs module from gnulib. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> configure is a file. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Move unify after mdiff. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Dedicate node to experimental history. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Invocation of wdiff and wdiff2. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Let makeinfo take care of pointer creation. Note (texinfo)makeinfo Pointer Creation:: about how this works. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Use @command, @option, @env instead of @code and @samp where appropriate. Package names like "diffutils" were stripped of any special formatting, but padded with the word "GNU" instead. "@code{termcap}" has been left as it is. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Ignore generated HTML documentation. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> More distinction for experimental. Added a few more case distinctions, and a dedicated node "Experimental". 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Drop sections for experimental tools in non-experimental texinfo runs. This only introduces guards and fixes some node pointers. It doesn't adjust content yet. Some paragraphs will need different wording under different circumstances. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Introduce convenience targets to toggle experimental mode. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Ignore generated files from tex invocation. These files are created when the pdf and ps targets are executed in the doc directory. As they are generated from source, we should ignore them. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> Prepare autotools for conditional texinfo documentation of experimental parts. Introduce a new file, flags.texi, managed by autoconf. It clears or sets a single flag, EXPERIMENTAL, which can then be used to control conditional content in the texinfo documentation. This should make it easier to maintain documentation for both experimental and non-experimental builds, without omitting documentation or confusing users by providing documentation for uninstalled tools. Doing even more case distinctions for the individual apps seems overkill, though, so we won't go that far. 2010-03-10 Martin von Gagern <Martin.vGagern@gmx.net> First reference to wdiff2 2010-03-09 Martin von Gagern <Martin.vGagern@gmx.net> Move wdiff before mdiff in texinfo documentation. As wdiff is the core product and mdiff experimental, this seems to be the proper order. 2010-03-09 Martin von Gagern <Martin.vGagern@gmx.net> Set info document encoding to UTF-8. This allows us to use Unicode characters in the info document, like the name of François. 2010-02-27 Martin von Gagern <Martin.vGagern@gmx.net> Drop redundant localedir definition. Recent automake already defines localedir, so there is no need for us to do the same again. 2010-02-27 Martin von Gagern <Martin.vGagern@gmx.net> Reintroduce termcap configuration. Search the following libs for a tputs function: termcap termlib ncursesw and ncurses. The first library to provide the tputs function will be linked in, and termcap support enabled. There is a --with-termcap configure option to override this behaviour, e.g. using --without-termcap or --with-termcap=foo to select libfoo instead of an autodetected library. The include statements have been adjusted to include term.h as well, as the ncurses man page for tputs recommends. Configure doesn't check if the headers actually declare tputs; we simply assume the compiler will complain if things don't work out as expected. 2010-02-27 Martin von Gagern <Martin.vGagern@gmx.net> Reindent preprocessor directives for mdiff as well. 2010-02-27 Martin von Gagern <Martin.vGagern@gmx.net> Reindent preprocessor directives. This way the #endif properly line up with the corresponding #if and #else. Now you can see more easily that tgetstr() gets declared if HAVE_TPUTS and not HAVE_TERMCAP_H. 2010-02-27 Santiago Vila <sanvila@debian.org> Typo in README 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> Disable fuzzy translations again. Had enabled fuzzy translations for the 0.5.95 pre-release only. The intention was to give translators a better idea of what their translations will look like, and other users a better idea of what translations are there in theory. Shouldn't use fuzzy translations in a final release, though. 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> wdiff 0.5.95 pre-release - translation improvements, many translations now fuzzy instead of missing - enabled use of fuzzy translations for this specific pre-release - introduced --enable-experimental configure switch 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> Introduce --enable-experimental configure switch. This switch controls installation of mdiff, unify and wdiff2. That way, an unconfigured installation will only install wdiff, avoiding flooding the maintainers with bug reports about applications they themselves (yes, this includes me) don't really understand (yet). On the other hand, the code does get released to a somewhat wider audience if it is included in the next wdiff release, so giving interested parties a way to toy with these apps might be a good thing and help their development. * configure.ac: generate substitutions from senable switch * man/Makefile.am, src/Makefile.am: use substitutions to decide what to install * man/Makefile.am, src/Makefile.am: auto-build binaries for help2man so that "make dist" without preceding "make" will succeed * README: Mention new flag, cleaned up some obsoleted information 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> Added some copyright notices 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> Let "make dist" rewrap message files. It seems that the message merging process tries to avoid long lines in the po file sources. Shouldn't change anything for the logical strings. Committing the changes anyway so we won't have to revert or ignore po files all the time. 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> po-file handling perl scripts: copyright, documentation, added to dist. Added a copyright comment as well as some pod documentation to the print-po.pl script and the msgitm.pm library it uses. Adjusted Makefile.am to include these two scripts, as they might be useful for translators, and as translators from TP usually work on released tarballs not repository checkouts. 2010-02-02 Martin von Gagern <Martin.vGagern@gmx.net> Better handling of escape sequences. Now escape sequences are evaluated by perl. This handles \\[\\nt"] at the moment, but can easily be extended to any other escape sequence that can be matched by the regular expression. Not much point in expanding stuff like \a or \r, though. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Change wdiff-bugs@iro.umontreal.ca to wdiff-bugs@gnu.org 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Wrapped another few overlong lines. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Adjust proper alignment of usage help for all commands. To faciliate this, I've added a perl script which simply prints all msgstr from a po file, in the order in which they are referenced in the source files. That gives all usage strings one after the other. I also implemented some primitive detection of overlong lines, and wrapped some translations to fit common terminal widths. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Adjust case of auto-pager short option. It's -A in mdiff and -a in wdiff and wdiff2. The heuristics that migrated previous translations in some cases used the long option alone to identify a translation, causing this kind of issue. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Align wdiff usage text. Some changes to indentation to ensure that "wdiff --help" looks sane in most languages. This only aligns translated strings, untranslated English messages might have a different alignment and therefore break the format. Other tools besides wdiff might still have unaligned help. In some cases the situation might even have deteriorated due to alignment of shared strings to now fit wdiff alone. Aligning them all seems like too much work just now, as everything besides wdiff is kind of experimental in any case. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Manually adjust translations to pass gmsgfmt checks. As entries are still fuzzy, gmsgfmt won't deal with them by default. But removing all gmo files and running 'GMSGFMT="gmsgfmt -f" update-gmo' listed me one file with problems after the other, until at last I had all of them adjusted. As I don't speak most of the languages I edited, translators should still have a final look at everything marked fuzzy. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> More elaborate automatic translation adjustment. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Try to automatically adjust translations for split usage help. 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Merged translations via make dist 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Ignore gnulib-related generated files 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Have configure create lib/po/Makefile 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Avoid syntax check complaints 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Drop gnulib from main package po files 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Have gnulib translations in their own dir, lib/po 2010-02-01 Martin von Gagern <Martin.vGagern@gmx.net> Updated from translation project. 2010-01-27 Jim Meyering <jim@meyering.net> maint: remove a signle trailing blank * Makefile.am (EXTRA_DIST): Remove trailing blank, so that "make syntax-check" passes once again. 2010-01-27 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib 2010-01-27 Martin von Gagern <Martin.vGagern@gmx.net> New tool to help updating gnulib 2010-01-27 Martin von Gagern <Martin.vGagern@gmx.net> Fix length restriction on temporary file name. Older code used a fixed char array of length L_tmpnam for temporary file names and their templates. This is WAY to short; on my GNU Linux system L_tmpnam was 20. Instead of raising that limit to some other arbitrary value, I decided to dynamically allocate memory for the temporary filename instead. Fixes a bug reported by Karl Berry: http://lists.gnu.org/archive/html/wdiff-bugs/2010-01/msg00001.html 2010-01-25 Martin von Gagern <Martin.vGagern@gmx.net> Generate ChangeLog from bzr commit messages. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> wdiff 0.5.94 pre-release - many small changes to translatable messages - wdiff: buffer non-seekable input - wdiff: accept unified diff as input 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Ignore generated lib/configmake.h 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Converted NEWS to outline format for Emacs 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Unify wording of --help and --version option descriptions. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Adjust copyright lines. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Style improvements regarding memory management. Now we no longer cast allocated memory explicitely, as void* will cast to anything automatically. Neither do we check that pointers are non-NULL before freeing them, as free(NULL) is defined to be a no-op. Corresponding syntax checks have been enabled. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Moved VC_LIST_EXCEPT exceptions from .x-* files to cfg.mk. This is much cleaner, as it avoids having an extra revision-controlled file for every rule with exceptions. The old exception files are still supported (and suitable if you happen to have long lists of such rules). Therefore the change is backwards-compatible and thus suitable for inclusion into gnulib as well. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Improved style of config.h inclusion. This drops guards around the config.h include statements. It also enables the corresponding syntax checks and configures system.h as an alternative to config.h, which is OK as system.h includes config.h at its very top. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Update list of gnulib-generated files. Seems our list of files generated by gnulib at configure-time and ignored by bzr was out of date. Now I've got a tool to maintain it. Also added a few missing files, which used to be generated in the past but seem to be simply imported as-is now. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Clean up include blocks. Simply include unistd.h and sys/stat.h and let gnulib take care of the rest. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Improve style of error invocations. Now all error messages are lower-case and without a period at the end. Furthermore, EXIT_FAILURE is used instead of the magic constant 1. Corresponding gnulib syntax checks have been enabled. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Moved auxiliary build files to build-aux directory. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Avoid self-reference of DEFS make variable. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Update gnulib. This update includes 4a24fcd6cf5620964e71361c57c2b273225dc47a: "Avoid a link error due to the __printf__ symbol." 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Improvements and bug fixes to maint.mk. I've sent these fixes to bug-gnulib@gnu.org as well, and I'd expect them to end up in gnulib one day. Including them into wdiff might help transfer ownership of my changes to the FSF without additional paperwork. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Enable gnulib maintainer-makefile. Also configured some things so that syntax checks won't fail. The list of skipped syntax checks in cfg.mk is actually quite long and should be reduced in the near future. Some other syntax checks I've heeded already, which explains modifications to some other source files. As I assume noone will apply an ancient patch to autoconf anymore in any case, I'm dropping that (syntactically offensive) autoconf patch. Anything modern autoconf still can't handle should be dealt with in autoconf itself. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Ignore release tarballs. 2010-01-21 Martin von Gagern <Martin.vGagern@gmx.net> Upgrade to gettext-0.17. As gnulib-tool has to be run after gettextize/autopoint, because it overwrites some files from gettext, we have to have the gettext infrastructure in repository as long as we have gnulib there. Probably best this way, because gnulib officially only supports latest gettext. Activated the gettext gnulib module as well. This is in order to avoid problems with gnulib overwriting m4 files that gettext depends on with a version that unmodified gettext no longer can cope with. In that situation, I'd now expect gnulib to provide adjusted gettext files, resolving any such issues. 2010-01-20 Martin von Gagern <Martin.vGagern@gmx.net> Reindented wdiff.c. Changes suggested by GNU indent, but reviewed and adjusted manually. 2010-01-19 Martin von Gagern <Martin.vGagern@gmx.net> Removed some more auto-generated files. All these files are automatically regenerated at one point or another. Little point in keeping them all in the repository, as they aren't to be edited manually in any case. 2010-01-19 Martin von Gagern <Martin.vGagern@gmx.net> Have automake add missing files. 2010-01-19 Martin von Gagern <Martin.vGagern@gmx.net> Change GPL version to 3 or later. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Imported gnulib modules locale and sys_wait. As we added those headers to several files recently, it seems prudent to have gnulib ensure they exist. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Ignoring a few more gnulib-generated files. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Updated gnulib. This is the result of a simple gnulib-tool --import. Haven't looked too closely, but I simply expect it to work. The gnulib git tree was used as of revision 3b1d015225dd896c76cac5318db7982944aea238 (2010-01-17). 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Drop several generated files, especially build files. Instead I've added a script, autogen.sh, that generates all necessary build files using the autotools installed on the client's system. Calling that from a fresh working tree should get your working tree into something on which the usual compile and make build process works as expected. I expect that the release tarballs will contain those files automatically, so this change only affects people building from a repository snapshot. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Fix a bunch of errors reported by gcc -Wall. There were some missing header inclusions. For now I've included the headers, but if someone reports portability issues, we might have to check for them in configure and maybe provide fallbacks if they are unavailable. There were also some variables which gcc reports might get used uninitialized. I initialized them to 0 or NULL, but I'm far from certain that this is what was originally intended. Might as well be that they are an indication of more serious errors in those functions. Most other changes are cosmetic things to prevent warnings, like added braces and the likes. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Adjust a few printf conversions to avoid compiler warnings. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Added myself and Denver Gingerich to AUTHORS. 2010-01-18 Martin von Gagern <Martin.vGagern@gmx.net> Split Usage messages for easier translation. Now there is a separate string for every line of Usage message output. That way, new options might be added in the future without invalidating the messages for existing options. Furthermore it's now easier to share common options between different executables. The options themselves haven't been split, as arguments to some options require translations, and as having them translated separately makes it really difficult to align all options in a pleasing way, especially with multi-byte encodings or double-width logograms. So translators have both the freedom and the responsibiluty to manage column alignment for their language. This change also turns a lot of "#if 0 ... #endif" into "/*** ... ***/" in order to avoid unneccessary translations for these options. This is in response to an email by Benno Schulenberg: http://lists.gnu.org/archive/html/wdiff-bugs/2008-06/msg00003.html 2010-01-06 Martin von Gagern <Martin.vGagern@gmx.net> Reindent. 2010-01-06 Martin von Gagern <Martin.vGagern@gmx.net> Allow unified diff as input. This change introduces a new flag, --diff-input (or -d), which will allow a single unified diff as input. Two distinct files will be created from this and passed on to the normal wdiff comparison. See also http://lists.gnu.org/archive/html/wdiff-bugs/2009-04/msg00000.html 2010-01-06 Martin von Gagern <Martin.vGagern@gmx.net> Ignore auto-generated files. This list matches all files generated on my system during configure, make and make distcheck, with the obvious exception of the distribution tarball. Many other files are modified in the process, so this list certainly doesn't match all auto-generated files. 2009-12-15 Martin von Gagern <Martin.vGagern@gmx.net> Handle non-seekable input. In particular this allows the use of shell process substitutions as input. 2008-11-16 denverg - fix "make check" so that it uses the newly-compiled wdiff binary instead of searching the PATH for it - this issue was first mentioned in the 0.5.93 release notes - issue also noted by Nelson H. F. Beebe: http://lists.gnu.org/archive/html/wdiff-bugs/2008-06/msg00005.html - the fix was created with the help of Ralf Wildenhues' suggestion to use AUTOTEST_PATH on the Autoconf list: http://lists.gnu.org/archive/html/autoconf/2008-06/msg00075.html - the appropriate AUTOTEST_PATH value was determined using the description of AUTOTEST_PATH in the Autotest documentation: http://www.gnu.org/software/autoconf/manual/html_node/testsuite-Invocation.html 2008-11-16 denverg - fix libintl linking problems on Cygwin and Mac OS X - first reported by Jari Aalto using Cygwin: http://lists.gnu.org/archive/html/wdiff-bugs/2007-08/msg00007.html - also reported by Christopher Vollick using Mac OS 10.4.11 with the following error output: /usr/bin/ld: Undefined symbols: _libintl_bindtextdomain _libintl_gettext _libintl_textdomain - this fix has been confirmed to work on Mac OS 10.4.11 2008-11-16 denverg - update to gnulib 20080701, automake 1.10.1, and autoconf 2.61; used the following commands: $ [gnulib-tool command from lib/Makefile.am header] $ aclocal -I m4 $ autoreconf $ autoconf $ automake - remove #include for getline.h in mdiff.c; this is no longer needed because getline is available from stdio.h 2008-06-20 denverg wdiff 0.5.93 - this version contains the following fixes: - split wdiff and wdiff2 help strings to facilitate translation - update gnulib modules to gnulib 2007-05-28 - add getopt and regex gnulib modules for compiling without glibc - fix compiler warnings with GCC 3.4.2 on Solaris 8 - add manpages to the distribution so users don't need help2man - for a complete description of the fixes, see the commit logs between this revision and the RELEASE_0_5_92 tag 2008-06-20 denverg - update po files based on previous commit (localize "'\n" and add note for translators that it's part of the previous string) 2008-06-20 denverg - localize "'\n", which is the end of "Launching `mdiff [args]", as recommended by Benno Schulenberg - add note for translators that the two strings are linked - chose not to combine into one string because that would have required some extra memory and possibly a lot (if there were lots of arguments); it's much easier to just send it to the output stream and forget about it 2008-06-20 denverg - update po files for previous commit (splitting wdiff and wdiff2 help strings) 2008-06-20 denverg - split help string for wdiff and wdiff2 into multiple parts as suggested by Benno Schulenberg - this will cause the common parts of the help strings to be combined for translators - the help string has been changed recently (to change -V to -v) so now is a good time to split the string - the next commit will update the po files 2008-06-20 denverg - update po files with new line numbers for wdiff.c and wdiff2.c, changed by previous commit to fix compiler warnings - add manpages so that users can check out from CVS and not need help2man; originally reported by Christopher Vollick 2008-06-20 denverg - fix warnings when compiling with GCC 3.4.2 on Solaris 8: warning: passing arg 2 of `rpl_getopt_long' discards qualifiers from pointer target type - using fix by Eric Blake for m4's main.c described at: http://lists.gnu.org/archive/html/m4-patches/2006-06/msg00024.html 2008-06-20 denverg - include manpages in the distribution package - before this fix, manpages were being generated at compile time, which caused systems without help2man to fail during the make step - reported by Christopher Vollick 2008-06-20 denverg - update autotools-generated scripts after adding the getopt and regex modules from gnulib in the last commit 2008-06-20 denverg - add getopt and regex modules from gnulib; these are required on systems that do not have the glibc extensions - reported by Christopher Vollick after he received compile errors when trying to build on Solaris 8 - autotools-generated scripts will be updated in the next commit 2008-06-20 denverg - update scripts after gnulib 2007-05-28 update ("autoreconf; autoconf; automake") 2008-06-20 denverg - update to gnulib 2007-05-28 ("gnulib-tool --import") - autotools update ("autoreconf; autoconf; automake") will be in next commit 2008-06-19 denverg wdiff 0.5.92 - bump version; along with the expected effects, it also fills in some empty fields in tests/testsuite and tests/package.m4 - see commit logs since the RELEASE_0_5_91 tag for a list of the fixes in 0.5.92 2008-06-19 denverg - keep all files resulting from "./configure; make dist; make distclean" and nothing more - this makes it easier for packagers and other keeners to keep up with the latest build on their own machine - this has the side-effect of updating all the po files and wdiff.pot as well as doc/version.texi - reported by Santiago Vila: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-06/msg00012.html 2008-06-19 denverg - use mkstemp instead of tmpnam to eliminate race condition - added create_template_filename to find an appropriate temporary directory - reported by Karl Berry and Debian team: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-07/msg00005.html - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425254 2008-06-19 denverg - add mdiff binary to "make install" as reported by Benno Schulenberg at: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-10/msg00000.html - error report: Upon installation, wdiff forgets to install the mdiff program, although it does install the man page and Info document for it. 2008-06-19 denverg - fix some errors in the documentation; reported by Benno Schulenberg at: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-10/msg00000.html - the error report: In wdiff.texi the --statistics option for mdiff is described twice. Also --help and --version occur twice; their second occurrences are straight copies from the wdiff section, and mistakenly mention -h and -V as synonyms -- these work for wdiff, but not for mdiff. The Info doc further mistakenly mentions -c as synonym for --ignore-case (should be -i, also for wdiff), and -a as synonym for --autopager (should be -A, but only for mdiff). It looks like there may be several more errors like this. (note: the --statistics option was completely removed from the mdiff documentation because mdiff does not have such an option) 2008-06-18 denverg - import new and updated translations from the Translation Project 2008-06-18 denverg - update wdiff.texi to new conventions and regenerate wdiff.info; patch by Karl Berry: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-08/msg00001.html - description of change: Some simple diffs for the wdiff manual. 1) use the standard @dircategory/@direntry cmds instead of the old (very old) INFO-DIR-ENTRY stuff. (With the category names and alignments set to match other packages.) 2) use @copying instead of @ifinfo. 3) move @contents to after the title page where it belongs. 2008-06-18 denverg - set textdomain; patch by Benno Schulenberg: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-09/msg00006.html - "The output messages of 'wdiff' don't actually get translated, as wdiff forgets to set its textdomain." 2008-06-18 denverg - update wdiff.info to reflect new version of makeinfo (was using 3.12i; now using 4.8) and change in --version short option from -V to -v (see last commit) 2008-06-18 denverg - change the --version short option -V to -v for consistency with GNU diff and the wdiff 0.5 manpage; reported at: - http://lists.gnu.org/archive/html/wdiff-bugs/2007-09/msg00002.html - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=438461 - wdiff.info still needs updating; this will be done in the next commit because it contains a lot of unrelated changes due to a new version of makeinfo 2008-06-18 denverg - change return type of main from void to int in wdiff and wdiff2; fixes compiler warning 2008-06-18 denverg - remove clean-local's dependence on the non-existent clean-local-legacy target - this dependence was introduced when copying in the test suite rules from libtool, which has a set of rules for legacy tests (including clean-local-legacy); wdiff does not have any legacy tests 2008-06-18 denverg - merging translations with template file (msgmerge --update) - with the updates in CVS, the make step will be faster because the msgmerge --update is not required at build time 2007-11-19 denverg - back out gnulib updates; these cause autoreconf to fail because the gnulib updates were incomplete (did not add/update all files) - not fixing gnulib update because the gnulib files will eventually be migrated out of CVS 2007-11-18 denverg - update gnulib files to those found in gnulib 2007-05-28 2007-07-11 denverg wdiff 0.5.91 (continued) - adding files that were accidentally left out of the last commit 2007-07-11 denverg wdiff 0.5.91 - replaced old autotools scripts with new scripts created from scratch to work with more recent versions of the autotools - replaced files in the lib directory with their Gnulib counterparts - moved readpipe.c and writepipe.c to src because they Gnulib does not appear to provide equivalent functionality - modified the test scripts to work with a more recent autom4te version - some syntax was not recognized by the newer autom4te - moved i18n directory to po and updated i18n files to reflect changes in gettext - added man directory and necessary Makefiles to create man pages 2007-06-22 denverg wdiff 0.5.90 - updated mailing list address for all files except i18n (these will be fixed later) - starting to use recommended pretest version number convention for GNU packages (x.y.90) 2007-06-20 denverg wdiff 0.5.4-pre3 - correct build problems by resetting timestamps for several files within the configure script - this is done so that people checking out from CVS will have the correct timestamps because CVS does not keep modified dates - ideally we wouldn't need this, but it looks like autoconf, automake, or some other utility requires the timestamps to be a certain way or it complains loudly - revert i18n/sv.mo to 0.5g version (not sure why it had changed) 2007-06-19 denverg wdiff 0.5.4-pre2 - replaced Makefile.in, aclocal.m4, configure, and configure.in with versions from 0.5g - for some reason, these had been replaced by freshly-generated files, which seem to cause problems with the build 2007-06-19 denverg wdiff 0.5.4-pre1 - updating to wdiff 0.5g code from Francois Pinard - complete list of changes will be available in the final 0.5.4 commit - this version currently has some build issues, which will be described on the mailing list (wdiff-bugs@gnu.org) 2007-06-19 denverg - removing files deleted in 0.5.4 because there are problems committing when a file has been deleted but was updated since that point (CVS reports a conflict, which appears to be difficult to solve) 2007-06-17 denverg - change version from 0.5.1 to 0.5.3 to prevent ambiguity - 0.5.1 is referenced in the de, fr, no, and pl .po files in the i18n directory of wdiff 0.5g - 0.5.2 is referenced in the cs, es, nl, ru, and sv .po files in the i18n directory of wdiff 0.5g - 0.5.1 and 0.5.2 are referenced in the BACKLOG file of wdiff 0.5g - none of the above 0.5.1 or 0.5.2 are related to this version (now 0.5.3); they relate to a separate branch (0.5g) which will be merged into this tree later 2007-06-16 denverg - updated version strings (from 0.5 to 0.5.1) - updated ChangeLog and NEWS with changes between 0.5 and 0.5.1 2007-06-15 denverg wdiff 0.5.1 - changes from wdiff 0.5 - updated license notices to reflect new FSF address - added license notices to files that did not have them 2007-07-10 gettextize <bug-gnu-gettext@gnu.org> * Makefile.am (EXTRA_DIST): New variable. * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in. (AM_GNU_GETTEXT_VERSION): Bump to 0.16.1. 2007-06-19 Denver Gingerich (denver@ossguy.com) * Version 0.5.4. * ChangeLog: relevant entries moved from root ChangeLog to ChangeLog files in subdirectories (such as src, lib, etc.) * : TODO: add relevant entries here 2007-06-17 Denver Gingerich (denver@ossguy.com) * Version 0.5.3, changes are relative to Version 0.5 (see 1994-11-05). * acconfig.h, aclocal.m4, cbars.sh, c-boxes.el, checkit, configure, configure.in: Add license notices. * COPYING: Update to new revision of GPL (version 2, revision 3). * error.c, getopt1.c, getopt.c, getopt.h, Makefile.in, pathmax.h, readpipe.c, strstr.c, texinfo.tex, wdiff.c, writepipe.c, xmalloc.c: Update license notices to reflect new FSF address. 1999-07-05 François Pinard <pinard@iro.umontreal.ca> * configure.in: Do not call fp_PROG_ECHO, as AT_CONFIG does it. * Makefile.am, acconfig.h, configure.in: Prepare for fp_WITH_GETTEXT. 1998-12-07 François Pinard <pinard@iro.umontreal.ca> * configure.in (ALL_LINGUAS): Add Russian. 1998-11-18 François Pinard <pinard@iro.umontreal.ca> * configure.in: Version 0.5g. 1998-11-16 François Pinard <pinard@iro.umontreal.ca> * configure.in: Version 0.5e. * configure.in: Use AT_CONFIG. Substitute tests/atconfig rather than tests/preset. 1998-11-13 François Pinard <pinard@iro.umontreal.ca> * Makefile.am (SUBDIRS): Add m4. Use -I m4 on aclocal. * PATCHES-AC: New file, from elsewhere. * Makefile.am (EXTRA_DIST): Adjusted. * README-mdiff: New file. * Makefile.am (EXTRA_DIST): Adjusted. * configure.in: Substitute in m4/Makefile. Use jmFUNC_MALLOC and jm_FUNC_REALLOC. * acconfig.h: Describe malloc and realloc. * missing: New file, from elsewhere. * configure.in: Version 0.5d. 1997-02-12 François Pinard <pinard@iro.umontreal.ca> * configure.in: Derive src/cbars from src/cbars.in. * configure.in: Derive tests/preset from tests/preset.in. Check how to use echo with newlines suppressed. * acinclude.m4: Add definition for fp_PROG_ECHO. * configure.in: Cleanup tputs detection. Do not just consider we need -ltermlib on Xenix and -ltermcap everywhere else. Instead, check for LIB.h only if tputs if found in -lLIB, for LIB in termcap, termlib, curses and ncurses. * acconfig.h: Add documentation for HAVE_TPUTS. 1997-02-11 François Pinard <pinard@iro.umontreal.ca> * configure.in: Adjusted for Automake, and latest PO files. * Makefile.am: New files. * acinclude.m4: New file, assembled from Jim's collection. * acconfig.h: Adjusted for gettext. 1996-09-06 François Pinard <pinard@iro.umontreal.ca> * configure.in (ALL_LINGUAS): Add nl, pl. Replace cz by cs. 1995-06-22 François Pinard <pinard@iro.umontreal.ca> * configure.in: Use AC_TYPE_SIZE_T. 1995-03-26 François Pinard <pinard@iro.umontreal.ca> * configure.in: Define SCRIPTS separately from PROGRAMS. Use fp_PROG_INSTALL instead of AC_PROG_INSTALL. * Makefile.in: Adjusted accordingly. 1995-03-19 François Pinard <pinard@iro.umontreal.ca> * configure.in: Remove GLOCALE, add LINGUAS, use fp_WITH_CATALOGS. * Makefile.in: Modify accordingly. * acconfig.h: Add description for WITH_CATALOGS. 1995-02-24 François Pinard <pinard@iro.umontreal.ca> * configure.in: Put gdiff test in parentheses, because Bourne shell otherwise complains about an inexisting program. Reported by Kaveh R. Ghazi. 1995-02-21 François Pinard <pinard@iro.umontreal.ca> * configure.in, Makefile.in: Replace `date' by `echo timestamp'. Reported by Greg McGary and Jim Meyering. 1994-12-01 François Pinard <pinard@iro.umontreal.ca> * configure.in, Makefile.in, acconfig.h: Rename PRODUCT to PACKAGE. 1994-11-26 François Pinard <pinard@iro.umontreal.ca> * configure.in: Check for <libintl.h> and <locale.h>. 1994-11-11 François Pinard <pinard@iro.umontreal.ca> * configure.in: Check libraries before functions, else there is little chance that tputs will ever be found in -ltermcap. Reported by Andreas Schwab. 1994-11-05 François Pinard <pinard@iro.umontreal.ca> * Release 0.5. 1994-11-02 François Pinard <pinard@iro.umontreal.ca> * configure.in: Check for const only after having found possible ANSIfying compiler flags, this is of no use to check it before. 1994-11-01 François Pinard <pinard@iro.umontreal.ca> * Makefile.in: Clean up, following the one in shar utilities. I will not detail all the changes here. * configure.in: Likewise. * acconfig.h: New file. 1994-04-13 François Pinard <pinard@iro.umontreal.ca> * Makefile.in (Makefile, etc.): Adapt for Autoconf 1.8. 1994-03-22 François Pinard <pinard@iro.umontreal.ca> * configure.in: Use AC_PROGRAMS_PATH instead of AC_PROGRAMS_CHECK, while defining DIFF and PAGER. Add diff to the programs tested, so its full path is saved. Avoiding SGI gdiff, define DIFF to non-pathed diff, instead of empty. 1993-12-24 François Pinard <pinard@iro.umontreal.ca> * Makefile.in: General cleanup. Handle .stamp-h.in, mkinstalldirs, install.sh, FAQ and HINTS. * configure.in: Check for ranlib. * mkinstalldirs, install.sh: New, from elsewhere. * FAQ, HINTS: New files, for alleviating README a little. 1993-06-09 François Pinard <pinard@iro.umontreal.ca> * Makefile.in (dist): Replace "echo `pwd`" by a mere "pwd". Create a gzip file. 1993-02-27 François Pinard <pinard@iro.umontreal.ca> * configure.in: Use AC_HAVE_LIBRARY for -lmalloc, instead of explicit code. 1993-02-06 François Pinard <pinard@iro.umontreal.ca> * Makefile.in: In dist goal, ensure 777 mode for directories, so older tar's will restore file modes properly. 1993-01-07 François Pinard <pinard@iro.umontreal.ca> * Makefile.in: Replace -DHAVE_CONFIG_H back to $(DEFS), since Autoconf now handles this appropriately. 1993-01-01 François Pinard <pinard@iro.umontreal.ca> * Makefile.in: Using autoheader, derive config.h.in from configure.in. Distribute config.h.in. Use config.status for reconstructing config.h from config.h.in. Remove config.h in distclean. * configure.in: Create config.h from config.h.in. 1992-12-30 François Pinard <pinard@iro.umontreal.ca> * configure.in: Force xmalloc.o in whenever alloca.o is needed. Reported by Nelson H.F. Beebe. * configure.in: Use AC_VPRINTF, check for strerror(). 1992-12-23 François Pinard <pinard@iro.umontreal.ca> * Release 0.04. * Makefile.in: Some cleanup before the release. 1992-12-21 François Pinard <pinard@iro.umontreal.ca> * Makefile.in: Distribute the THANKS file. * Makefile.in: Do not distribute collate.el, which lacks the required Copyright assignment to the FSF. 1992-12-05 François Pinard <pinard@iro.umontreal.ca> * Makefile.in (realclean): Remove configure. * configure.in: Use AC_ISC_POSIX for defining -posix if necessary. Reported by Karl Berry. 1992-11-23 François Pinard <pinard@iro.umontreal.ca> * Makefile.in (dist): Get .fname from the current directory name, instead of from version.c. I need updating many files manually, when the version changes, version.c is just one of them. * cbars.sh: New. By default, cbars is not part of PROGS. * Makefile.in: Prepare, install, and distribute it. 1992-11-21 François Pinard <pinard@iro.umontreal.ca> * configure.in: Use AC_CONST. * configure.in: Avoid gdiff for X as found on SGI systems. The test presumes gdiff returns non-zero status if DISPLAY is defined to be empty. Reported by Jim Meyering. 1992-11-13 François Pinard <pinard@iro.umontreal.ca> * Makefile.in (dist): chmod a+r before making the tar file. * aclocal.m4: Update FP_STDC_CHECK, replacing by FP_PROTOTYPES. * configure.in: Adjust accordingly. 1992-08-23 François Pinard <pinard@iro.umontreal.ca> * configure.in: Split FP_STDC_CHECK out into aclocal.m4. * aclocal.m4: New. * Makefile.in: Distribute aclocal.m4. 1992-08-19 François Pinard <pinard@iro.umontreal.ca> * collatew.el: New, generalizes Emacs LISP `compage-windows'. * Makefile.in: Distribute collatew.el. Reported by James Ganong. * configure.in: To define DIFF, also try gnudiff and diffgnu, not only gdiff and diff. 1992-08-18 François Pinard <pinard@iro.umontreal.ca> * Release 0.03 to alt.sources and ftp.uu.net:/tmp. * configure.in: Add FP_STDC_CHECK, then use it. Add AC_PROG_LEX. * Makefile.in: Various corrections for being truly able to make in subdirectories. 1992-08-17 François Pinard <pinard@iro.umontreal.ca> * configure.in: Check for improper `const' support. * configure.in: Check for alloca. 1992-08-12 François Pinard <pinard@iro.umontreal.ca> * Release 0.01 to alt.sources and ftp.uu.net:/tmp. * configure.in: Try defining PAGER to less or more. Also use our strstr if necessary. * configure.in: Try defining DIFF to gdiff or diff. * Makefile.in: Transmit DIFF to wdiff.c, which handles it already. * configure.in: Use -ltermlib on LIBS for Xenix, -ltermcap otherwise; once this done, test for `tputs' availability. * COPYING.LIB: New. * Makefile.in: Distributing COPYING.LIB. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������