gummi-0.6.5/0000755000175000017500000000000012040524317007637 500000000000000gummi-0.6.5/README0000644000175000017500000000035312040524264010441 00000000000000====================================================== Gummi - LaTeX editor for GTK+ ====================================================== Latest news, releases and bug reports can be found on: http://gummi.midnightcoding.org gummi-0.6.5/NEWS0000644000175000017500000000000012040524264010245 00000000000000gummi-0.6.5/configure0000755000175000017500000067523412040524304011503 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for Gummi 0.6.5. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 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" 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 : # 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 export CONFIG_SHELL 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+"$@"} 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 $0: alexvandermey@gmail.com about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: 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_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; } # 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 &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='Gummi' PACKAGE_TARNAME='gummi' PACKAGE_VERSION='0.6.5' PACKAGE_STRING='Gummi 0.6.5' PACKAGE_BUGREPORT='alexvandermey@gmail.com' PACKAGE_URL='http://gummi.midnightcoding.org/' ac_unique_file="src/environment.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS GUI_CFLAGS GUI_LIBS EGREP GREP CPP gtkspell_LIBS gtkspell_CFLAGS poppler_LIBS poppler_CFLAGS gtksourceview_LIBS gtksourceview_CFLAGS GTK_LIBS GTK_CFLAGS gthread_LIBS gthread_CFLAGS GLIB_COMPILE_RESOURCES GLIB_MKENUMS GOBJECT_QUERY GLIB_GENMARSHAL GLIB_LIBS GLIB_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG USE_GTKSPELL DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE intltool__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE AM_DEFAULT_VERBOSITY INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS 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 GETTEXT_PACKAGE 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_dependency_tracking enable_nls enable_spellcheck enable_glibtest enable_gtktest ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR gthread_CFLAGS gthread_LIBS gtksourceview_CFLAGS gtksourceview_LIBS poppler_CFLAGS poppler_LIBS gtkspell_CFLAGS gtkspell_LIBS 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 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 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 Gummi 0.6.5 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/gummi] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Gummi 0.6.5:";; 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] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support --disable-spellcheck disable spellcheck support --disable-glibtest do not try to compile and run a test GLIB program --disable-gtktest do not try to compile and run a test GTK+ program Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path gthread_CFLAGS C compiler flags for gthread, overriding pkg-config gthread_LIBS linker flags for gthread, overriding pkg-config gtksourceview_CFLAGS C compiler flags for gtksourceview, overriding pkg-config gtksourceview_LIBS linker flags for gtksourceview, overriding pkg-config poppler_CFLAGS C compiler flags for poppler, overriding pkg-config poppler_LIBS linker flags for poppler, overriding pkg-config gtkspell_CFLAGS C compiler flags for gtkspell, overriding pkg-config gtkspell_LIBS linker flags for gtkspell, overriding pkg-config 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 . Gummi home page: . _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 Gummi configure 0.6.5 generated by GNU Autoconf 2.68 Copyright (C) 2010 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_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 || $as_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 declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #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_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_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 alexvandermey@gmail.com ## ## -------------------------------------- ##" ) | 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_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 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 Gummi $as_me 0.6.5, which was generated by GNU Autoconf 2.68. 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 # 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 am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$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. # 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi 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; } 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 --run true"; then am_missing_run="$MISSING --run " 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 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='gummi' VERSION='0.6.5' 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"} # 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 -' GETTEXT_PACKAGE=gummi cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF # ls po/*.po | sort | sed 's/po\///g;s/.po//g'| sed ':a;N;s/\n/ /g;ta' ALL_LINGUAS="ar ca cs da de el es fr hu it nl pl pt pt_BR ro ru sv zh_CN zh_TW" ac_config_headers="$ac_config_headers config.h" # Checks for programs. 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 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 #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" 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 8's {/usr,}/bin/sh. touch 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 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 { $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; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 $as_echo_n "checking for intltool >= ... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; 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_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$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 ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; 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_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$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 ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; 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_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$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 ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # 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. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$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 ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$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 # 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. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$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 ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$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 # 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. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$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 ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; 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_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$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 ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext 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 # Checks for libraries. # Check whether --enable-spellcheck was given. if test "${enable_spellcheck+set}" = set; then : enableval=$enable_spellcheck; spellcheck=$enableval else spellcheck="yes" fi if test "$spellcheck" = yes; then $as_echo "#define USE_GTKSPELL 1" >>confdefs.h fi # Check whether --enable-glibtest was given. if test "${enable_glibtest+set}" = set; then : enableval=$enable_glibtest; else enable_glibtest=yes fi pkg_config_args=glib-2.0 for module in . do case "$module" in gmodule) pkg_config_args="$pkg_config_args gmodule-2.0" ;; gmodule-no-export) pkg_config_args="$pkg_config_args gmodule-no-export-2.0" ;; gobject) pkg_config_args="$pkg_config_args gobject-2.0" ;; gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; gio*) pkg_config_args="$pkg_config_args $module-2.0" ;; esac done if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$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 ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$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 ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" 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 PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; 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; } PKG_CONFIG="" fi fi no_glib="" if test "x$PKG_CONFIG" = x ; then no_glib=yes PKG_CONFIG=no fi min_glib_version=2.20.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB - version >= $min_glib_version" >&5 $as_echo_n "checking for GLIB - version >= $min_glib_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" enable_glibtest=no fi if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then : else no_glib=yes fi fi if test x"$no_glib" = x ; then GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_glibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$GLIB_LIBS $LIBS" rm -f conf.glibtest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { unsigned int major, minor, micro; char *tmp_version; fclose (fopen ("conf.glibtest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_glib_version"); exit(1); } if ((glib_major_version != $glib_config_major_version) || (glib_minor_version != $glib_config_minor_version) || (glib_micro_version != $glib_config_micro_version)) { printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, glib_major_version, glib_minor_version, glib_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((glib_major_version != GLIB_MAJOR_VERSION) || (glib_minor_version != GLIB_MINOR_VERSION) || (glib_micro_version != GLIB_MICRO_VERSION)) { printf("*** GLIB header files (version %d.%d.%d) do not match\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version); } else { if ((glib_major_version > major) || ((glib_major_version == major) && (glib_minor_version > minor)) || ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n", glib_major_version, glib_minor_version, glib_micro_version); printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n", major, minor, micro); printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_glib=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 $as_echo "yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; } GUI_CFLAGS="$GUI_CFLAGS $GLIB_CFLAGS" GUI_LIBS="$GUI_LIBS $GLIB_LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://www.freedesktop.org/software/pkgconfig/" else if test -f conf.glibtest ; then : else echo "*** Could not run GLIB test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GLIB or finding the wrong" echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" GLIB_COMPILE_RESOURCES="" as_fn_error $? "You need Glib >= 2.20.0 to build $PACKAGE" "$LINENO" 5 fi rm -f conf.glibtest pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gthread" >&5 $as_echo_n "checking for gthread... " >&6; } if test -n "$gthread_CFLAGS"; then pkg_cv_gthread_CFLAGS="$gthread_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_gthread_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$gthread_LIBS"; then pkg_cv_gthread_LIBS="$gthread_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_gthread_LIBS=`$PKG_CONFIG --libs "gthread-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then gthread_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gthread-2.0" 2>&1` else gthread_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gthread-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$gthread_PKG_ERRORS" >&5 as_fn_error $? "You need ghread-2.0 to build $PACKAGE" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "You need ghread-2.0 to build $PACKAGE" "$LINENO" 5 else gthread_CFLAGS=$pkg_cv_gthread_CFLAGS gthread_LIBS=$pkg_cv_gthread_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi GUI_CFLAGS="$GUI_CFLAGS $gthread_CFLAGS" GUI_LIBS="$GUI_LIBS $gthread_LIBS" # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-2.0 for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; 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_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$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_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=2.20.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.gtktest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS" GUI_LIBS="$GUI_LIBS $GTK_LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" as_fn_error $? "You need Gtk+ >= 2.20.0 to build $PACKAGE" "$LINENO" 5 fi rm -f conf.gtktest pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtksourceview" >&5 $as_echo_n "checking for gtksourceview... " >&6; } if test -n "$gtksourceview_CFLAGS"; then pkg_cv_gtksourceview_CFLAGS="$gtksourceview_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtksourceview-2.0 >= 2.2.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtksourceview-2.0 >= 2.2.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_gtksourceview_CFLAGS=`$PKG_CONFIG --cflags "gtksourceview-2.0 >= 2.2.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$gtksourceview_LIBS"; then pkg_cv_gtksourceview_LIBS="$gtksourceview_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtksourceview-2.0 >= 2.2.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtksourceview-2.0 >= 2.2.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_gtksourceview_LIBS=`$PKG_CONFIG --libs "gtksourceview-2.0 >= 2.2.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then gtksourceview_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtksourceview-2.0 >= 2.2.1" 2>&1` else gtksourceview_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtksourceview-2.0 >= 2.2.1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$gtksourceview_PKG_ERRORS" >&5 as_fn_error $? "You need gtksourceview-2 >= 2.2.1 to build $PACKAGE" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "You need gtksourceview-2 >= 2.2.1 to build $PACKAGE" "$LINENO" 5 else gtksourceview_CFLAGS=$pkg_cv_gtksourceview_CFLAGS gtksourceview_LIBS=$pkg_cv_gtksourceview_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi GUI_CFLAGS="$GUI_CFLAGS $gtksourceview_CFLAGS" GUI_LIBS="$GUI_LIBS $gtksourceview_LIBS" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for poppler" >&5 $as_echo_n "checking for poppler... " >&6; } if test -n "$poppler_CFLAGS"; then pkg_cv_poppler_CFLAGS="$poppler_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"poppler-glib\""; } >&5 ($PKG_CONFIG --exists --print-errors "poppler-glib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_poppler_CFLAGS=`$PKG_CONFIG --cflags "poppler-glib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$poppler_LIBS"; then pkg_cv_poppler_LIBS="$poppler_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"poppler-glib\""; } >&5 ($PKG_CONFIG --exists --print-errors "poppler-glib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_poppler_LIBS=`$PKG_CONFIG --libs "poppler-glib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then poppler_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "poppler-glib" 2>&1` else poppler_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "poppler-glib" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$poppler_PKG_ERRORS" >&5 as_fn_error $? "You need Poppler to build $PACKAGE" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "You need Poppler to build $PACKAGE" "$LINENO" 5 else poppler_CFLAGS=$pkg_cv_poppler_CFLAGS poppler_LIBS=$pkg_cv_poppler_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi GUI_CFLAGS="$GUI_CFLAGS $poppler_CFLAGS" GUI_LIBS="$GUI_LIBS $poppler_LIBS" if test "$spellcheck" = yes; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtkspell" >&5 $as_echo_n "checking for gtkspell... " >&6; } if test -n "$gtkspell_CFLAGS"; then pkg_cv_gtkspell_CFLAGS="$gtkspell_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkspell-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtkspell-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_gtkspell_CFLAGS=`$PKG_CONFIG --cflags "gtkspell-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$gtkspell_LIBS"; then pkg_cv_gtkspell_LIBS="$gtkspell_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkspell-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtkspell-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_gtkspell_LIBS=`$PKG_CONFIG --libs "gtkspell-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then gtkspell_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkspell-2.0" 2>&1` else gtkspell_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkspell-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$gtkspell_PKG_ERRORS" >&5 as_fn_error $? "You need GtkSpell to build $PACKAGE" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "You need GtkSpell to build $PACKAGE" "$LINENO" 5 else gtkspell_CFLAGS=$pkg_cv_gtkspell_CFLAGS gtkspell_LIBS=$pkg_cv_gtkspell_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi GUI_CFLAGS="$GUI_CFLAGS $gtkspell_CFLAGS" GUI_LIBS="$GUI_LIBS $gtkspell_LIBS" fi # Add explicit linking flags GUI_LIBS="$GUI_LIBS -pthread -lm -lz -lrt" # Checks for header files. 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 to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #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 _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 to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #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 _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" { test -f "$ac_path_GREP" && $as_test_x "$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" { test -f "$ac_path_EGREP" && $as_test_x "$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 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 #include #include #include 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 _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 _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 #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF 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 for ac_header in libintl.h locale.h netdb.h stdlib.h string.h sys/socket.h sys/time.h unistd.h fcntl.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 # Checks for typedefs, structures, and compiler characteristics. { $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 #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_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h 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 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 # Checks for library functions. for ac_func in gethostbyname memset setlocale socket strstr 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_config_files="$ac_config_files Makefile src/Makefile data/Makefile data/ui/Makefile data/icons/Makefile data/snippets/Makefile data/misc/Makefile lib/Makefile po/Makefile.in data/misc/$PACKAGE.desktop" 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 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 ac_config_commands="$ac_config_commands po/stamp-it" : "${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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' 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 if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 Gummi $as_me 0.6.5, which was generated by GNU Autoconf 2.68. 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_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 commands: $config_commands Report bugs to . Gummi home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Gummi config.status 0.6.5 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 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" _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" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/ui/Makefile") CONFIG_FILES="$CONFIG_FILES data/ui/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/snippets/Makefile") CONFIG_FILES="$CONFIG_FILES data/snippets/Makefile" ;; "data/misc/Makefile") CONFIG_FILES="$CONFIG_FILES data/misc/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "data/misc/$PACKAGE.desktop") CONFIG_FILES="$CONFIG_FILES data/misc/$PACKAGE.desktop" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) 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_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` 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 ' >$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 ' >$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 :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 ;; :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 "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 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"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $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/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; 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 echo echo gummi...................................... : Version $VERSION echo echo spellcheck support......................... : $spellcheck echo echo The binary will be installed in $prefix/bin echo echo configure complete, now type \'make\'. echo gummi-0.6.5/install-sh0000755000175000017500000003253712040524264011576 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # 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 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 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 trap '(exit $?); exit' 1 2 13 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 starting with `-'. 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 # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $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-writeable 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 -z "$d" && 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: gummi-0.6.5/configure.ac0000644000175000017500000000606312040524277012057 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.65) AC_INIT([Gummi], [0.6.5], [alexvandermey@gmail.com], [gummi], [http://gummi.midnightcoding.org/]) AM_INIT_AUTOMAKE([foreign -Wall -Werror]) GETTEXT_PACKAGE=gummi AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext domain]) AC_SUBST(GETTEXT_PACKAGE) # ls po/*.po | sort | sed 's/po\///g;s/.po//g'| sed ':a;N;s/\n/ /g;ta' ALL_LINGUAS="ar ca cs da de el es fr hu it nl pl pt pt_BR ro ru sv zh_CN zh_TW" AC_CONFIG_SRCDIR([src/environment.h]) AC_CONFIG_HEADERS([config.h]) AH_VERBATIM([USE_GTKSPELL], [#undef USE_GTKSPELL]) # Checks for programs. AC_PROG_CC AC_PROG_CC_C_O IT_PROG_INTLTOOL AM_PROG_CC_C_O # Checks for libraries. AC_ARG_ENABLE([spellcheck], AS_HELP_STRING([--disable-spellcheck],[disable spellcheck support]), spellcheck=$enableval, spellcheck="yes") if test "$spellcheck" = yes; then AC_DEFINE(USE_GTKSPELL) fi AC_SUBST(USE_GTKSPELL) AM_PATH_GLIB_2_0([2.20.0], [ GUI_CFLAGS="$GUI_CFLAGS $GLIB_CFLAGS" GUI_LIBS="$GUI_LIBS $GLIB_LIBS" ], [AC_MSG_ERROR([You need Glib >= 2.20.0 to build $PACKAGE])]) PKG_CHECK_MODULES(gthread, [gthread-2.0],, [AC_MSG_ERROR([You need ghread-2.0 to build $PACKAGE])]) GUI_CFLAGS="$GUI_CFLAGS $gthread_CFLAGS" GUI_LIBS="$GUI_LIBS $gthread_LIBS" AM_PATH_GTK_2_0([2.20.0], [ GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS" GUI_LIBS="$GUI_LIBS $GTK_LIBS" ], [AC_MSG_ERROR([You need Gtk+ >= 2.20.0 to build $PACKAGE])]) PKG_CHECK_MODULES(gtksourceview, [gtksourceview-2.0 >= 2.2.1],, [AC_MSG_ERROR([You need gtksourceview-2 >= 2.2.1 to build $PACKAGE])]) GUI_CFLAGS="$GUI_CFLAGS $gtksourceview_CFLAGS" GUI_LIBS="$GUI_LIBS $gtksourceview_LIBS" PKG_CHECK_MODULES(poppler, [poppler-glib],, [AC_MSG_ERROR([You need Poppler to build $PACKAGE])]) GUI_CFLAGS="$GUI_CFLAGS $poppler_CFLAGS" GUI_LIBS="$GUI_LIBS $poppler_LIBS" if test "$spellcheck" = yes; then PKG_CHECK_MODULES(gtkspell, [gtkspell-2.0],, [AC_MSG_ERROR([You need GtkSpell to build $PACKAGE])]) GUI_CFLAGS="$GUI_CFLAGS $gtkspell_CFLAGS" GUI_LIBS="$GUI_LIBS $gtkspell_LIBS" fi # Add explicit linking flags GUI_LIBS="$GUI_LIBS -pthread -lm -lz -lrt" # Checks for header files. AC_CHECK_HEADERS([libintl.h locale.h netdb.h stdlib.h string.h sys/socket.h sys/time.h unistd.h fcntl.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T # Checks for library functions. AC_CHECK_FUNCS([gethostbyname memset setlocale socket strstr]) AC_SUBST(GUI_LIBS) AC_SUBST(GUI_CFLAGS) AC_CONFIG_FILES([Makefile src/Makefile data/Makefile data/ui/Makefile data/icons/Makefile data/snippets/Makefile data/misc/Makefile lib/Makefile po/Makefile.in data/misc/$PACKAGE.desktop ]) AC_OUTPUT echo echo gummi...................................... : Version $VERSION echo echo spellcheck support......................... : $spellcheck echo echo The binary will be installed in $prefix/bin echo echo configure complete, now type \'make\'. echo gummi-0.6.5/ChangeLog0000644000175000017500000003255312040524264011342 00000000000000----------------------------------------------------------------------------- Gummi CHANGELOG ----------------------------------------------------------------------------- Gummi 0.6.5 (October 18th, 2012): Bugs fixed: * Fixed empty build logs when special characters were included * Fixed a rare deadlock situation on program exit * Fixed regression in spell-checking language listing * Fixed regression in killing inresponsive compilation processes * Correctly close file descriptors for child processes * Implemented --version CLI argument * Several translation updates * Added Hungarian translation Gummi 0.6.4 (June 24th, 2012): Bugs fixed: * Replaced faulty importer implementation with a toolbar variant * Fixed an issue where the previewer would not display correctly * dvi script uses exit status to signal compilation status * Improved the reported messages for some errors. * Better TeXLive version detection * Fixed a reference problem that could lead to a crash * Search window is correctly centered in GNOME 3 * Tab markup not enabled when project loading fails * Minor UI tweaks to the project & bibliography panels * Minor UI tweaks to the snippet configuration interface Gummi 0.6.3 (March 28th, 2012): Bugs fixed: * Fix bibtex regression since 0.6.2 * Fix for compiling through dvi/ps * Correctly disable template open button when none exist * Gummi toolbar can be hidden again * Fix LaTeX error screen and error line output * Menu item compatibility with Ubuntu's Unity fixed * Added Chinese (simplified) translation Gummi 0.6.2 (March 18th, 2012): Bugs fixed: * Recovery mode is also triggered when gummi is run with file argv * Incomplete compilation processes are killed on tab switch * Fix template addition crash when zero tabs are opened * PDF files can now be used by the image importer * Fixed building/compilation scripts for explicit linking * Default text only written to disk when changes are made * SyncTeX auto-scrolling is now disabled by default * Converted snippet offsets to utf8 * Bibliography items with all capital letters can be parsed * Various minor spelling/phrasing errors * Build files can now be removed from the menu * Lots of Windows specific issues * Addition of user guide link Gummi 0.6.1 (December 2th, 2011): Bugs fixed: * Selecting text no longer freezes during updates * Shell escape option is now set/unset correctly * Fixed crash when trying to open non-existing file from cli * Popup windows no longer block gui in fullscreen mode * Documents containing input commands can pass precompile check * Opening snippet menu no longer blocks gui * Several fixes to snippet insertion mechanism * Minor tweaks to the build scripts for convenience * Fixed some minor memory leaks Gummi 0.6.0 (November 14th, 2011): Bugs fixed: * Improved preview scaling performance * Importer file choosers now default to CWD * Fixed image import warning * Fixed rare segfault on gummi start * Search results colour depends on color theme * Preview scroll position restored after error * Replaced all win32 incompatible code * Configuration I/O transaction fixes * Modifier keys no longer trigger auto-compile * Correct encoded text is written on file save * Fixed a rare GUI hang when program is closed * Several GUI and icon related problems * Several memory leaks Features added: * Multi-tab/document support * LaTeX build systems (rubber/latexmk) * Compiling through DVI/Postscript * Continuous PDF preview * Filter function for bibliographies * Improved document statistics * Infoscreen panel with document status * More configurable options * Minimal project support * SyncTeX support * New & updated translations Gummi 0.5.8 (March 17th, 2011): Bugs fixed: * PDF latency when document is scrolled fixed * Fixed gui hanging issues in certain situations * Fixed compatibility with Bibtex 0.99d (texlive 2010) * Updated glade files for compability with new releases * Better detection for damaged or incomplete pdf files * Replaced textit with emph for italic toolbar function * Solved various pdf rendering problems * High resolution gummi icon Features added: * LaTeX compilation is now a threaded process * Implemented Snippets interface * Automatic export of the PDF file on document save * Added German, Spanish, Polish and Czech translations * Updated several other translation files Gummi 0.5.5 (December 10th, 2010): Bugs fixed: * Fixed critical search & replace regression.. :( Gummi 0.5.4 (December 8th, 2010): Bugs fixed: * Fixed segfault on document statistics for filepaths with spaces * Fixed segfault on accessing non-existing recent file * Fixed a rare segfault that occured on opening file * Set default search & replace options to clone gedit's * Fixed cursor repeatedly jumping to error lines * Fixed statusbar message when a document is loaded from template * Multiple lines will now be tagged when they contain errors * Fixed PDF preview delay * Misc small bugfixes here and there * Updated translations Features added: * Added editor style scheme support * Added manual preview compile function * Document recovery mode in case of a crash * Allow custom compilation scripts and flags * Added polish & spanish translations Gummi 0.5.3 (October 24th, 2010): Bugs fixed: * Reduce number of I/O calls for configuration * Fixed the center text latex command * Document dimensions now update when document orientation changes * Image and biblio imports now detect relative paths * Fixed GUI lag when opening a new document * Fixed titles for the file chooser windows * Clicking no longer required to restore preview window on error * Show tooltips with basepath for recent files * Fixed issue with configuration reset on gummi update * Multiple crash issues fixed Gummi 0.5.2 (October 20th, 2010): Bugs fixed: * Fixed an issue with including other tex documents * Fixed an issue with relative file paths for to be included files * Recent files with underscore now correctly displayed * Current directory of document is now remembered * Autosave document now no longer has editor panel lose focus * Fixed issue with manual preview page number jumping * Removed redundant function call in the preview-update function * Minor fixes to the regex for bibtex detection * Minor memory leak in texcount function fixed * Fixed document statistics for document containing errors * Fixed a segmentation fault on texcount for some configurations * Minor GUI improvements Translation: * Updated Catalan translation * Added romanian translation Gummi 0.5.1 (September 27th, 2010): Bugs fixed: * Fixed preview error mode when a template contains errors * Autosave function no longer runs continuously * Tab stops now works correctly * Command exist check for external commands (texcount/bibtex) Features addded: * Remember window size & position from previous session Gummi 0.5.0 (September 20th, 2010): Bugs fixed: * Too many to write up, see SVN revision log ;) Features added: * Complete rewrite of Gummi to the C programming language * Internationalisation support * Search & Replace function * Custom document templates * Document statistics (word count) * Adjustable editor font * Preview pane can now be hidden and paused * New compilation interval schemes * Export PDF function * Tab width now configurable Gummi 0.4.8 (May 16th, 2010): Bugs fixed: * Replaced widget.get_name() as it is broken in new pygtk * Current path is now correctly updated on doc load/save * TeX documents with errors no longer crash the preview on start * Slightly cleaner detection method for libgobject hack * Removed cite package inclusion on making a reference * Fixed a number of not working cancel buttons * Preferences warning messages are now hidden by default Features added: * Spell checking capabilities through gtkspell * PDF update can be disabled by user * PDF update interval can be set by user Gummi 0.4.5 (January 27th, 2010): Bugs fixed: * pdf compiling should no langer make gummi hang in certain cases * Workaround/fix for the pdf render memory leak * Xelatex should no longer leak file descriptors and crash * Unavailable recent files are now removed from the menu * Preview now shows correct page on file load with < pages * Preview update event now in seconds (less cpu ticks) * Removed /proc call for workfile generate (incompatible with bsd) * Fixed empty lines in template documents * Statusbar/Toolbar can be displayed/hidden * Correct active typesetter displayed in Preferences menu * Templates now set the correct filename * Miscelaneous cosmetic & spelling updates Features added: * Gconf replaced with ConfigParser (gconf deps dropped) * Better bibtex support including reference parser * Autosaving function added * Editor font now configurable * Added man page for gummi executable * More advanced search function * Restyled interface for import tabs Gummi 0.4.2 (November 2th, 2009): Bugs fixed: * Changed website address to new homepage in all instances of the code Features added: * Improved error-checking mode, with automatic error highlighting Gummi 0.4.1 (October 27th, 2009): Bugs fixed: * Replaced thread update model with glib interval event * Python >2.6.3 compatible Gummi 0.4.0 (October 12th, 2009): Bugs fixed: * Relative filepaths for external files now handled correctly * Previewpane will attempt to re-setup if fail on first try * Rewritten and improved preview pane * Fixed cancel buttons in file chooser dialogs * Tempdir is now detected instead of a static value * Quick import minimalizes after succesfull import * Quit proces is now stopped when cancel button on save is pressed * Fixed tooltips for style toolbar * Fixed a gtksourceview warning on text insertion * Text style tags can't be nested anymore * Numerous warnings fixed using pylint/pychecker * Replaced a duplicate keyboard shortcut * Added multiple missing tooltips * Buttons in preferences and searchwindow now allign correctly * And numerous other small usability fixes Features: * BibTeX files support * XeTeX output support (see advanced options) * Restyled preview toolbar features auto-scaling zoom modes * Four preset templates for new documents * Window title now shows active docment name * Editor/Preview panes can now be scaled using a slider * Added functions for quick importing Matrices * Added indentation style buttons to the toolbar * Gummi can now be used in fullscreen mode Gummi 0.3b (September 22th, 2009): Bugs fixed: * Preview pane no longer crashes after extended period of use * Toolbar buttons now display a tooltip on mouseover * Undo is no longer able to erase the original document content * Statusbar messages will now correctly fade after a x interval * More solid character decoding/encoding * Preview pane will now temporarly disable itself when pdf invalid Features: * New save behaviour no longer exports .aux and .log files * Added a toolbar for quick insertion of images and tables * Recent files are saved and displayed in the file-menu Gummi 0.2f (September 15th, 2009): Bugs fixed: * Documents with non-ascii characters no longer crash editor pane * Gummi will now correctly launch with filename argument * Zoom normal button no longer sets wrong dimensions * Preview pane will browse backwards if content is deleted * Removed the redundant tempfile from the pdf update process Features: * Added a window containing the pdflatex output for error tracking * Added a status light to see current error status of document * Added three text style buttons for quick bold/italic/underline * Added mechanism to check whether new gummi version is available Gummi 0.2b (September 8th, 2009): Bugs fixed: * Rescaled icon to look nicer on a gnome panel * Preferences window no longer triggers a GTKwarning * New file environment is now correctly created on load/saveas * Mainwindow no longer blinks on check_for_save/program exit * Preview pane will no longer stop refreshing after a Save-as * Tex extension is now forced upon documents when saved * And several minor annoyances.. Features: * Preferences can now be reset to defaults * Default text shown in new documents can now be changed * Added many improvements to the search function * Added file filters to open & save dialogs Gummi 0.1f (August 26th, 2009): Bugs fixed: * Problems with opening and saving for non-gnome users fixed. * Fixed problem that prevented preferences window from opening. * Fixed several problems with the check_for_save routine. * Mainwindow no longer hides when check_for_save prompts user on quit. * Preferences window is now correctly centered on parent window * Tex editor settings now correctly active on program init Features: * Added primitive search function (will extend it later) * Added hotkeys and keyboard shortcuts to menu items * Added toolbar to the main window for easy menuitems access Gummi 0.1b (August 7th, 2009): * initial version gummi-0.6.5/po/0000755000175000017500000000000012040524317010255 500000000000000gummi-0.6.5/po/ru.po0000644000175000017500000006465712040524274011207 00000000000000msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-05-23 16:18+0400\n" "Last-Translator: kruvalig \n" "Language-Team: fedora-trans-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: Virtaal 0.5.2\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Скомпилировать" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Жирный текст" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Жирный текст" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Шаблон настроек:" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Файл:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Заголовок:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Ярлык:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Масштаб:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Строки:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Колонки:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Скобки:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Без скобок" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Круглые скобки" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Cкобки" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Фигурные скобки" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Однострочный" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Двойная линия" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Лучший вид" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "По ширине страницы" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Выровнять по левому краю" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Выровнять по центру" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Выровнять по правому краю" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Без границ" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Обрамление контура" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Обрамление всех ячеек" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - редактор LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Файл" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Документ из _шаблона" #: ../data/ui/gummi.glade.h:56 #, fuzzy msgid "_Open..." msgstr "Открыть" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Изменить" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Вид" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Строка состояния" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Инструменты" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Однострочный" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "На _весь экран" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "П_оиск" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Найти _далее" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "_Обратный поиск" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Скомпилировать" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Скомпилировать" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 #, fuzzy msgid "Set Compilation Options" msgstr "Шаблон настроек:" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Проверка орфографии для зыка:" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Создать новый документ" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Создать новый документ" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Справка" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Проверить _обновления" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Открыть" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Сохранить" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "инструментальнаякнопка5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "инструментальнаякнопка6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "инструментальнаякнопка7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "инструментальнаякнопка1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "инструментальнаякнопка2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "инструментальнаякнопка3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Изображение" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Таблица" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Матрица" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Библиография" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Предыдущий" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Далее" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "из 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Область предпросмотра" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Скомпилировать" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Скомпилировать" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Файл сохраняется:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Имя файла:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "отсутствует" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Ссылки:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Скомпилировать" #: ../data/ui/gummi.glade.h:132 #, fuzzy msgid "" "Compile the active \n" "bibliography database" msgstr "_Скомпилировать библиографию" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "Файл библиографии отсутствует" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Заголовок" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "Фильтр:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Найти" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Искать в:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Полное совпадения слов" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Поиск назад" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Учитывать регистр" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 #, fuzzy msgid "Create new document from template.." msgstr "Создать новый документ.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 #, fuzzy msgid "compile when idle for " msgstr "_Автосборка каждые " #: ../data/ui/prefs.glade.h:2 #, fuzzy msgid "compile every" msgstr "_Автосборка каждые " #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "None" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Настройки Gummi" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "Перенос текста:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Включить автоматический перенос" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Не разделять слова на две строчки" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Номера строк:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Отобразить номера строк" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Выделение:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Подсветить текущую строку" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Вид" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Автоматический отступ" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Фрагменты текста" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Файл сохраняется:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "Автосо_хранение файла каждые" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "минут" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Редактор" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Редактор шрифта:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Цветовая схема" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Текст по умолчанию" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Верстка команд:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Верстка команд:" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Заголовок:" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Компиляция PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "секунд" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Область предпросмотра" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Проверка орфографии для зыка:" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "Компиляция PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Сбросить по умолчанию" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Обозреватель фрагментов" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "_Сбросить по умолчанию" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Создать новый документ" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Сбросить по умолчанию" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "_Изменить" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Центрировать текст" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Имя файла:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Активация" #: ../data/ui/snippets.glade.h:13 #, fuzzy msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 #, fuzzy msgid "Compiling bibliography file..." msgstr "_Скомпилировать библиографию" #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "Файл библиографии отсутствует" #: ../src/gui/gui-main.c:599 #, fuzzy msgid "Error compiling bibliography file or none detected..." msgstr "Файл библиографии отсутствует" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "_Скомпилировать библиографию" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "" #: ../src/gui/gui-main.c:744 #, c-format msgid "Do you want to save the changes to %s?" msgstr "" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Создать новый документ" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 #, fuzzy msgid "Open LaTeX document" msgstr "Создать новый документ" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "" #: ../src/gui/gui-main.c:779 #, fuzzy msgid "Select bibliography file" msgstr "_Скомпилировать библиографию" #: ../src/gui/gui-main.c:812 #, fuzzy msgid "Save LaTeX document" msgstr "Создать новый документ" #: ../src/gui/gui-main.c:813 #, fuzzy msgid "Save as LaTeX document" msgstr "Создать новый документ" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Создать новый документ" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Открыть файл" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Изображение" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Настройки Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 #, fuzzy msgid "Words in text" msgstr "Жирный текст" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "" #: ../src/gui/gui-menu.c:591 msgid "This function requires an active document" msgstr "" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 #, fuzzy msgid "Type a new shortcut" msgstr "Создать новый документ" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "" #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" #: ../src/update.c:116 msgid "Update Check" msgstr "" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 #, fuzzy msgid "Confirmation" msgstr "Заголовок:" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Жирный текст" #~ msgid "Center text" #~ msgstr "Центрировать текст" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Предупреждения об ошибках\n" #~ "активного документа" #~ msgid "Italic text" #~ msgstr "Курсив" #~ msgid "Load a file" #~ msgstr "Открыть файл" #~ msgid "Save the current file" #~ msgstr "Сохранить текущий файл" #~ msgid "Underline text" #~ msgstr "Подчеркнутый текст" #, fuzzy #~ msgid "Include document" #~ msgstr "Создать новый документ" #, fuzzy #~ msgid "New document" #~ msgstr "Создать новый документ" #, fuzzy #~ msgid "Open file" #~ msgstr "Открыть" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Выравнивание\n" #~ "содержимого ячейки." #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Определить будут ли\n" #~ "ячейки иметь границы. " #~ msgid "Error output" #~ msgstr "Вывод ошибок" #~ msgid "_Compile Bibliography" #~ msgstr "_Скомпилировать библиографию" #~ msgid "_Insert Bibliography" #~ msgstr "_Добавить Библиографию" #, fuzzy #~ msgid "Customize" #~ msgstr "Скомпилировать" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #, fuzzy #~ msgid "Autosaving file %s" #~ msgstr "Однострочный" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Создать новый документ" #~ msgid "_Tools" #~ msgstr "_Инструменты" #~ msgid "_Autocheck Spelling" #~ msgstr "_Автопроверка орфографии" #~ msgid "Changes will become active on next start" #~ msgstr "Изменения будут применены при следующем запуске" #~ msgid "PDF Compiling:" #~ msgstr "Компиляция PDF:" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Жирный текст" #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Статья" #~ msgid "Book" #~ msgstr "Книга" #~ msgid "Letter" #~ msgstr "Письмо" #~ msgid "Report" #~ msgstr "Отчет" # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # kruvalig , 2010. # Add your name to msgstr to have it included in the credits: #~ msgid "translator" #~ msgstr "Kruvalig" #, fuzzy #~ msgid "Save?" #~ msgstr "Сохранить" gummi-0.6.5/po/de.po0000644000175000017500000007145412040524274011142 00000000000000# Translation of gummi to German # This file is distributed under the same license as the Lilo package. # # Translators: # Joachim Wiedorn , 2010, 2011. # Max Bruckner # msgid "" msgstr "" "Project-Id-Version: Gummi 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-11-07 21:59+0100\n" "Last-Translator: Max Bruckner \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: German\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Statistik" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Name des Dokumentes" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Wörter in:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "Text" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "Kopfzeilen" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "Titel von Gleitobjekten" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Anzahl:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "Gleitobjekte" #: ../data/ui/gummi.glade.h:11 #, fuzzy msgid "math environments" msgstr "Mathematik-Umgebungen" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "PDF-Vorschau konnte nicht initialisiert werden" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Datei:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Stil:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Titel:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Label:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Skalierung:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Zeilen:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Spalten:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Klammer:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Ohne Klammern" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Klammern" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Klammern" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "geschweifte Klammern" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Einfache Linie" # stop #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Doppelte Line" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Eingepasst" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Auf Seitenbreite anpassen" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "linksbündig" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "zentriert" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "rechtsbündig" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "keine Umrandung" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Äußere Umrandung" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Alle Zellen umranden" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - LaTeX Editor" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "Datei" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Neu aus Vorlage" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "Öffnen" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Speichern _unter..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exportieren als PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "solltenichtgesehenwerden" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Bearbeiten" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Ansicht" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Statusleiste" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Werkzeugleiste" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Rechtes Feld" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "SyncTeX benutzen um die Vorschau an die Position zu scrollen, welche zuletzt " "bearbeitet wurde." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Vorschau mit Editor synchronisieren" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Seitenlayout in der Vorschau" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Einfache Seite" # ??? #: ../data/ui/gummi.glade.h:69 #, fuzzy msgid "Continuous, One Column" msgstr "Durchgehend, Einspaltig" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Vollbild" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Suche" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "_Nächster Treffer" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "_Vorheriger Treffer" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Dokument" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "_Dokument kompilieren" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "LaTeX-Dokument kompilieren\n" "und Vorschau aktualisieren." #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Compiler-Einstellungen setzen" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Starte _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Starte _BibTeX" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "_Statistik" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Rechtschreibprüfung einschalten" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Schnipsel einschalten" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "Projekt" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Neues Projekt" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Um diese Funktion nutzen zu können muss\n" "das aktive Dokument gespeichert werden. " #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Projekt öffnen" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Projekt schließen" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Hilfe" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Auf Updates überprüfen" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Neu" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Öffnen" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Speichern" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "werkzeugknopf4" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "werkzeugknopf6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "werkzeugknopf7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "werkzeugknopf1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "werkzeugknopf2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "werkzeugknopf3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Bild" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabelle" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matrix" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografie" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Vorheriges" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Nächstes" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "von 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Vorschau" #: ../data/ui/gummi.glade.h:112 #, fuzzy msgid "Build Log" msgstr "Build-Log" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Anzahl Dateien:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Wurzelverzeichnis" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Name des Projektes:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "_Dokument kompilieren" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Dateipfad" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Datei auswählen um sie dem\n" "aktiven Projekt hinzuzufügen" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Ausgewählte Datei aus\n" "dem Projekt entfernen." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projekt" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Dateiname:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "Keine" # stop #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referenzen:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/V" #: ../data/ui/gummi.glade.h:128 #, fuzzy msgid "Detect" msgstr "Erkennen" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Nennung einer bibtex-Datei \n" "im aktuellen Dokument finden." #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Kompilieren" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Kompiliere aktive \n" "Bibliografie-Datenbank" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "Keine Bibliografiedatei gefunden" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titel" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "Filter:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Suchen" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Suche nach:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Ersetzen mit:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Nur ganze Wörter finden" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Rückwärts suchen" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Groß-/Kleinschreibung beachten" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "E_rsetzen" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "_Alles ersetzen" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Save early.. save often! (Speichere früh .. speichere oft!)" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Neues Dokument aus Vorlage erstellen.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Eine Vorlage vom momentan \n" "aktiven Dokument erstellen." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Löscht die ausgewählte Vorlage" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Ausgewählte Vorlage öffnen" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "kompilieren, wenn fertig, alle" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "kompilieren alle" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Keine" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Immer" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Nur bei Synchronisierung mit Editor" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Nie" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Gummi Einstellungen" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Zeilenumbruch" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Automatischen Zeilenumbruch aktivieren" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Wörter nicht über zwei Zeilen trennen" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Zeilennummern" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Zeilennummern anzeigen" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Hervorhebung" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Aktuelle Zeile hervorheben" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Ansicht" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabulatoren" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Tabulatorweite:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Leerzeichen _statt Tabulatoren einfügen" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Automatischer Einzug" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "Automatischen Einzug einschalten" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Schnipsel" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Schnipsel konfigurieren" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Datei speichern" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Automatisch speichern alle" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "Minuten" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Editor Schriftart" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Farbschema" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Schriftart & Farben" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Vorgabetext" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Befehl für Schriftensetzen" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive mit PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "Dieses Programm konnte auf ihrem System nicht gefunden werden." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive mit XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Einstellungen für Schriftensetzen" #: ../data/ui/prefs.glade.h:39 #, fuzzy msgid "Use shell-escape" msgstr "--shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "SyncTeX aktivieren" #: ../data/ui/prefs.glade.h:41 #, fuzzy msgid "Compilation steps" msgstr "Schritte der Zusammenstellung" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Zusammenstellung" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "PDF Erzeugung" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "Sekunden" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Animiertes scrollen verwenden" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Puffergröße" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Vorschau" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Sprache für Rechtschreibprüfung" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportiere PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Automatisch beim Speichern als PDF exportieren" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Verschiedenes" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Zurücksetzen" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Schnipsel Manager" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "Zu_rücksetzen" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "Alle Schnipsel zurücksetzen" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Schnipsel:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Erstelle neues Dokument" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "Alle Schnipsel zurücksetzen" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Bearbeiten:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "zentrieren" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Dateiname:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Aktivierung" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Tab Auslöser:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Tastenkombination:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Datei oder Verzeichnis nicht gefunden\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "PDF-Vorschau konnte nicht initialisiert werden" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "Das Dokument scheint leer oder ungültig zu sein." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Compiler fehlt." #: ../src/gui/gui-infoscreen.c:128 #, fuzzy msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "Das aktive Dokument enthält Fehler. Die Live-Vorschau\n" "wird wieder aktiviert, sobald die Fehler behoben sind.\n" "Weitere Informationen erhalten Sie im Build-Log.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "Das momentan aktive Dokument scheint keine gültige LaTeX-\n" "Datei zu sein. Sie können daran weiterarbeiten, den Vorgabetext\n" "laden oder es über das Projekt-Menü zu einem aktiven Projekt\n" "hinzufügen.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "Der ausgewählte Compiler konnte nicht gefunden werden.\n" "Bitte erstellen Sie das Programm wieder her oder wählen\n" "über das Einstellungsmenü einen alternativen Compiler aus.\n" "Die Live-Vorschau funktioniert erst wieder nach einem Neustart\n" "von Gummi.\n" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Die Datei existiert bereits. Überschreiben?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Lade Vorgabe ..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Kompiliere Bibliografiedatei.." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "Bibliografie ohne Fehler kompiliert" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Fehler beim Kompilieren der Bibliografiedatei oder keine gefunden..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "Fehler beim Kompilieren der Bibliografiedatei" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s geladen" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Sollen die durchgeführten Änderungen gespeichert werden?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "LaTeX Dokument öffnen" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "LaTeX-Dokument öffnen" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Bild auswählen zum Einfügen" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Bibliografiedatei auswählen" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "LaTeX Dokument speichern" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Als LaTeX Dokument speichern" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Als PDF exportieren" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Neues Projekt" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "LaTeX-Dateien" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Text-Dateien" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Bilddateien" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Bibtex-Dateien" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Gummi Projektdateien" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Fehler beim Laden der aktuellen Datei: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "Fehler beim ausführen von Makeindex.." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "Starte Makeindex.." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Fehler beim ausführen von Makeindex.." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Wörter im Text" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Wörter in Kopfzeilen" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Wörter in Beschriftungen von Gleitumgebungen" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Anzahl Kopfzeilen" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Anzahl Gleitobjekte" #: ../src/gui/gui-menu.c:455 #, fuzzy msgid "Number of math inlines" msgstr "Anzahl von Mathe \"inlines\"" #: ../src/gui/gui-menu.c:456 #, fuzzy msgid "Number of math displayed" msgstr "Anzahl von Mathe \"displayed\"" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Um diese Funktion nutzen zu können muss\n" "das aktive Dokument gespeichert werden. " #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "von %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" "Doppelte Aktivierung des Tab Auslösers festgestellt! Bitte wählen Sie einen " "anderen.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Neue Tastenkombination drücken" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Neue Tastenkombination drücken, oder mit der Rücktaste löschen" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Oben angekommen, Suche von unten beginnen?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Unten angekommen, Suche von oben beginnen?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Speichern %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Bitte versuchen Sie es später erneut." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Text kann nicht nach UTF-8 konvertiert werden!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "Kann nicht als PDF exportiert werden..\n" "Dokument enthält Fehler.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Ungespeichertes Dokument %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Aktuell installiert:\n" "%s\n" "\n" "Aktuell verfügbar:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Aktualisierungsüberprüfung" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s hat einen ernsten Fehler festgestellt und benötigt einen Neustart. Ihre " "Arbeitsdaten werden gespeichert, wenn das Dokument neu eingelesen wird. " "Fehlerberichte bitte an: http://dev.midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Betätigung" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Fett" #~ msgid "Center text" #~ msgstr "zentrieren" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Fehlerstatus für das\n" #~ "aktive Dokument." #~ msgid "Italic text" #~ msgstr "kursiv" #~ msgid "Load a file" #~ msgstr "Eine Datei laden" #~ msgid "Pause updating the preview pane." #~ msgstr "Aktualisierung der Vorschau unterbrechen." #~ msgid "Save the current file" #~ msgstr "Aktuelle Datei speichern" #~ msgid "Underline text" #~ msgstr "unterstrichen" #~ msgid "Hello svn user!" #~ msgstr "Hallo SVN Benutzer!" #~ msgid "Include document" #~ msgstr "Dokument einbinden" #~ msgid "New document" #~ msgstr "Neues Dokument erstellen" #, fuzzy #~ msgid "Open file" #~ msgstr "Datei öffnen" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Ausrichtung des \n" #~ "Zelleninhalts" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Legt fest, ob die Zellen\n" #~ "Umrandungen haben. " #~ msgid "Error output" #~ msgstr "Fehlerausgabe" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "PDF-Vorschau konnte nicht gestartet werden.\n" #~ "\n" #~ "Anscheinend enthält Ihr LaTeX Dokument Fehler\n" #~ "oder das Programm `%s' ist nicht installiert.\n" #~ "Zusätzliche Informationen finden sich in der Fehlerausgabe.\n" #~ "Bitte korrigieren sie die aufgelisteten Fehler um die Vorschau \n" #~ "wieder herzustellen." #~ msgid "_Compile Bibliography" #~ msgstr "Bibliografie _kompilieren" #~ msgid "_Insert Bibliography" #~ msgstr "Bibliografie _einfügen" #~ msgid "Command: " #~ msgstr "Befehl:" #~ msgid "Customize" #~ msgstr "Anpassen" #~ msgid "Extra flags:" #~ msgstr "Zusätzliche Markierungen" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "Autospeichern der Datei %s" #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Der aktive Tab enthält kein gültiges LaTeX-Dokument" #~ msgid "_Tools" #~ msgstr "_Werkzeuge" #~ msgid "_Autocheck Spelling" #~ msgstr "_Automatische Rechtschreibprüfung" #~ msgid "_Document Statistics" #~ msgstr "Statistik" #~ msgid "" #~ "Search document for\n" #~ "bibliography databases" #~ msgstr "" #~ "Suche Dokument für \n" #~ "Bibliografie-Datenbank" #~ msgid "Changes will become active on next start" #~ msgstr "Änderungen werden beim nächsten Start aktiv" #~ msgid "PDF Compiling:" #~ msgstr "PDF Erzeugung:" #~ msgid "" #~ "\n" #~ "Gummi has encountered a serious error and requires a restart, you can " #~ "find your file in the %s directory\n" #~ msgstr "" #~ "\n" #~ "Gummi hat einen ernsten Fehler gefunden und muss daher neu gestartet " #~ "werden. Die aktuelle Datei wird im Verzeichnis %s abgelegt\n" #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Wörter im Text: ([0-9]*)" #~ msgid "Save File..." #~ msgstr "Datei speichern..." #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Artikel" #~ msgid "Book" #~ msgstr "Buch" #~ msgid "Letter" #~ msgstr "Brief" #~ msgid "Report" #~ msgstr "Report" gummi-0.6.5/po/zh_CN.po0000644000175000017500000006323012040524274011544 00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2012-03-14 22:17+0800\n" "Last-Translator: mathlab \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "文档信息统计" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "文件名" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "字数:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "文字" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "标题內总字数" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "浮动标题內总字数" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "数量:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "浮动" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "数学环境" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "无法启动PDF预览" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "文件:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "样式:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "标题:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "标签" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "缩放:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "列:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "行:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "括弧:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "双括弧" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "括弧" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "方括弧" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "大括弧" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "单线" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "双线" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "最适合大小" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "符合页宽" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "左对齐" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "居中" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "右对齐" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "无边框" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "外层边框" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "完整边框" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - LaTex 编辑器" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "文件(_F)" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "从模版新建(_T)" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "打开...(_O)" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "另存为...(_A)" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "输出为 PDF(_E)" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "编辑(_E)" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "视图(_V)" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "状态栏(_S)" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "工具栏(_T)" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "右侧面板(_R)" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "卷动预览到最近编辑的地方." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "与编辑器同步预览" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "预览格式" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "单页" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "单页连续" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "全屏显示(_F)" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "查找(_S)" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "下一处(_X)" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "前一处(_V)" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "文档(_D)" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "编译_PDF" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "编译LaTeX文档且更新预览" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "设定编译选项" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "运行 _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "运行 _BibTeX" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "文档信息统计(_S)" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "启用拼字检查(_A)" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "启用代码片段" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "项目(_P)" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "建立新项目" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "当前文件保存后\n" "才能执行这项功能需要." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "打开项目" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "关闭项目" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "帮助(_H)" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "检查更新(_U)" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "新建" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "打开" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "保存" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "图像" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "表格" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "矩阵" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "参考文献" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "前一处" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "下一处" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "/ 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "预览面板" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "编译信息" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "文件数量:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "文件根目录:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "项目名称:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "文档" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "文件路径" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "请选择要加入项目的文件." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "从项目中移除\n" "选择的文件." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "项目" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "文件名:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "无" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "参考:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "无" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "检测" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "检测在文档中出現的参考文献" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "编译" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "编译当前的参考文献" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "无法找到参考文献" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "标题" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "作者" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "年份" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "过滤:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "查找" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "查找:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "替换为:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "全字匹配" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "向后" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "区分大小写" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "替换(_R)" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "全部替换(_A)" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "早保存、勤保存,工作很舒畅!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "从模版建立新文档.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "从当前编辑的文档产生模版." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "删除选择的模板" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "打开选择的模版" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "自动编译: 当空闲的时" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "间隔时间自动编译" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "无" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "总是" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "仅当与编辑器同步预览时" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "永不" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Gummi 偏好设定" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "文字换行" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "启用文字换行" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "换行时不折开单字" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "行号" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "显示行号" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "高亮" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "高亮当前行" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "视图" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tab 停止位置" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Tab 字符宽度:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "插入空格來代替 Tab 字符(_S)" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "自动缩排" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "启用自动缩排功能(_E)" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "代码片段" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "设定代码片段" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "文件保存" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "间隔时间自动保存(_A)" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "分" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "编辑器" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "编辑器字体" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "色彩配置" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "字型及颜色" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "缺省文字" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "排版命令:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive: PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "在您的系統中无法找到这个程序" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive: XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "排版命令选项" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "使用 shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "启用 SyncTeX" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "编译步骤" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "编译" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "PDF 编译" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "秒" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "卷动时使用动态" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "高速缓存大小" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "预览" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "拼写检查语言" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "PDF 输出" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "保存时自动输出 PDF" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "杂项" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "重设为缺省(_R)" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "代码片段管理" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "重设(_R)" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "重设所有代码片断" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "代码片段:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "建立新文档" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "重设所有代码片断" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "编辑: " #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "插入宏包" #: ../data/ui/snippets.glade.h:9 msgid "selected text" msgstr "已选择文字" #: ../data/ui/snippets.glade.h:10 msgid "filename" msgstr "文件名" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "基文档名称" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "激活" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Tab 触发:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "快捷键:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: 找不到此文件或目录\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "无法启动 PDF 预览" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "文档似乎是空白或无效的 LaTeX 文件" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "无法找到编译程序" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "目前的文档中包含错误,PDF 预览将在错误修正后自动恢复.\n" "请参考编译信息分页中的信息修正错误.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "目前的文件是无效的 LaTeX 文件. 你可以继续编辑或从\n" "项目选单中加入 LaTeX 文件.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "无法找到您选择的编译程序. 请重新安裝编译程序或\n" "选择其他的编译程序. PDF 预览将在 Gummi 重启后恢复.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "找到 %s 的暂存文件, 您想要从暂存文件恢复吗?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "文件已存在, 要覆盖吗?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "载入模版中..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "正在编译参考文献..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "参考文献已成功编译" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "编译过程中发生错误或无法找到参考文献..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "编译参考文献发生错误" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "已载入 %s" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "是否保存您所作的改变?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "輸入文件" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "打开 LaTeX 文件" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "选择要插入的图像" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "选择参考文献" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "保存 LaTeX 文件" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "另存为 LaTeX 文件" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "输出为 PDF" #: ../src/gui/gui-main.c:817 msgid "Create project" msgstr "建立新项目" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "LaTeX 文件" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "纯文字文件" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "图像文件" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Bibtex 文件" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Gummi 项目文件" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "载入最近使用的文件时产生错误: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "运行 Makeindex 的过程中发生错误.." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "运行 Makeindex 中.." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "运行 Makeindex 的过程中发生错误.." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "纯文字数" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "标题內总字数" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "浮动标题內总字数" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "标题总数" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "浮动体总数" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "行內数学式总数" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "独立数学式总数" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "当前文件保存后\n" "才能执行这项功能需要." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "之 %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "Tab 触发字串副本! 请选择另一个字串.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "按新的快捷键" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "按新的快捷键, 或按退格键清除" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "已查找到文首, 从文末开始查找?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "已查找到文末, 从文首开始查找?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "保存%s中..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "请稍后重试." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "无法转换文字为 UTF-8 格式!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "文件包含错误, 无法输出为PDF.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "未保存文件 %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "安裝版本:\n" "%s\n" "\n" "最新版本:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "检查更新" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s 遇到了一个严重的错误,必须重新启动. 您的文件将在重新打开时被复原. 请到 " "http://dev.midnightcoding.org 报告这个错误." #: ../src/utils.c:168 msgid "Confirmation" msgstr "确认" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "粗体" #~ msgid "Center text" #~ msgstr "居中" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "目前文当\n" #~ "的错误状态" #~ msgid "Italic text" #~ msgstr "斜体" #~ msgid "Load a file" #~ msgstr "载入文件" #~ msgid "Pause updating the preview pane." #~ msgstr "暂停更新预览" #~ msgid "Save the current file" #~ msgstr "保存当前文件" #~ msgid "Underline text" #~ msgstr "底线" #~ msgid "Hello svn user!" #~ msgstr "SVN使用者你好!" #~ msgid "Include document" #~ msgstr "引入文件" #~ msgid "New document" #~ msgstr "建立新文件" #~ msgid "Open file" #~ msgstr "開啟檔案" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "表格的對齊方式" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "設定表格格線" #~ msgid "Error output" #~ msgstr "錯誤輸出" #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "無法啟動PDF預覽.\n" #~ "\n" #~ "您的LaTeX文件中包含錯誤或是%s未被案裝.\n" #~ "更多的訊息請參照錯誤輸出欄.\n" #~ "預覽將在錯誤修正後自動啟動." #~ msgid "_Compile Bibliography" #~ msgstr "編譯參考文獻(_C)" #~ msgid "_Insert Bibliography" #~ msgstr "插入參考文獻(_I)" #~ msgid "Command: " #~ msgstr "指令: " #~ msgid "Customize" #~ msgstr "自訂指令" #~ msgid "Extra flags:" #~ msgstr "額外選項:" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "正在儲存%s" #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "分頁文件內容不是一個有效的LaTeX文件" #~ msgid "_Tools" #~ msgstr "工具(_T)" #~ msgid "year" #~ msgstr "年份" gummi-0.6.5/po/cs.po0000644000175000017500000006374712040524274011165 00000000000000msgid "" msgstr "" "Project-Id-Version: Gummi SVN700\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-03-03 19:15+0100\n" "Last-Translator: Přemysl Janouch \n" "Language-Team: Czech \n" "Language: \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" #: ../data/ui/gummi.glade.h:1 #, fuzzy msgid "Document statistics" msgstr "Statistiky dokumentu" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Zkompilovat _dokument" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Slova v textu" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Tučný text" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 #, fuzzy msgid "headers" msgstr "Slova v hlavičkách" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Slova v plovoucích nadpisech" #: ../data/ui/gummi.glade.h:9 #, fuzzy msgid "Number of:" msgstr "Počet plovoucích elementů" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Soubor:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Nadpis:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Návěstí:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Měřítko:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Řádky:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Sloupce:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Závorky:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Neozávorkovaný" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Kulaté závorky" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Hranaté závorky" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Složené závorky" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Jediný řádek" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Dvojitá čára" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Nejlepší přizpůsobení" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Přizpůsobit šířce stránky" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50 %" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70 %" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85 %" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100 %" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125 %" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150 %" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200 %" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300 %" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400 %" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Zarovnat doleva" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Zarovnat na střed" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Zarovnat doprava" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Bez rámečků" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Vnější rámeček" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Rámeček u všech buněk" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editor pro LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Soubor" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nový ze _šablony" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Otevřít..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Uložit _jako..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exportovat do PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Úpravy" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Zobrazení" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Stavový řádek" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Panel nástrojů" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Pravý panel" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Jediný řádek" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Celá obrazovka" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Hledat" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Najít _další" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Najít _předchozí" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Zkompilovat _dokument" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Zkompilovat _dokument" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Zkompilovat dokument LaTeX\n" "a aktualizovat náhled." #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "_Statistiky dokumentu" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Povolit _kontrolu pravopisu" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Povolit _výstřižky" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Vytvořit nový dokument" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Tato funkce vyžaduje\n" "program texcount.\n" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Vytvořit nový dokument" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Nápověda" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Ověřit _aktualizace" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Otevřít" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Uložit" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Obrázek" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabulka" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matice" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografie" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Předchozí" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Další" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "z 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Náhled" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 #, fuzzy msgid "Nr of files:" msgstr "Počet plovoucích elementů" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Zkompilovat _dokument" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Zkompilovat _dokument" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Ukládání souborů" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Název souboru:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "žádný" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Odkazy:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "nelze aplikovat" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Zjistit" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Zjišťovat zmínku o souboru\n" "bibtex v současném dokumentu" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Zkompilovat" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Zkompilovat aktivní\n" "databází bibliografie" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "nenalezen žádný soubor s bibliografií" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Nadpis" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtr:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Hledat" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Co hledat:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Nahradit čím:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Hledat pouze celá slova" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Hledat odzadu" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Rozlišovat velikost písmen" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "_Nahradit" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Nahradit _vše" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Vytvořit nový dokument ze šablony..." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Vytvořit šablonu\n" "z aktivního dokumentu." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Smaže vybranou šablonu" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Otevřít vybranou šablonu" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "kompilovat při nečinnosti po " #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "kompilovat každých" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Žádný" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Nastavení Gummi" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Zalamování textu" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Povolit zalamování textu" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Nedělit slova přes dva řádky" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Čísla řádků" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Zobrazit čísla řádků" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Zvýrazňování" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Zvýraznit současný řádek" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Zobrazení" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabulátory" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Šířka tabulátoru:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Vkládat _mezery namísto tabulátorů" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Automatické odsazování" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Povolit automatické odsazování" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Výstřižky" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Konfigurace výstřižků" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Ukládání souborů" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Uložit každých" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minut" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Font editoru" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Barevné schéma" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Fonty a barvy" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Výchozí text" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Příkaz pro sázecí program" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Příkaz pro sázecí program" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 #, fuzzy msgid "Enable SyncTeX" msgstr "Povolit _výstřižky" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Potvrzení" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Kompilace PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "sekund" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Náhled" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Jazyk pro kontrolu pravopisu" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "Kompilace PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Smíšené" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Obnovit výchozí hodnoty" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Správce výstřižků" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Vrátit nastavení" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "Vrát nastavení všech výstřižků" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Výstřižky" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Vytvořit nový dokument" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "Vrát nastavení všech výstřižků" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Upravit:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Zarovnat text na střed" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Název souboru:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Aktivace" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Vyvolat pomocí:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Klávesová zkratka:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Není soubor nebo adresář\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Soubor již existuje. Přepsat?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Kompiluji soubor s bibliografií..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografie se zkompilována bez chyb" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Chyba při kompilaci souboru s bibliografií nebo nebyl žádný nalezen..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "chyba při kompilaci souboru s bibliografií" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s nahráno" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Chcete uložit změny, které jste provedli?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Otevřít dokument LaTeX" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Otevřít dokument LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Vyberte obrázek pro vložení" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Vyberte soubor s bibliografií" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Uložit dokument LaTeX" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Uložit jako dokument LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exportovat do PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Vytvořit nový dokument" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Nahrát soubor" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Obrázek" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Nastavení Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Chyba při otevírání nedávného souboru: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Slova v textu" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Slova v hlavičkách" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Slova v plovoucích nadpisech" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Počet hlaviček" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Počet plovoucích elementů" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Počet vložených vzorců" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Počet zobrazených vzorců" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Tato funkce vyžaduje\n" "program texcount.\n" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "z %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" "Duplicate activation tab trigger dectected! Please choose another one.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Zadejte novou zkratku" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Zadejte novou zkratku nebo Backspace pro smazání" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Dosažen začátek, hledat od konce?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Dosažen konec, hledat od začátku?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Ukládám %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Zkuste to, prosím, znovu." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Nemohu převést text na UTF-8!\n" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Nyní nainstalovaná: %s\n" "Nyní dostupná: %s" #: ../src/update.c:116 msgid "Update Check" msgstr "Ověřit aktualizace" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s zaznamenal vážnou chybu a bude vyžadovat opětovné spuštění. Data, se " "kterými jste pracovali, budou obnovena, až znovu otevřene vaše dokumenty. " "Chyby, prosím, hlaště na: http://dev.midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Potvrzení" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Tučný text" #~ msgid "Center text" #~ msgstr "Zarovnat text na střed" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Chybový stav\n" #~ "aktivního dokumentu" #~ msgid "Italic text" #~ msgstr "Kurzíva" #~ msgid "Load a file" #~ msgstr "Nahrát soubor" #~ msgid "Pause updating the preview pane." #~ msgstr "Pozastavit aktualizaci panelu s náhledy." #~ msgid "Save the current file" #~ msgstr "Uložit současný soubor" #~ msgid "Underline text" #~ msgstr "Podtržený text" #~ msgid "Hello svn user!" #~ msgstr "Zdravím tě, uživateli svn!" #, fuzzy #~ msgid "Include document" #~ msgstr "Otevřít dokument LaTeX" #, fuzzy #~ msgid "New document" #~ msgstr "Vytvořit nový dokument" #, fuzzy #~ msgid "Open file" #~ msgstr "Otevřít" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Zarovnání\n" #~ "obsahu buňky." #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Určuje, zda buňky\n" #~ "mají rámečky." #~ msgid "Error output" #~ msgstr "Chybový výstup" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "Nepodařilo se inicializovat náhledy PDF.\n" #~ "\n" #~ "Zdá se, že váš dokument LaTeX obsahuje chyby nebo\n" #~ "nebyl nainstalován program \"%s\".\n" #~ "Další informace jsou dostupné na záložce Chybový výstup.\n" #~ "Opravte, prosím, vypsané chyby pro obnovení náhledů." #~ msgid "_Compile Bibliography" #~ msgstr "_Zkompilovat bibliografii" #~ msgid "_Insert Bibliography" #~ msgstr "_Vložit bibliografii" #~ msgid "Command: " #~ msgstr "Příkaz: " #~ msgid "Customize" #~ msgstr "Přizpůsobit" #~ msgid "Extra flags:" #~ msgstr "Další parametry:" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "Automaticky ukládám soubor %s" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Uložit jako dokument LaTeX" #~ msgid "_Tools" #~ msgstr "_Nástroje" #~ msgid "_Autocheck Spelling" #~ msgstr "_Automaticky ověřovat pravopis" #~ msgid "_Document Statistics" #~ msgstr "Statistiky _dokumentu" gummi-0.6.5/po/fr.po0000644000175000017500000006441012040524274011153 00000000000000# Copyright (C) Yvan Duron 2010 # This file is distributed under the same license as the PACKAGE package. # Yvan Duron , 2010-2011. # Olivier Brousse , 2010. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-11-07 20:44+0100\n" "Last-Translator: Yvan Duron , Olivier Brousse " "\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" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Statistiques du document" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Nom du document" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Mots dans:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "texte" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "Entêtes" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "Légendes des flotants" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Nombre:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "environnements flottant" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "environnements mathémtiques" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "Impossible d'initialiser l'aperçu PDF." #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Fichier:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Style:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Légende :" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Référence:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Échelle:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Lignes:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Colonnes:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Délimiteur :" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Non Délimité" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Parenthèses" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Crochets" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Accolades" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Simple ligne" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Doubles barres" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Taille idéale" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Ajuster à la largeur de la page" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Aligner à gauche" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Center" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Aligner à droite" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Aucune bordure" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Bordures extérieures" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Bordures à toutes les cellules" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Éditeur LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Fichier" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nouveau à partir d'un _modèle" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Ouvrir..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Enregistrer _sous..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exporter au format PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "onnedevraitpasmevoir" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "É_dition" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Affichage" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "Barre d'é_tat" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Barre d'_outils" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "Panneau _latéral droit" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "Utiliser SyncTex pour faire défiler l'aperçu à l'endroit de la dernière " "édition." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Synchroniser l'aperçu avec l'éditeur" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Agencement de l'aperçu" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Une seule page" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Pages à la suite, sur une colonne" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Plein écran" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Rechercher" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Rechercher le _suivant" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Rechercher le _précédent" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Document" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Compiler le _document" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Compile le document LaTeX\n" "et actualise l'aperçu." #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Options de compilation" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Lancer _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Lancer _BibTeX" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "_Statistiques du document" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Activer le _vérificateur orthographique" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Activer les extraits de code" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Projet" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Créer un nouveau projet" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Cette fonction nécessite que le document\n" "actuel soit sauvegardé. " #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Ouvrir un projet" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Fermer le projet" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "Aid_e" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Vérifier les mises à jo_urs" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Nouveau" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Ouvrir" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Enregistrer" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "bouton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "bouton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "bouton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "bouton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "bouton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "bouton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Image" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tableau" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matrice" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliographie" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Précédent" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Suivant" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "de 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Aperçu" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "Log de Construction" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Nombre de fichiers:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Chemin de la racine:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Nom du projet:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Document" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Chemin du fichier" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Sélectionne un fichier à ajouter\n" "au projet actif." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Supprime les fichiers\n" "sélectionnés du projet." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projet" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nom du fichier:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "aucun" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Références:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Détecter" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Détecte la présence d'un fichier\n" "BibTeX dans le document courant" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compiler" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Compiler la base de données\n" "de la bibliographie active" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "aucun fichier de bibliographie détecté" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titre" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "Auteur" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "Année" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtre:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Rechercher" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Rechercher:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Remplacer par:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Mots entiers seulement" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Rechercher en arrière" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Sensible à la case" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "R_emplacer" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "_Tout remplacer" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Sauvegardez tôt... sauvegardez souvent!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Créer un document à partir d'un modèle.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "Créer un modèle à partir du document courant" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Supprime les modèles sélectionnés" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Ouvrir les modèles sélectionnés" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "compiler quand inactif depuis: " #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compiler toutes les:" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Aucune" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Toujours" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Seulement avec la synchronisation de l'éditeur avec l'aperçu" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Jamais" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Préférences de Gummi" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Longues lignes" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Activer le retour à la ligne" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Ne pas couper les mots sur deux lignes" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Numéros de ligne" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Afficher les numéros de ligne" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Ligne actuelle" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Surligner la ligne actuelle" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Affichage" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Fin de tabulations" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Largeur des tabulations:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Insérer des _espaces au lieu des tabulations" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Indentation automatique" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Activer l'indentation automatique" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Extraits de code" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Configurer les extraits de code" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Enregistrement du fichier" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "Enregistrer _automatique toutes les:" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minutes" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Éditeur" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Police de l'éditeur" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Jeu de couleurs" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Police & couleurs" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Texte par défaut" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Commande" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive avec PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "Ce programme n'a pas été trouvé sur votre système." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive avec XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Options de typesetter" #: ../data/ui/prefs.glade.h:39 #, fuzzy msgid "Use shell-escape" msgstr "--shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "Actier SyncTeX" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Étapes de la compilation" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Compilation" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilation au format PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "secondes" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Utiliser les animations pour le défilement" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Taille du cache" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Aperçu" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Langue du vérificateur orthographique" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportation au format PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exporter automatiquement en PDF lors de l'enregistrement d'un document" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Autres options" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Réinitialiser" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Gestionnaire d'extraits de code" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Réinitialiser" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "_Réinitialiser tous les extraits de code" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Extraits de code:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Créer un nouveau document" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Réinitialiser tous les extraits de code" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Édition :" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centrer" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nom du fichier:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Activation" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Mot déclencheur:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Touche de raccourci:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Aucun fichier ou dossier\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "Impossible d'initialiser l'aperçu PDF" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "Le document semble vide ou invalide." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Le programme de compilation est absent." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "Le document actif contient des erreurs. L'aperçu instantané\n" "va fonctionne une fois que vous aurez corriger les erreurs.\n" "Des informations supplémentaires peuvent être disponibles dans\n" "l'onglet Build log.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" "Le fichier d'échange existe pour %s, êtes-vous sur de vouloir restorer " "depuis ce fichier?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Le fichier existe déjà. Voulez-vous le remplacer?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Chargement du modèle..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Compilation de la bibliographie..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "Bibliographie compilée avec succès" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "" "Erreur lors de la compilation du fichier de bibliographie ou fichier non " "détecté" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "Erreur lors de la compilation du fichier de bibliographie" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s chargé" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Voulez-vous enregistrer les modifications apportées au document?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Document" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Ouverture d'un document LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Sélectionner une image à insérer" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Sélectionner un fichier de bibliographie" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Sauvegarde du document LaTeX" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Enregistrer sous le document LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exporter au format PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Créer un nouveau projet" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "Tous les fichiers LaTeX" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Tous les fichiers texte" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Toutes les images" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Fichier bibtex" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Fichiers du projet Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Erreur lors du chargement du fichier récent: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "Erreur lors du lancement de Makeindex.." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "Lancement de Makeindex.." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Erreur lors du lancement de Makeindex.." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Mots dans le texte" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Mots dans les entêtes" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Mots dans les légendes de flottants" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Nombre de titres" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Nombre de flottants" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Nombre de formules en mode ligne" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Nombre de formules affichées" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Cette fonction nécessite que le document\n" "actuel soit sauvegardé. " #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "de %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "Le mot déclencheur est déjà utilisé! Choisissez en un autre.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Saisissez un nouveau raccourci clavier" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" "Saisissez un nouveau raccourci clavier, ou appuyez sur \"Retour arrière\" " "pour effacer" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "" "Le haut du fichier a été atteint, voulez-vous rechercher depuis le bas?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "" "Le bas du fichier a été atteint, voulez-vous rechercher depuis le haut?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Enregistrement de %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Merci de réessayer ultérieurement." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Ne peut pas convertir le texte en UTF-8!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "Impossible d'exporter en PDF...\n" "Le document comporte des erreurs.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Document non sauvegardé %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Version installée:\n" "%s\n" "\n" "Dernière version disponible:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Vérifier les mises à jours" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s a rencontré une erreur grave et nécessite un redémarrage. Vos données de " "travail seront rétablies lorsque vous rechargerez votre document. Merci de " "raporter les bogues à: http://dev.midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Gras" #~ msgid "Center text" #~ msgstr "Centrer" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "État d'erreur du\n" #~ "document courant" #~ msgid "Italic text" #~ msgstr "Italique" #~ msgid "Load a file" #~ msgstr "Charger un fichier" #~ msgid "Pause updating the preview pane." #~ msgstr "Arrête la mise à jour automatique de l'aperçu." #~ msgid "Save the current file" #~ msgstr "Enregistrer le fichier courant" #~ msgid "Underline text" #~ msgstr "Souligner" # (#define in environment.h) #~ msgid "Simple LaTeX Editor for GTK+" #~ msgstr "GTK+ a son editeur LaTeX simple!" gummi-0.6.5/po/pl.po0000644000175000017500000006412612040524274011163 00000000000000msgid "" msgstr "" "Project-Id-Version: Gummi 0.5.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-11-11 01:08+0100\n" "Last-Translator: Hubert Kowalski \n" "Language-Team: Polish Translation \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: _;gettext;gettext_noop\n" "X-Poedit-Basepath: .\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Poedit-Language: Polish\n" "X-Poedit-Country: POLAND\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-Bookmarks: 8,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" "X-Poedit-SearchPath-0: ...\n" #: ../data/ui/gummi.glade.h:1 #, fuzzy msgid "Document statistics" msgstr "Statystyka dokumentu" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Skompiluj" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Słów w tekście" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Tekst pogrubiony" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 #, fuzzy msgid "headers" msgstr "Słów w nagłówkach" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Słów w podpisach" #: ../data/ui/gummi.glade.h:9 #, fuzzy msgid "Number of:" msgstr "Liczba pływających elementów" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Plik:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Podpis:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Etykieta:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Skala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Wiersze:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Kolumny:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Klamra:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Bez nawiasów" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Nawiasy okrągłe" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Nawiasy kwadratowe" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Nawiasy klamrowe" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Pojedyncza linia" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Podwójna linia" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Dopasuj" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Dopasuj do szerokości" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Wyrównaj do lewej" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Wyrównaj do środka" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Wyrównaj do prawej" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Bez obramowania" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Obramowanie" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Obramowanie wszystkich komórek" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Edytor LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Plik" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nowy z Sza_blonu" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Otwórz…" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Z_apisz Jako..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "Eksport do pliku PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "niepowinienestegowidziec" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Edycja" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Widok" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "Pasek _stanu" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Pasek _narzędziowy" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "Panel _boczny" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Pojedyncza linia" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Pełen ekran" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Szukaj" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Znajdź _następne" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Znajdź p_oprzednie" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Skompiluj" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Skompiluj" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 #, fuzzy msgid "Document _Statistics" msgstr "Statystyka dokumentu" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Język sprawdzania pisowni" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Tworzy nowy dokument" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Ta funkcja wymaga\n" "programu texcount.\n" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Tworzy nowy dokument" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Pomoc" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Sprawdź _Aktualizacje" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Otwórz" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Zapisz" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "przycisk5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "przycisk6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "przycisk7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "przycisk1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "przycisk2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "przycisk3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Obrazek" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabela" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Macierz" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografia" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Poprzedni" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Następny" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "z 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Panel Podglądu" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 #, fuzzy msgid "Nr of files:" msgstr "Liczba pływających elementów" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Skompiluj" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Skompiluj" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Zapisywanie plików:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nazwa pliku:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "brak" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Odwołania:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/D" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Skompiluj" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Skompiluj aktywną \n" "bazę bibliografii" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "nie znaleziono pliku bibliografii" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Tytuł" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "Filtr:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Znajdź" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Znajdź:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Zastąp z:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Dopasuj całe słowa" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Szukaj wstecz" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Uwzględniaj wielkość liter" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "Z_mień" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Zastąp _Wszystkie" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Utwórz nowy dokument na bazie szablonu" #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Utwórz szablon na podstawie \n" " aktywnego dokumentu." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Usuwa wybrany szablon" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Otwórz wybrany szablon" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "kompiluj gdy nieaktytywny w ciągu" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "kompiluj co" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Brak" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferencje Gummi" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "Długość lini:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Włącz zawijanie lini" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Nie rozdzielaj słów pomiędzy dwie linie" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Numeruj linie:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Wyświetlaj numery linii" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Podświetlanie:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Wyróżnianie bieżącej linii" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Widok" #: ../data/ui/prefs.glade.h:17 #, fuzzy msgid "Tab stops" msgstr "Tabulacja" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Szerokość tabulacji" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "_Wstawianie spacji zamiast tabulatorów" #: ../data/ui/prefs.glade.h:20 #, fuzzy msgid "Automatic Indentation" msgstr "Automatyczne wcięcia" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Włącz automatyczne wcięcia" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Wstawki" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Zapisywanie plików:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Automatyczne zapisy co" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minut" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Edytor" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Czcionka edytora:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Schemat kolorów" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Domyślny tekst" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Komenda:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Komenda:" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Potwierdzenie" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilation PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "sekund" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Panel Podglądu" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Język sprawdzania pisowni" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "Compilation PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Różne" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Domyśle ustawienia" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Zarządzanie wstawkami" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "_Domyśle ustawienia" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Tworzy nowy dokument" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Domyśle ustawienia" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "_Edycja" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Tekst wycentrowany" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nazwa pliku:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Aktywacja" #: ../data/ui/snippets.glade.h:13 #, fuzzy msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Nie ma takiego pliku ani katalogu\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Plik już istnieje. Nadpisać?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Kompilacja pliku bibliografii..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografia skompilowana bez błędów" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Błąd kompilacji pliku bibliografii lub plik nie znaleziony" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "błąd przy kompilacji bibliografii" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s Wczytane" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Chcesz zapisać zmiany w dokumencie?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Otwiera dokument LaTeX" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Otwiera dokument LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Wybierz obrazek do wstawienia" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Wybierz plik bibliografii" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Zapisz dokument LaTeX" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Zapisz jako dokument LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Eksport do pliku PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Tworzy nowy dokument" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Wczytaj plik" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Obrazek" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Preferencje Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Błąd przy otwieraniu niedawno otwartego pliku %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Słów w tekście" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Słów w nagłówkach" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Słów w podpisach" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Liczba nagłówków" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Liczba pływających elementów" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Liczba wzorów w liniach" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Liczba wzorów odgraniczonych" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Ta funkcja wymaga\n" "programu texcount.\n" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 #, fuzzy msgid "Type a new shortcut" msgstr "Tworzy nowy dokument" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Osiągnięto górną granicę, zacząć od dołu?”" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Osiągnięto dolną granicę, zacząć od góry?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Zapisywanie %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Proszę spróbować później." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Nie można dokonać konwersji do UTF-8!\n" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Obecnie zainstalowano:\n" "%s\n" "\n" "Obecnie dostępna:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Sprawdzenie aktualizacji" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Potwierdzenie" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Tekst pogrubiony" #~ msgid "Center text" #~ msgstr "Tekst wycentrowany" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Status błędów dla\n" #~ "akrywnego dokumentu" #~ msgid "Italic text" #~ msgstr "Pochylenie" #~ msgid "Load a file" #~ msgstr "Wczytaj plik" #~ msgid "Pause updating the preview pane." #~ msgstr "Wstrzymaj aktualizacje panelu podglądu" #~ msgid "Save the current file" #~ msgstr "Zapisuje bieżący plik" #~ msgid "Underline text" #~ msgstr "Podkreśl tekst" #, fuzzy #~ msgid "Include document" #~ msgstr "Otwiera dokument LaTeX" #, fuzzy #~ msgid "New document" #~ msgstr "Tworzy nowy dokument" #, fuzzy #~ msgid "Open file" #~ msgstr "Ouvrir" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Wyrównanie\n" #~ "zawartości komórki" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Ustala czy\n" #~ "komórki mają obramowanie" #~ msgid "Error output" #~ msgstr "Wyjście błędów" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "PDF Preview could not initialize.\n" #~ "\n" #~ "It appears your LaTeX document contains errors or\n" #~ "the program `%s' was not installed.\n" #~ "Additional information is available on the Error Output tab.\n" #~ "Please correct the listed errors to restore preview." #~ msgid "_Compile Bibliography" #~ msgstr "Skompiluj Bibliografię" #~ msgid "_Insert Bibliography" #~ msgstr "Wstaw _Bibliografię" #, fuzzy #~ msgid "Customize" #~ msgstr "Skompiluj" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "Automatyczny zapis pliku %s" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Zapisz jako dokument LaTeX" #~ msgid "_Tools" #~ msgstr "_Narzędzia" #~ msgid "_Autocheck Spelling" #~ msgstr "_Automatyczne sprawdzanie pisowni" #~ msgid "_Document Statistics" #~ msgstr "Statystyka _dokumentu" #~ msgid "" #~ "\n" #~ "Gummi has encountered a serious error and requires a restart, you can " #~ "find your file in the %s directory\n" #~ msgstr "" #~ "\n" #~ "Gummi napodkał poważny problem i wymaga ponownego uruchomienia, możesz " #~ "znaleźć swój plik w katalogu %s\n" #~ msgid "" #~ "Search document for\n" #~ "bibliography databases" #~ msgstr "" #~ "Przeszukaj dokument za\n" #~ "bazami bibliografii" #~ msgid "Changes will become active on next start" #~ msgstr "Zmiany będą widoczne po następnym uruchomieniu" #~ msgid "PDF Compiling:" #~ msgstr "Compilation PDF:" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Gras" #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Article" #~ msgid "Book" #~ msgstr "Livre" gummi-0.6.5/po/ar.po0000644000175000017500000005204312040524274011145 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-03-22 17:7+0300\n" "Last-Translator: Hamad Mohammad\n" "Language-Team: www.linuxac.org\n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 #, fuzzy msgid "Document statistics" msgstr " " #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr " PDF" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr " " #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr " " #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 #, fuzzy msgid "headers" msgstr " " #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "" #: ../data/ui/gummi.glade.h:9 #, fuzzy msgid "Number of:" msgstr " " #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr ":" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr " :" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr ":" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr ":" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr ":" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr ":" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr ":" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr " " #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr " " #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr " " #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr " " #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr " " #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr " " #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr " " #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr " " #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr " " #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr " " #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr " " #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr " ..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr " PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr " " #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr " " #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr " " #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr " " #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr " " #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr " " #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr " " #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr " PDF" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr " PDF" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 #, fuzzy msgid "Document _Statistics" msgstr " " #: ../data/ui/gummi.glade.h:83 msgid "Enable S_pell Checking" msgstr "" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr " " #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr " " #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr " " #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "افتح" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "احفظ" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "صورة" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "جدول" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr " " #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr " PDF" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr " PDF" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr " " #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr " " #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr " " #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr ":" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "العنوان" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr ":" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "ابحث" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr " :" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr " :" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr " " #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr " " #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr " " #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr " " #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr " .." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr " " #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr " " #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr " " #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr " Gummi" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr " " #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr " " #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr " " #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr " " #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr " " #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "اعرض" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr " :" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr " " #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr " " #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr " " #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "قصاصات" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr " " #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr " " #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "المحرر" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr " " #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr " " #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr " " #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr " " #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr " " #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr " " #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr " PDF" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr " PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr " " #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr " PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr " " #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr " " #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr " " #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr ":" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr " " #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr " " #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr ":" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr " " #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr " " #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "تنشيط" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr " :" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr " " #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr " ..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr " " #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr " " #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s " #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr " " #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr " LaTeX" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr " LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr " " #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr " " #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr " LaTeX" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr " LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr " PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr " " #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr " " #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 msgid "Supported Image files" msgstr "" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr " Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr " " #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr " " #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr " " #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "" #: ../src/gui/gui-menu.c:591 msgid "This function requires an active document" msgstr "" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr " " #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr " %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr " ." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" #: ../src/update.c:116 msgid "Update Check" msgstr " " #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 msgid "Confirmation" msgstr "" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr " " #~ msgid "Center text" #~ msgstr " " #~ msgid "Italic text" #~ msgstr " " #~ msgid "Load a file" #~ msgstr " " #~ msgid "Save the current file" #~ msgstr " " #~ msgid "Underline text" #~ msgstr " " #~ msgid "Hello svn user!" #~ msgstr " svn" #, fuzzy #~ msgid "Include document" #~ msgstr " LaTeX" #, fuzzy #~ msgid "New document" #~ msgstr " " #, fuzzy #~ msgid "Open file" #~ msgstr " " #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr " " #~ msgid "Error output" #~ msgstr " " #~ msgid "_Compile Bibliography" #~ msgstr " " #~ msgid "_Insert Bibliography" #~ msgstr " " #~ msgid "Command: " #~ msgstr ": " #~ msgid "Extra flags:" #~ msgstr " :" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr " %s " #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr " LaTeX" #~ msgid "_Document Statistics" #~ msgstr " " gummi-0.6.5/po/nl.po0000644000175000017500000006355612040524274011167 00000000000000msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Alexander van der Mey \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" #: ../data/ui/gummi.glade.h:1 #, fuzzy msgid "Document statistics" msgstr "Document statistieken" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Document naam" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Woorden in:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "tekst" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Aantal:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "PDF voorbeschouwer kon niet gestart worden" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Bestand:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Stijl:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Onderschrift:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Label:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Schaal:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Rijen:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Kolommen" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Bracket:" #: ../data/ui/gummi.glade.h:21 #, fuzzy msgid "Unbracketed" msgstr "Bracket:" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Brackets:" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Braces" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Enkele lijn" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Dubbele lijn" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Passend" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Paginabreed" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Links uitlijnen" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Gecentreerd" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Rechts uitlijnen" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Geen omlijning" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Omlijn buitenkant" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Omlijn alle cellen" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "Bestand" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nieuw vanuit template" #: ../data/ui/gummi.glade.h:56 #, fuzzy msgid "_Open..." msgstr "Openen" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Opslaan als" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "Exporteer naar PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "Wijzig" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "Bekijk" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "Statusbalk" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Werkbalk" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "Zijpaneel" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Sync Voorbeschouwer met Editor" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Pagina layout in voorbeschouwer" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Enkele lijn" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Continue, Eén Column" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "Volledig scherm" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "Zoeken" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Zoek volgende" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Zoek vorige" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Compileer" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Compileer" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Compileer LaTeX document\n" "en update preview." #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Compileer Instellingen" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Uitvoeren van _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Uitvoeren van _BibTeX" #: ../data/ui/gummi.glade.h:82 #, fuzzy msgid "Document _Statistics" msgstr "Document _Statistieken" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "S_pellchecker inschakelen" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "S_nippets inschakelen" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Creer nieuw document" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Deze functie vereist dat het \n" "actieve document opgeslagen is." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Creëer nieuw document" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Controleer _Updates" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Nieuw" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Openen" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Opslaan" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Afbeelding" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabel" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografie" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Vorige" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Volgende" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Voorbeschouwer" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "Bouw Log" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Aantal bestanden:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Basis pad:" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Compileer" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Document" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Bestandspad:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Selecteer een bestand om het \n" "toe te voegen aan het project." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Bestandsnaam:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referenties:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Opsporen" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Spoor vermelding van een bibtex\n" "bestand in het huidige document" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compileer" #: ../data/ui/gummi.glade.h:132 #, fuzzy msgid "" "Compile the active \n" "bibliography database" msgstr "Compileer bibliografie" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "Geen bibliografie bestanden gedetecteerd" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titel" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "Auteur" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "Jaar" #: ../data/ui/gummi.glade.h:138 #, fuzzy msgid "filter:" msgstr "Bestand:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Zoeken" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Zoeken naar:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Vervangen door:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Enkel complete woorden" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Achterwaards zoeken" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Hoofdlettergevoelig" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "Vervang" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Alles vervangen" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 #, fuzzy msgid "Create new document from template.." msgstr "Creëer nieuw document van template.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Maak een template van het\n" "huidige actieve document." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Verwijder de geselecteerde template" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Open de geselecteerde template" #: ../data/ui/gummi.glade.h:153 msgid "10" msgstr "" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "compileer wanneer idle voor" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compileer elke" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Geen" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Altijd" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Alleen wanneer voorbeschouwer gesyncd is met editor" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Nooit" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Gummi Voorkeuren" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "Regelafbreking:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Regelafbreking inschakelen" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Woorden niet over twee regels splitsen" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Regelnummers:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Regelnummers weergeven" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Markering:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Huidige regel markeren" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Beeld" #: ../data/ui/prefs.glade.h:17 #, fuzzy msgid "Tab stops" msgstr "Vervangen door:" #: ../data/ui/prefs.glade.h:18 #, fuzzy msgid "Tab width:" msgstr "Vervangen door:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Gebruik spaties in plaats van tabs" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Automatische indentatie" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Knipsels" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Configureer snippets" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Bestanden opslaan:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "Automatisch bestanden opslaan elke" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minuten" #: ../data/ui/prefs.glade.h:27 #, fuzzy msgid "Editor" msgstr "Wijzig" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Editor lettertype:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Kleur Schema" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Standaard tekst" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Typesetter commando:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "Dit programma is niet aangetroffen op uw systeem" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Typesetter commando:" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Compileer stappen" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Compilatie" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "PDF Compilatie" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "seconden" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Cache grootte" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Voorbeschouwer" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Spell checker taal:" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "PDF Compilatie" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exporteer PDF automatsch wanneer document opgeslagen" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Overigen" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "Herstel standaarden" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Knipselbeheer" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "Herstel standaarden" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Creëer nieuw document" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "Herstel standaarden" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "Wijzig:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centreer tekst" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Bestandsnaam:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Activatie" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr "" #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Bestand of pad niet gevonden\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "Voorbeschouwer kon niet gestart worden." #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "Document lijkt leeg of ongeldig te zijn." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Compileer programma kon niet gevonden worden." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Dit bestand bestaat al. Overschrijven?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 #, fuzzy msgid "Compiling bibliography file..." msgstr "Compileer bibliografie" #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "Geen bibliografie bestanden gedetecteerd" #: ../src/gui/gui-main.c:599 #, fuzzy msgid "Error compiling bibliography file or none detected..." msgstr "Geen bibliografie bestanden gedetecteerd" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "Compileer bibliografie" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "" #: ../src/gui/gui-main.c:744 #, c-format msgid "Do you want to save the changes to %s?" msgstr "Wil je de wijzigingen opslaan naar %s?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "dit document" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "Onopgeslagen Wijzigingen" #: ../src/gui/gui-main.c:775 #, fuzzy msgid "Open LaTeX document" msgstr "Creer nieuw document" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Selecteer een plaatje om in te voegen" #: ../src/gui/gui-main.c:779 #, fuzzy msgid "Select bibliography file" msgstr "Compileer bibliografie" #: ../src/gui/gui-main.c:812 #, fuzzy msgid "Save LaTeX document" msgstr "Creer nieuw document" #: ../src/gui/gui-main.c:813 #, fuzzy msgid "Save as LaTeX document" msgstr "Creer nieuw document" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exporteer naar PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Creer nieuw document" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "LaTeX bestanden" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Text bestanden" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Afbeelding" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Bibtex bestanden" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Gummi project bestanden" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Fout bij laden van recent bestand: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 #, fuzzy msgid "Words in text" msgstr "Woorden in tekst" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Deze functie vereist dat het \n" "actieve document opgeslagen is." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Typ een nieuwe sneltoets" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Bovenkant bereikt, zoeken vanaf onderkant?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Onderkant bereikt, zoeken vanaf bovenkant?" #: ../src/iofunctions.c:130 #, fuzzy, c-format msgid "Saving %s..." msgstr "Opslaan als" #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Niet-opgeslagen Document %d" #: ../src/update.c:114 #, fuzzy, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "\n" "\n" "Momenteel verkrijgbaar:\n" #: ../src/update.c:116 msgid "Update Check" msgstr "Controleer Updates" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 #, fuzzy msgid "Confirmation" msgstr "Onderschrift:" #~ msgid "Bold text" #~ msgstr "Vette tekst" #~ msgid "Center text" #~ msgstr "Centreer tekst" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Fout status voor\n" #~ "actieve document" #~ msgid "Italic text" #~ msgstr "Cursief" #~ msgid "Load a file" #~ msgstr "Openen" #~ msgid "Pause updating the preview pane." #~ msgstr "Pauzeer het updaten van de voorbeschouwer." #, fuzzy #~ msgid "Save the current file" #~ msgstr "Creer nieuw document" #~ msgid "Underline text" #~ msgstr "Onderstreep tekst" #, fuzzy #~ msgid "Include document" #~ msgstr "Creer nieuw document" #, fuzzy #~ msgid "New document" #~ msgstr "Creer nieuw document" #, fuzzy #~ msgid "Open file" #~ msgstr "Openen" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "Uitlijning van de cel inhoud" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Bepaalt of de cellen\n" #~ "randen hebben" #~ msgid "Error output" #~ msgstr "Fouten overzicht" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "PDF preview kon niet genitialiseerd worden." #~ msgid "_Compile Bibliography" #~ msgstr "Compileer bibliografie" #~ msgid "_Insert Bibliography" #~ msgstr "Bibliografie invoegen" #, fuzzy #~ msgid "Customize" #~ msgstr "Compileer" #, fuzzy #~ msgid "Autosaving file %s" #~ msgstr "Enkele lijn" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Creer nieuw document" #, fuzzy #~ msgid "_Tools" #~ msgstr "Werkbalk" #~ msgid "_Autocheck Spelling" #~ msgstr "Controleer spelling" #~ msgid "_Document Statistics" #~ msgstr "Document statistieken" #~ msgid "Changes will become active on next start" #~ msgstr "Wijzigingen worden actief bij volgende start" #~ msgid "PDF Compiling:" #~ msgstr "PDF Compilatie:" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Vette tekst" #, fuzzy #~ msgid "Save File..." #~ msgstr "Opslaan als" #, fuzzy #~ msgid "Document Statistic" #~ msgstr "Document statistieken" #~ msgid "Article" #~ msgstr "Artikel" #~ msgid "Book" #~ msgstr "Boek" #~ msgid "Letter" #~ msgstr "Letter" # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Add your name to msgstr to have it included in the credits: #~ msgid "translator" #~ msgstr "Alexander van der Mey" #, fuzzy #~ msgid "Save?" #~ msgstr "Opslaan" #~ msgid "Currently installed:\n" #~ msgstr "Momenteel genstalleerd:\n" #~ msgid "" #~ "The server could not be contacted.\n" #~ "\n" #~ msgstr "De server kon niet bereikt worden.\n" #~ msgid "internet connection." #~ msgstr "internet verbinding." #~ msgid "Error" #~ msgstr "Fout" gummi-0.6.5/po/es.po0000644000175000017500000007037312040524274011160 00000000000000# Gummi Spanish language file. # Copyright (C) 2010 # Carlos Salas Contreras , 2010. # msgid "" msgstr "" "Project-Id-Version: Gummi ES Language\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-12-17 17:06-0300\n" "Last-Translator: Carlos Salas C. \n" "Language-Team: Carlos Salas Contreras \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: Chile\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Estadísticas del Documento" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Nombre del Documento" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Palabras en:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "texto" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "Cabeceras" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "Leyendas flotantes" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Número de:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "flotantes" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "Ambientes Matemáticos" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "No se pudo inicializar vista preliminar PDF" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Archivo:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Estilo:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Leyenda" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Etiqueta:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Escala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Filas:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Columnas:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Símbolo Cierre:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Sin Corchetes" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Paréntesis" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Corchetes" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Llaves" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Línea simple" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Doble línea" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Mejor Forma" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Ajustar al ancho de página" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Alinear a la Izquierda" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Centrar" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Alinear a la derecha" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Sin Bordes" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Borde externo" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Borde a todas las celdas" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editor LaTeX " #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Archivo" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nuevo desde Plan_tilla" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Abrir..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Guard_ar como..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exportar como PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "nomeves" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Editar" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Ver" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Barra de Estado" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Barra de Herramientas" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Panel Derecho" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "Usar SyncTex para desplazar la vista previa a la parte del documento que fué " "editado por última vez." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Sincronizar previsualización con Editor" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Diseño de página en la vista previa" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Página Simple" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Continuo, Una Columna" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Pantalla Completa" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Buscar" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Buscar Sigui_ente" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Buscar _Anterior" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Documento" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Compilar _Documento" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "Compilar documento LaTeX" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Ver Opciones de Compilación" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Ejecutar _MakeIndex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Ejecutar _BibTeX" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "E_stadísticas del Documento" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Habilitar revisión ortográfica:" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "S_nippets" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Proyecto" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Crear Proyecto nuevo" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Esta función requiere que el\n" "documento actual sea guardado." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Abrir Proyecto" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Cerrar Proyecto" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Ayuda" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Buscar _Actualizaciones" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Nuevo" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Abrir" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Guardar" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Imagen" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabla" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matriz" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografía" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Anterior" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Siguiente" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "de 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Previsualización Panel" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "Registro de Compilación" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Nro. de Archivos" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Ruta raíz" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Nombre del Proyecto" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Documento" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Directorio del Archivo" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Seleccione un archivo para agregarlo \n" "al proyecto actual" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Quitar archivo\n" "seleccionado del proyecto." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Proyecto" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nombre de Archivo:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "ninguno" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referencia:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Detectar" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "Detectar la mención de bibtex" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compilar" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Compilar la base de datos \n" "de bibliografía activa" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "No se ha detectado bibliografía" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Título" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "Autor" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "Año" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "Filtro:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Buscar" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Buscar por:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Reemplazar con:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Coincidir solo palabra completa" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Búsqueda hacia atrás" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Coincidir mayúsculas y minúsculas" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "_Reemplazar" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Reemplaz_ar Todos" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Guardar temprano.. guardar frecuentemente!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Crear documento nuevo desde plantilla.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Hacer plantilla desde \n" "el documento activo" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Borrar plantillas seleccionadas" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Abrir plantilla seleccionada" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "compilar cuando este inactivo por" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compilar cada" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Ninguno" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Siempre" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Solo cuando sincronice vista previa con el editor" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Nunca" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferencias de Gummi" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Ajuste de texto:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Activar ajuste del texto" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "No dividir palabras sobre 2 lineas" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Número de Línea:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Ver número de líneas" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Resaltado" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Resaltar línea actual" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Ver" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabulaciones:" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Largo tabulación:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Insertar e_spacios en lugar de tabulaciones" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Indentación Automática" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Habilitar indentación automática" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Snippets" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Configurar snippets" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Guardando archivo:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Autoguardar archivos cada" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minutos" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Fuente del Editor:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Combinación de colores" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Color & Fuente" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Texto Predeterminado" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Comando de compilación" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive con PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "No se encontró este programa en su sistema." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive con XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Opciones de compilación" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "Usar shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "Activar SyncTeX" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Pasos de Compilación" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Compilación" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilando PDF:" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "segundos" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Usar desplazamiento animado" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Tamaño de Caché" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Vista Previa" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Lenguaje de revisión ortográfica:" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportando PDF:" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exportar automáticamente a PDF al guardar" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Misceláneo:" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Restablecer predeterminados" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Administrador de Snippets" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Restablecer" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "_Restablecer predeterminados" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Snippets:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Crear documento nuevo" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Restablecer predeterminados" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "_Editar" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Texto centrado" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nombre de Archivo:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Activación" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Disparador de tabulación" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Tecla de acceso directo:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: No existe el archio o el directorio\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "No se puede inicializar vista previa PDF" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "El documento está vacío o es inválido" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "No se ha encontrado programa de compilación." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "El documento actual contiene errores. La vista previa \n" "no se reanudará automáticamente cuando esos errores\n" "sean resueltos. Puede encontrar más información en la\n" "pestaña Registro de Compilación.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "El actual documento aparece como archivo LaTeX inválido.\n" "Puede seguir trabajando en el, cargando el texto por\n" "defecto o usando el menú Proyecto para agregarlo al\n" "proyecto actual.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "El programa de compilación elegido no puede ser encontrado.\n" "Por favor restaure el programa o seleccione un comando\n" "alternativo desde el menú Preferencias. La vista previa \n" "no se reanudará hasta que reinicie Gummi.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "Existe archivo de intercambio para %s, ¿quiere recuperarlo desde ahí?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "El archivo ya existe, ¿Sobrescribir?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Cargando Plantilla ..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Compilando archivo de bibliografía..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografía compilada con errores" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Error compilando la bibliografía o archivo no detectado..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "error compilando archivo de bibliografía" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s cargado" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "¿Desea guardar los cambios efectuados?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Crear documento nuevo" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Crear documento nuevo" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Seleccione una imagen para insertar" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Compilando archivo de bibliografía..." #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Crear documento nuevo" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Crear documento nuevo" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "_Exportar como PDF" #: ../src/gui/gui-main.c:817 msgid "Create project" msgstr "Crear proyecto" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "Archivo LaTeX" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Archivo de Texto" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Imagen" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Archivo BibTeX" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Archivos de proyectos Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Error cargando archivo reciente: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "Error ejecutando MakeIndex.." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "Ejecutando MakeIndex.." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Error ejecutando MakeIndex.." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Palabras en texto" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Palabras en cabeceras" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Palabras en leyenda flotante" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Número de cabeceras" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Número de flotantes" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Número de math en líneas" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Número de math mostrados" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Esta función requiere que el\n" "documento actual sea guardado." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "de %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" "Se ha detectado disparador de tabulación duplicado! Por favor seleccione " "otro.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Crear documento nuevo" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Escriba nuevo acceso directo, o presione retroceso para borrar" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Parte superior alcanzada, ¿Buscar desde abajo?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Parte inferior alcanzada, ¿Buscar desde arriba?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Guardando %s" #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%S \n" "Por favor intente de nuevo después." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "No se puede convertir texto a UTF-8!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "Imposible exportar PDF.. \n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Documento sin Guardar %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Actualmente instalado:\n" "%s\n" "Actualmente disponible:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Buscar Actualizaciones" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s ha encontrado un error grave y requiere ser reiniciado. Su trabajo será " "recuperado cuando cargue el documento nuevamente. Por favor reporte los " "errores en: http://dev.midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Confirmación" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Negrita" #~ msgid "Center text" #~ msgstr "Texto centrado" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Error de estado para \n" #~ "documento activo" #~ msgid "Italic text" #~ msgstr "Texto Itálico" #~ msgid "Load a file" #~ msgstr "Cargar Archivo" #~ msgid "Pause updating the preview pane." #~ msgstr "Pausar actualización del panel de previsualización" #~ msgid "Save the current file" #~ msgstr "Guardar archivo actual" #~ msgid "Underline text" #~ msgstr "Texto subrayado" #~ msgid "Hello svn user!" #~ msgstr "Hola usuario svn!" #, fuzzy #~ msgid "Include document" #~ msgstr "Crear documento nuevo" #, fuzzy #~ msgid "New document" #~ msgstr "Crear documento nuevo" #, fuzzy #~ msgid "Open file" #~ msgstr "Abrir Archivo..." #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Alineación del \n" #~ "contenido de la celda." #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Determinar si las celdas \n" #~ "tienen bordes de linea." #~ msgid "Error output" #~ msgstr "Error de salida" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "La vista previa PDF no se pudo iniciar. \n" #~ "\n" #~ "Al parecer el documento LaTeX tiene errores o\n" #~ "el programa `%s' no está instalado.\n" #~ "Hay información adicional en la pestaña de error de salida.Por favor, " #~ "corrija los errores encontrados y haga click en esta área \n" #~ "para recargar el panel de vista previa. " #~ msgid "_Compile Bibliography" #~ msgstr "_Compilar Bibliografía" #~ msgid "_Insert Bibliography" #~ msgstr "_Insertar Bibliografía" #~ msgid "Command: " #~ msgstr "Comando:" #~ msgid "Customize" #~ msgstr "Compilar" #~ msgid "Extra flags:" #~ msgstr "Flags extra:" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "Autoguardando archivo %s" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Crear documento nuevo" #~ msgid "_Tools" #~ msgstr "_Herramientas" #~ msgid "_Autocheck Spelling" #~ msgstr "_Revisar Ortografía Automáticamente" #~ msgid "_Document Statistics" #~ msgstr "_Estadísticas de Documento" #~ msgid "" #~ "\n" #~ "Gummi has encountered a serious error and requires a restart, you can " #~ "find your file in the %s directory\n" #~ msgstr "" #~ "\n" #~ "Gummi ha encontrado un error grave y requiere ser reiniciado, puede " #~ "buscar su archivo en el directorio %s\n" #~ msgid "" #~ "Search document for\n" #~ "bibliography databases" #~ msgstr "" #~ "Buscar documento para \n" #~ "database de bibliografía" #~ msgid "Changes will become active on next start" #~ msgstr "Los cambios se activarán en el próximo inicio" #~ msgid "Save File..." #~ msgstr "Guardar Archivo..." gummi-0.6.5/po/hu.po0000644000175000017500000006331112040524274011157 00000000000000# Hungatian translation of Gummi # This file is distributed under the same license as the Gummi package. # # Translator: # Meskó Balázs , 2012. # msgid "" msgstr "" "Project-Id-Version: Gummi 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2012-08-13 13:39+0200\n" "Last-Translator: Meskó Balázs \n" "Language-Team: magyar <>\n" "Language: \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" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Dokumentum statisztika" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Dokumentum neve" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Szavak" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "szövegben" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "fejlécekben" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "feliratokban" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Darabszám" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "úszó objektumok" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "matematikai környezetek" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "A PDF előnézet nem tölthető be." #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Fájl:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Stílus:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Felirat:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Címke:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Nagyítás:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Sorok:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Oszlopok:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Zárójel:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Zárójel nélkül" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Kerek zárójel" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Szögletes zárójel" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Kapcsos zárójel" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Egy vonal" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Kettős vonal" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Legjobb illeszkedés" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Oldalszélesség" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Balra igazítás" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Középre igazítás" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Jobbra igazítás" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Nincs keret" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Csak külső keret" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Keret minden cellában" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - LaTeX szerkesztő" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Fájl" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Új, _sablonból" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Megnyitás…" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "M_entés másként…" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "Exportálás _PDF-be" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "Szer_kesztés" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Nézet" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Állapotsor" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Eszköz_tár" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Jobb panel" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "Használja a SyncTeX-et, hogy azt a részét mutassa a dokumentumnak, amelyet " "utoljára szerkesztett." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Előnézet egyeztetése a szerkesztővel" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Oldalak elrendezése az előnézetben" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Egyetlen oldal" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Folyamatos, egy oszlopban" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "Tel_jes képernyő " #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "Ke_resés" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Kö_vetkező" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "E_lőző" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Dokumentum" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "_Fordítás" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Dokumentum fordítása\n" "és előnézet frissítése." #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Fordítási _opciók" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "Fordítási fájlok _takarítása" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "_Makeindex futtatása" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "_BibTeX futtatása" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "Dokumentum _statisztika" #: ../data/ui/gummi.glade.h:83 msgid "Enable S_pell Checking" msgstr "_Helyesírás ellenőrzés" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Kódrészletek e_ngedélyezése" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Projekt" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Új projekt létrehozása" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "A funkció használatához az\n" "aktív dokumentumot menteni kell. " #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Projekt megnyitása" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Projekt bezárása" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Súgó" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "_Felhasználói kézikönyv" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Frissítések _keresése" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Ú_j" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "_Megnyitás" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "M_entés" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Kép" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Táblázat" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Mátrix" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliográfia" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Előző" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Következő" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "/ 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Előnézeti panel" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "Fordítási napló" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Fájlok száma:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Gyökér útvonal:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Projektnév:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Dokumentum" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Fájl útvonal:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Válasszon ki egy fájlt az \n" "aktív projekthez adáshoz. " #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "A kiválasztott fájl\n" "törlése a projektből." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projekt" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Fájlnév:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "nincs" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referenciák:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Keresés" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Bibtex fájlra hivatkozás\n" "keresése az aktuális dokumentumban" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Fordítás" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Fordítsa le az aktív \n" "bibliográfia adatbázist" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "bibliográfia fájl nem található" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Cím" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "Szerző" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "Év" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "szűrés:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Keresés" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Keresett szöveg:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Csere ezzel:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Csak teljes szavak" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Visszafelé" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Kis- és nagybetű különbözik" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "Cse_re" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Mi_ndet cseréli" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Mentsen korán… mentsen gyakran!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Új dokumentum létrehozása sablonból…" #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Sablon készítése az \n" "aktuális dokumentumból." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Törli a kiválasztott sablont" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Kiválasztott sablon megnyitása" #: ../data/ui/gummi.glade.h:153 msgid "10" msgstr "10" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "fordítás, ha inaktív eddig:" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "fordítás ilyen időközönként:" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Nincs" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Mindig" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Csak akkor, ha az előnézet szinkronban van a szerkesztővel" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Soha" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Gummi beállítások" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Szöveg tördelése" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Sortörés engedélyezése" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Ne törje a szavakat két sorba" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Sorok számozása" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Sorok számának megjelenítése" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Kiemelés" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Jelenlegi sor kiemelése" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Nézet" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabulátorok" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Tabulátorok szélessége:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "_Szóközök beillesztése tabulátorok helyett" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Automatikus behúzás" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "Automatikus behúzás _engedélyezése" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Kódrészletek" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Kódrészletek beállítása" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Fájlmentés" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Automatikus mentés ilyen időközönként:" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "perc" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Szerkesztő" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Szerkesztő betűkészlete" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Színséma" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Betűk és színek" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Alapértelmezett szöveg" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Szövegszedő parancs" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive, PdfTeX fordítóval" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "A program nem található az Ön rendszerén." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive, XeTeX fordítóval" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Szövegszedő opciók" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "shell-escape kapcsoló használata" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "SyncTeX használata" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Fordítási lépések" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Fordítás" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "PDF fordítás" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "másodperc" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Animált görgetés használata" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Gyorsítótár mérete" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Előnézet" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Helyesírás-ellenőrzés nyelve" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "PDF exportálás" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Automatikusa exportálás PDF-be mentéskor" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Egyebek" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Alapértelmezések visszaállítása" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Kódrészlet-kezelő" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Visszaállítás" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "Minden kódrészlet visszaállítása" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Kódrészletek:" #: ../data/ui/snippets.glade.h:5 msgid "Create a new snippet" msgstr "Új létrehozása" #: ../data/ui/snippets.glade.h:6 msgid "Remove selected snippet" msgstr "Kiválasztott törlése" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Szerkesztés:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "Makró beillesztése" #: ../data/ui/snippets.glade.h:9 msgid "selected text" msgstr "kijelölt szöveg" #: ../data/ui/snippets.glade.h:10 msgid "filename" msgstr "fájlnév" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "fájlnév kiterjesztés nélkül" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Aktiválás" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Előhozás tabulátorral:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Gyorsindító gombok:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Nincs ilyen fájl vagy mappa\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "A PDF előnézet nem betölthető." #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "A dokumentum üresnek vagy érvénytelennek tűnik." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "A fordítóprogram hiányzik." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "Az aktív dokumentum hibákat tartalmaz. Az élő \n" "előnézet funkció újra működni fog, ha ezek a hibák \n" "javításra kerülnek. További információt a Fordítási \n" "napló fülön találhat. \n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "Az aktuális dokumentum érvénytelen LaTeX fájlnak tűnik. \n" "Tovább dolgozhat rajta, vagy betöltheti az alapértelmezett\n" "szöveget, vagy használhatja a Projekt menüt, hogy egy \n" "aktív projekthez adja.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "A kiválasztott fordítóprogram nem található. Kérem \n" "állítsa vissza a programot vagy válasszon másik \n" "szövegszedő parancsot a Beállítások menüből. Az élő\n" "előnézet funkció nem fog működni a Gummi következő\n" "indításáig.\n" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "Létezik cserefájl a %s fájlhoz, szeretné helyreállítani?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "A fájl már létezik. Felülírja?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Sablon betöltése…" #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Bibliográfia fájl fordításaválasztása" #: ../src/gui/gui-main.c:595 msgid "Bibliography compiled without errors" msgstr "A bibliográfia hibamentesen lefordult" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "A bibliográfia fájl fordítása során hiba történt, vagy nem található…" #: ../src/gui/gui-main.c:601 msgid "Error compiling bibliography file" msgstr "A bibliográfia fájl fordítása során hiba történt" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s betöltve" #: ../src/gui/gui-main.c:744 #, c-format msgid "Do you want to save the changes to %s?" msgstr "Szeretné menteni a változásokat ebben a fájlban: %s?" #: ../src/gui/gui-main.c:745 msgid "this document" msgstr "ez a dokumentum" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "Mentetlen változások" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "LaTeX dokumentum megnyitása" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Válassza ki a beillesztendő képet" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Válassza ki a bibliográfia fájlt" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "LaTeX dokumentum mentése" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Mentés mint LaTeX dokumentum" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exportálás PDF-be" #: ../src/gui/gui-main.c:817 msgid "Create project" msgstr "Projekt létrehozása" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "LaTeX fájlok" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Szöveges fájlok" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 msgid "Supported Image files" msgstr "Támogatott képfájlok" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Bibtex fájlok" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Gummi projektfájlok" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Fájl betöltési hiba: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "Fordítási fájlok sikeresen törölve…" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "Hiba történt a fordítási fájlok törlése közben…" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "Makeindex futtatása…" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Hiba a Makeindex futtatásakor…" #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Szavak a szövegben" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Szavak a fejlécekben" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Szavak az úszó objektumokban" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Fejlécek száma" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Úszó objektumok száma" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Sorközi matematikai mód darabszáma" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Kiemelt matematikai mód darabszáma" #: ../src/gui/gui-menu.c:591 msgid "This function requires an active document" msgstr "A funkcióhoz szükséges egy aktív dokumentum" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "/ %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "Az aktiválási szöveg már létezik! Válasszon másikat.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Írjon be egy új gyorsindítót" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Írjon be egy új gyorsindítót, vagy törölje" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "A dokumentum eleje elérve, keressen a végéről?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "A dokumentum vége elérve, keressen az elejéről?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "%s mentése…" #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Kérem próbálja újra." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "A szöveg nem konvertálható UTF-8 kódolásra!\n" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "PDF fájl exportálása sikertelen.\n" "\n" "%s" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Mentetlen dokumentum %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Jelenleg telepítve:\n" "%s\n" "\n" "Jelenleg elérhető:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Frissítések _keresése" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s komoly hibába ütközött és újraindításra van szükség. Az adatok a " "dokumentum újratöltésekor helyreállításra kerülnek. Kérem jelentse a hibát a " "http://dev.midnightcoding.org weboldalon." #: ../src/utils.c:168 msgid "Confirmation" msgstr "Megerősítés" gummi-0.6.5/po/it.po0000644000175000017500000006423212040524274011162 00000000000000msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-10-27 20:28+0100\n" "Last-Translator: Salvatore Vassallo \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 #, fuzzy msgid "Document statistics" msgstr "Statistiche del documento" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Compila" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Parole nel testo" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Grassetto" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 #, fuzzy msgid "headers" msgstr "Parole nelle intestazioni" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Parole nelle didascalie dei float" #: ../data/ui/gummi.glade.h:9 #, fuzzy msgid "Number of:" msgstr "Numero di float" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "File:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Didascalia" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Etichetta:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Scala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Righe:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Colonne:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Parentesi:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Senza parentesi" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Tonde" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Quadre" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Graffe" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Linea singola" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Linea doppia" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Ottimale" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Adatta alla larghezza" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Allinea a sinistra" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Centrato" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Allinea a destra" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Nessun bordo" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Bordo esterno" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Borda tutte le celle" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editor di LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "(_F)ile" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nuovo da (_m)odello" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "(_A)pri..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Salva con (_n)ome" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "(_E)sporta nel formato PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "(_M)odifica" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "(_V)isualizza" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "(_B)arra di stato" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Barra degli (_s)trumenti" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "(_P)anello laterale destro" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Linea singola" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "Schermo (_i)ntero" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "(_C)erca" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Trova su(_c)cessivo" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Trova prece(_d)ente" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Compila" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Compila" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 #, fuzzy msgid "Set Compilation Options" msgstr "Opzioni per il modello:" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 #, fuzzy msgid "Document _Statistics" msgstr "Statistiche del documento" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Lingua controllo ortografico:" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Crea un nuovo documento" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Questa funzione richiede\n" "il porgramma texcount.\n" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Crea un nuovo documento" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "(_A)iuto" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Controlla (_a)ggiornamenti" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Apri" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Salva" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Immagine" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabella" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matrice" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografia" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Precedente" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Successivo" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "di 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Anteprima" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 #, fuzzy msgid "Nr of files:" msgstr "Numero di float" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Compila" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Compila" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Salvataggio file:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nome del file:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "nessuno" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Riferimenti" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compila" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Compilazione il database \n" "della bibliografia corrente" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "nessuna bibliografia trovata" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titolo" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtra:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Trova" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Cerca per:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Sostituisci con:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Solo parole intere" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Cerca all'indietro" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Maiuscolo/Minuscole" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "(_S)ostituisci" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Sostituisci (_t)utto" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Crea un nuovo documento da modello..." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Converti in modello\n" "il documento corrente." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Elimina il modello selezionato" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Apri il modello selezionato." #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "Compila quando fermo per" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "Compila automaticamente ogni" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Nessuno" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferenze di Gummi" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "A capo automatico:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Attivare a capo automatico" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Non dividere le parole su due righe" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Numeri di riga:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Mostrare i numeri di riga" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Evidenziazione:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Evidenzia la linea corrente" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Visualizza" #: ../data/ui/prefs.glade.h:17 #, fuzzy msgid "Tab stops" msgstr "Limite tabulazione:" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Ampiezza:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Usa degli (_s)pazi invece della tabulazione" #: ../data/ui/prefs.glade.h:20 #, fuzzy msgid "Automatic Indentation" msgstr "Indentazione automatica:" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "Abilita l'indentazione (_a)utomatica" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Snippet" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Salvataggio file:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "Salvataggio (_a)utomatico ogni" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minuti" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Caratteri dell'editor:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Schema colore" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Testo predefinito" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Comandi di composizione:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Comandi di composizione:" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Conferma" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilazione PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "secondi" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Anteprima" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Lingua controllo ortografico:" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "Compilazione PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Miscellanea" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "(_R)ipristina predefiniti" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Gestore snippet" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "(_R)ipristina predefiniti" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Crea un nuovo documento" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "(_R)ipristina predefiniti" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "(_M)odifica" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centrato" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nome del file:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Attivazione" #: ../data/ui/snippets.glade.h:13 #, fuzzy msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Nessun file o directory\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Il file esiste già. Volete sovrascriverlo?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Compilazione della bibliografia..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografia compilata senza errori" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "" "Errore nel compilare il file della bibliografia o nessuna bibliografia " "trovata..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "errore compilando la bibliografia" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "Caricato%s" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Salvare le modifiche al documento?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Apri un documento LaTex" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Apri un documento LaTex" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Selezionare un'immagine da inserire" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Seleziona il file della bibliografia" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Salva il documento LaTex" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Salva come documento LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Esporta nel formato PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Crea un nuovo documento" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Carica un file" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Immagine" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Preferenze di Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Errore nel caricare un file modificato di recente: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Parole nel testo" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Parole nelle intestazioni" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Parole nelle didascalie dei float" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Numero di intestazioni" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Numero di float" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Numero di espressioni matematiche" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Numero di espressioni matematiche visualizzate" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Questa funzione richiede\n" "il porgramma texcount.\n" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 #, fuzzy msgid "Type a new shortcut" msgstr "Crea un nuovo documento" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Raggiunto l'inizio del documento, cercare dal fondo?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Raggiunta la fine del documento, cercare dall'inzio?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Salvataggio in corso di %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Riprovare nuovamente più tardi." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Non è possibile convertire il testo in UTF-8!\n" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Attualmente installato:\n" "%s\n" "\n" "Attualmente disponibile:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Controlla aggiornamenti" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Conferma" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Grassetto" #~ msgid "Center text" #~ msgstr "Centrato" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Stato di errore\n" #~ "per il documento corrente" #~ msgid "Italic text" #~ msgstr "Corsivo" #~ msgid "Load a file" #~ msgstr "Carica un file" #~ msgid "Pause updating the preview pane." #~ msgstr "Ferma l'aggiornamento dell'anteprima" #~ msgid "Save the current file" #~ msgstr "Salva il documento corrente" #~ msgid "Underline text" #~ msgstr "Sottolineato" #, fuzzy #~ msgid "Include document" #~ msgstr "Apri un documento LaTex" #, fuzzy #~ msgid "New document" #~ msgstr "Crea un nuovo documento" #, fuzzy #~ msgid "Open file" #~ msgstr "Apri file..." #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Allineamento del\n" #~ "contenuto della cella" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Scegli se le celle\n" #~ "hanno un bordo" #~ msgid "Error output" #~ msgstr "Output di errore" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "L'anteprima PDF non può essere inizializzata\n" #~ "\n" #~ "Sembra che il documento LaTeX contenga errori o\n" #~ "il programma `%s' non è installato.\n" #~ "Informazioni aggiuntive sono disponibili nella scheda Output di errore.\n" #~ "Correggere gli errori elencati per ripristinare l'anteprima." #~ msgid "_Compile Bibliography" #~ msgstr "(_C)ompila bibliografia" #~ msgid "_Insert Bibliography" #~ msgstr "(_I)nserisci bibliografia" #, fuzzy #~ msgid "Customize" #~ msgstr "Compila" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "Salvataggio automatico del file %s" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Salva come documento LaTeX" #~ msgid "_Tools" #~ msgstr "(_S)trumenti" #~ msgid "_Autocheck Spelling" #~ msgstr "Controllo ortografico (_a)utomatico" #~ msgid "_Document Statistics" #~ msgstr "Statistiche del (_d)ocumento" #~ msgid "" #~ "\n" #~ "Gummi has encountered a serious error and requires a restart, you can " #~ "find your file in the %s directory\n" #~ msgstr "" #~ "\n" #~ "Gummi è incorso in un errore grave e richiede di essere riavviato, si " #~ "potrà recuperare il file nella directory %s\n" #~ msgid "" #~ "Search document for\n" #~ "bibliography databases" #~ msgstr "" #~ "Cerca nel documento\n" #~ "un database di bibliografia" #~ msgid "Changes will become active on next start" #~ msgstr "I cambiamenti saranno attivi al riavvio" #~ msgid "PDF Compiling:" #~ msgstr "Compilazione PDF:" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Grassetto" #~ msgid "Save File..." #~ msgstr "Salva file..." #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Articolo" #~ msgid "Book" #~ msgstr "Libro" #~ msgid "Letter" #~ msgstr "Lettera" #~ msgid "Report" #~ msgstr "Rapporto" gummi-0.6.5/po/pt.po0000644000175000017500000006704712040524274011200 00000000000000# Portuguese translation for Gummi. # Copyright (C) Alexandre Guimarães 2011 # This file is distributed under the same license as the Gummi package. # # Alexandre Guimarães , 2011. # msgid "" msgstr "" "Project-Id-Version: Gummi 0.6.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-11-08 13:19-0300\n" "Last-Translator: Alexandre Guimarães \n" "Language-Team: Portuguese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Estatísticas do documento" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Nome do documento" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Palavras no texto:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "texto" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "cabeçalho" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "legendas flutuantes" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Número de:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "flutuantes" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "ambientes matemáticos" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "O visualizador do PDF não pode iniciar." #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Ficheiro:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Estilo" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Legenda:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Etiqueta:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Escala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Linhas" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Colunas:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Parênteses rectos:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Sem fechamento" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Parênteses" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Colchetes" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Chavetas" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Linha única" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Linha dupla" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Melhor Ajuste" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Ajuste na largura da página" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Alinhamento à esquerda" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Centralizado" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Alinhamento à direita" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Sem margens" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Linhas com contorno" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Linhas em todas as células" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editor LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Ficheiro" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Novo de um modelo" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Abrir..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Guardar _Como" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exportar para PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "naodevemverme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Editar" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Ver" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Barra de Estados" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Barra de Ferramentas" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Painel Direito" #: ../data/ui/gummi.glade.h:65 #, fuzzy msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "Use o SyncTex para rolar o visualizador até aúltima parte editada." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Sincronizar entre o editor e o visualizador" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Tamanho da página no visualizador" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Página única" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Contínuo, Uma Coluna" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Ecrã completo" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Buscar" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Buscar _seguinte" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Buscar _anterior" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Documento" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Compilar _Documento" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Compile o documento\n" "e actualizar o visualizador" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Escolher opções de compilação" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Executar _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Executar _Bibtex" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "Estatísticas do _Ficheiro" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Activar V_erificação Ortográfica" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Activar P_edaços" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Projecto" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Criar novo Projecto" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Esta função requer o documento\n" "actual para ser guardado." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Abrir Projecto" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Fechar Projecto" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Ajuda" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Verificar _Actualizações" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Novo" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Abrir" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Guardar" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Imagem" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabela" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matriz" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografia" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Anterior" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Seguinte" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "de 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Visualizador" #: ../data/ui/gummi.glade.h:112 #, fuzzy msgid "Build Log" msgstr "Log de compilação" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Nº de ficheiros flutuantes" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Localização da Raiz:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Nome do projecto:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Documento" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Localização do ficheiro" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Escolher um ficheiro para adicionar \n" "ao projecto actual." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Remover o ficheiro\n" "selecionado do projecto." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projecto" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nome do ficheiro" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "nenhum" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referências:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Detectar" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Detectar menção a um ficheiro\n" "bibtex presente no documento" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compilar" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Compilar a base \n" "bibliográfica" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "ficheiro de bibliografia não encontrado" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Título" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtro:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Buscar" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Procurar por" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Substituir com:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Equivaler apenas a palavra completa" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Procurar para atrás" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Equivaler capitalização" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "_Substituir" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Substituir _tudo" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Guarde frequentemente!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Criar novo documento de um modelo" #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Criar um modelo a partir\n" "do documento actual." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Apagar o modelo seleccionado" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Abrir o modelo seleccionado" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "compilar quando inactivo por" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compilar à cada" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Nenhum" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Sempre" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Somente quando sincronizados" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Nunca" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferências" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Quebra de texto" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Activar quebra de texto" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Não dividir palavras em duas linhas" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Números de linhas" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Mostrar número das linhas" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "A realçar" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Realçar linha actual" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Visualizar" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Paragens do tabulador" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Largura do tabulador:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Inserir _espaços em vez de parágrafos" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Indentação Automática" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Activar indentação automática" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Pedaços" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Configurar pedaços" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "A guardar" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Guardar os ficheiros automaticamente a cada" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minutos" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Fonte do editor" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Esquema de Cores" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Fontes e Cores" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Texto Padrão" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Comando tipógrafo" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive com PdfTex" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "O programa não foi encontrado." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive com XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Opções de tipógrafo" #: ../data/ui/prefs.glade.h:39 #, fuzzy msgid "Use shell-escape" msgstr "--shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "Activar SyncTex" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Passos da compilação" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Compilação" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "A compilar o PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "segundos" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Utilizar rolagem animada" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Tamanho do cache" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Visualizador" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Linguagem da verificação ortográfica" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportar PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exportar automaticamente para PDF, quando guardar o documento" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Diversos" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Restaurar configurações iniciais" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Gestor de pedaços" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Restaurar" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "Restaurar todos os pedaços" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Pedaços" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Criar novo documento" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "Restaurar todos os pedaços" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Editar:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centralizado" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nome do ficheiro" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Activação" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Despoletador de separador" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Teclas de atalho" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Ficheiro ou pasta não encontrado\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "O visualizador de PDF não pode ser iniciado." #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "O documento parace estar vazio ou é inválido." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Programa para copilação não encontrado." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "O documento actual contêm erros. O visualizador\n" "reiniciará automaticamente quando os erros forem\n" "resolvidos. Pode encontrar informações adicionais\n" "no log de criação.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "O documento actual parece ser inválido.\n" "Para continuar a trabalhar,\n" "inicie o texto padrão ou use a opção Projecto\n" "para adicioná-lo a um projecto.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "A compilação seleccionada não pode ser localizada.\n" "Por favor, restaure o programa ou selecione um comando\n" "alternativo nas Preferências.\n" "O visualizador não reiniciará até que o Gummi\n" "seja reiniciado.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "Arquivo de Swap já existente para %s, utilizar este?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "O ficheiro já existe. Guardar novamente?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Iniciando o modelo ..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "A compilar o ficheiro de bibliografia" #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografia compilada sem erros" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Erro ao compilar a bibliografia ou ficheiro não encontrado..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "erro ao compilar a bibliografia" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s iniciados" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Guardar as mudanças que foram feitas?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Abrir ficheiro LaTeX" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Abrir documento LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Seleccione uma imagem para inserir" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Seleccione o arquivo de bibliografia" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Guardar documento LaTeX" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Guardar como documento LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exportar para PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Criar novo Projecto" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "Iniciar um arquivo" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Ficheiros de texto" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Imagem" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Ficheiros Bibtex" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Ficheiros de projecto Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Ocorreu um erro ao ler o ficheiro: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "Erro durante a execução do Makeindex.." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "A Executar Makeindex.." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Erro durante a execução do Makeindex.." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Palavras no texto" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Palavras no cabeçalho" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Palavras em legendas flutuantes" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Números de cabeçalhos" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Número de flutuantes" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Número de fórmulas em modo interno" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Número de fórmulas em modo externo" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Esta função requer o documento\n" "actual para ser guardado." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "de %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" "Detectado despoletador de separador duplicado! Por favor, escolha outro.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Insira uma nova tecla de atalho" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Insira uma nova tecla de atalho, ou prima a tecla espaço para limpar" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Início alcançado, procurar do final?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Final alcançado, buscar do início?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "A guardar %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Por favor, tente mais tarde." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Não é possível converter o texto para UTF-8!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "Não é possível exportar para PDF..\n" "O documento contêm errors.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Documento não guardado %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Actualmente instalada:\n" "%s\n" "\n" "Actualmente disponível:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Procurar actualizações" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s foram encontrados erros, é necessário reiniciar. Seu trabalho será " "restaurado quando o documento reiniciar. Por favor, reporte bugs a: http://" "dev.midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Confirmação" #~ msgid "Bold text" #~ msgstr "Negrito" #~ msgid "Center text" #~ msgstr "Centralizado" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Erro no\n" #~ "documento activo" #~ msgid "Italic text" #~ msgstr "Itálico" #~ msgid "Load a file" #~ msgstr "Abrir um ficheiro" #~ msgid "Pause updating the preview pane." #~ msgstr "Não actualizar o visualizador." #~ msgid "Save the current file" #~ msgstr "Guardar o ficheiro actual" #~ msgid "Underline text" #~ msgstr "Sublinhado" #~ msgid "Hello svn user!" #~ msgstr "Olá utilizador svn!" #~ msgid "Include document" #~ msgstr "Abrir ficheiro LaTeX" #~ msgid "New document" #~ msgstr "Criar novo ficheiro" #~ msgid "Open file" #~ msgstr "Abrir" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Alinhamento do\n" #~ "conteúdo da célula" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Determina se\n" #~ "as células possuem margens. " #~ msgid "Error output" #~ msgstr "Saída de erro" #~ msgid "_Compile Bibliography" #~ msgstr "_Compilar Bibliografia" #~ msgid "_Insert Bibliography" #~ msgstr "_Inserir Bibliografia" #~ msgid "_Tools" #~ msgstr "_Ferramentas" #~ msgid "Command: " #~ msgstr "Comando:" #~ msgid "Customize" #~ msgstr "Personalizar" #~ msgid "Extra flags:" #~ msgstr "Declarações extras:" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "A guardar automaticamente o ficheiro %s" #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "\n" #~ "It appears your LaTeX document contains errors or\n" #~ "the program `%s' was not installed.\n" #~ "Additional information is available on the Error Output tab.\n" #~ "Please correct the listed errors to restore preview." #~ msgstr "" #~ "O antever do PDF não pode ser inicializado\n" #~ "Aparentemente seu ficheiro LaTeX contêm erros ou\n" #~ "o programa `%s' não está correctamente instalado.\n" #~ "Informações adicionais estão disponíveis na aba de erros. \n" #~ "Por favor, corrija os erros listados e restaure o antever." #~ msgid "_Autocheck Spelling" #~ msgstr "_Verificar Erros Ortográficos" #~ msgid "_Document Statistics" #~ msgstr "_Estatísticas do ficheiro" gummi-0.6.5/po/sv.po0000644000175000017500000006304612040524274011200 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-11-07 20:48+0100\n" "Last-Translator: Kess Vargavind \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Dokumentstatistik" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Dokumentnamn" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Antal ord i" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "texten" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "rubriker" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "figurtexter" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Antal" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "flyttbara objekt" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "matematikomgivningar" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "Kan ej starta PDF-förhandsgranskning." #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Fil:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Stil:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Rubrik:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Etikett:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Skala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Rader:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Kolumner:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Parenteser:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Inga parenteser" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Vanliga parenteser" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Hakparenteser" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Klammerparenteser" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Enkla streck" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Dubbla streck" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Helsida" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Sidbredd" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50 %" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70 %" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85 %" # Alla dessa förstoringsgrader bör slås samman i koden till något i stil med "%d%%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100 %" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125 %" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150 %" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200 %" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300 %" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400 %" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Vänsterjusterad" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Centrerad" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Högerjusterad" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Inga ramar" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Ram runt tabell" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Ramar runt celler" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi – LaTeX-redigerare" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Arkiv" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Ny från _mall" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Öppna..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Spara so_m..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exportera som PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "bordeintesemig" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Redigera" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Visa" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Statusfält" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Verktygsrad" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Högerpanel" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "Använd SyncTeX för att förhandsgranska den del av dokumentet som senast " "ändrades." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Förhandsgranska där du redigerar" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Sidlayout i förhandsgranskning" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Enkelsidig" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Sammanhängande" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Helskärm" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Sök" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Sök _nästa" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Sök _föregående" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Dokument" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Skapa _dokument" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Kompilera LaTeX-dokumentet\n" "och uppdatera förhandsvisningen" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Typsättningsalternativ" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Kör _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Kör _BibTeX" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "Dokument_statistik" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Aktivera _rättstavning" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Aktivera _kodstycken" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Projekt" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Skapa nytt projekt" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Du måste spara aktivt dokument\n" "innan du kan använda den här funktionen." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Öppna projekt" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Stäng projekt" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Hjälp" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Sök efter _uppdateringar" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Ny" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Öppna" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Spara" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "verktygsrad5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "verktygsrad6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "verktygsrad7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "verktygsrad1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "verktygsrad2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "verktygsrad3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Bild" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabell" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matris" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografi" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Föregående" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Nästa" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "av 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Förhandsvisning" #: ../data/ui/gummi.glade.h:112 #, fuzzy msgid "Build Log" msgstr "Logg" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Antal filer:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Sökväg:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Projektnamn:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Dokument" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Sökväg" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Välj en fil för att lägga den\n" "till aktivt projekt." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Ta bort vald fil\n" "från projektet." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projekt" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Filnamn:" # Behöver delas upp i källkoden: # * sv: inga, ingen, inget #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "Inget" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referenser:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "Inga tillgängliga" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Sök" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Sök igenom aktuellt dokument efter\n" "angivande av BibTeX-fil" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Skapa" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Kompilera den aktuella\n" "bibliografidatabasen" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "Ingen bibliografifil funnen" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titel" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "Filter:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Sök" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Sök efter:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Ersätt med:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Sök endast hela ord" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Sök baklänges" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Gör skillnad på gemener/VERSALER" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "_Ersätt" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Ersätt _alla" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Spara tidigt, spara ofta!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Skapa nytt dokument från mall..." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "Skapa en mall från detta dokument" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Ta bort vald mall" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Öppna vald mall" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "Kompilera när varit inaktiv i" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "Kompilera var" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Ingen" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Alltid" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Endast när förhandsgranskningen följer var du redigerar" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Aldrig" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Inställningar för Gummi" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Radbrytning" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Aktivera radbrytning" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Radbryt inte mitt i ord" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Radnummer" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Visa radnummer" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Färgmarkering" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Markera aktiv textrad" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Visning" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabbsteg" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Tabblängd:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Använd _blanksteg i stället för tabbtecken" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Automatiska indrag" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Automatiskt radindrag" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Kodstycken" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Anpassa kodstycken" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Spara fil" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Autospar filer var" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minut" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Textfönster" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Typsnitt för textruta" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Färgschema" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Typsnitt och färger" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Förvald text" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Miljö för typsättning" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive med PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "Hittar inte programmet i ditt system." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive med XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Alternativ för typsättarprogram" #: ../data/ui/prefs.glade.h:39 #, fuzzy msgid "Use shell-escape" msgstr "Tillåt att externa program körs (--shell-escape)" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "Aktivera SyncTeX" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Typsättningssteg" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Typsättning" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Skapa PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "sekund(er)" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Använd animerad rullning" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Cache-storlek" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Förhandsgranskning" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Rättstavning" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportera PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exportera automatiskt PDF-fil när dokument sparas" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Övrigt" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "Återgå till grundinställningarna" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Hantera kodstycken" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Återställ" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "Återställ kodstycken" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Kodstycken:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Skapa nytt dokument" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "Återställ kodstycken" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Redigera:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centrerad" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Filnamn:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Aktivering" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " # Tabb utlöser automatisk textkomplettering av fördefinierade kodstycken #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Tabbutlösare:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Kortkommando:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Ingen sådan fel eller katalog\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "Kunde inte starta PDF-förhandsgranskning." #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "Dokumentet verkar vara tomt eller ogiltigt." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Kan inte finna typsättarprogram." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "Nuvarande dokument innehåller fel. Den automatiska\n" "förhandsgranskningen kommer att återupptas så snart\n" "dessa fel åtgärdats. Utförligare information finns att få\n" "i loggen.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "Det aktuella dokumentet verkar vara en ogiltig LaTeX-\n" "fil. Du kan fortsätta arbeta med den, återgå till grund-\n" "mallen eller använda Projekt-menyn för att lägga den\n" "till ett aktivt projekt.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "Kan inte hitta det valda typsättningsprogrammet.\n" "Gör det programmet tillgängligt eller välj ett annat\n" "i Inställningar-menyn. Den automatiska förhands-\n" "granskningen kommer inte att återupptas förrän\n" "Gummi har startats om.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "Tidigare arbetskopia finns av %s, vill du återgå till den?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "Filen finns redan. Skriva över?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Öppnar mall..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Skapar bibliografifil..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "Bibliografin skapad utan fel" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Kunde ej finna eller kompilera bibliografifilen" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "Kunde inte skapa bibliografin" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s laddad" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Vill du spara de ändringar du gjort?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Dokument" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Öppna LaTeX-dokument" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Välj en bild att infoga" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Välj bibliografifil" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Spara LaTeX-dokument" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Spara som LaTeX-dokument" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exportera som PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Skapa nytt projekt" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "LaTeX-filer" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Textfiler" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Bildfiler" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "BibTeX-filer" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Gummi-projektfiler" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Kunde inte öppna filen %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "Fel upptäcktes under körning av Makeindex..." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "Kör Makeindex..." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Fel upptäcktes under körning av Makeindex..." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Ord i texten" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Ord i rubriker" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Svävande rubriker" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Rubriker" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Svävande element" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Ekvationer i texten" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Ekvationer" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Du måste spara aktivt dokument\n" "innan du kan använda den här funktionen." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "av %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "Detta tangentbordskommando används redan, välj ett annat.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Ange nytt kortkommando" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Ange ny tangentkombination eller tryck backsteg för att tömma" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Början av dokumentet nådd, fortsätta från slutet?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Slutet av dokumentet nått, fortsätta från början?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Sparar %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Var god försök igen senare." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Kan inte göra om texten till UTF-8!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "Kan inte exportera PDF-fil...\n" "Dokumentet innehåller fel.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Osparat dokument %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Installerad version:\n" "%s\n" "\n" "Senaste utgåva:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Kolla uppdateringar" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "Allvarligt fel i %s, omstart krävs. Du har möjlighet att återgå till " "nuvarande arbetskopia efter omstart. Rapportera gärna buggar vid: http://dev." "midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Bekräftelse" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Fet" #~ msgid "Center text" #~ msgstr "Centrerad" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "Felstatus för aktivt dokument" #~ msgid "Italic text" #~ msgstr "Kursiv" #~ msgid "Load a file" #~ msgstr "Öppna..." #~ msgid "Pause updating the preview pane." #~ msgstr "Pausa uppdatering av förhandsvisningen" #~ msgid "Save the current file" #~ msgstr "Spara aktuell fil" #~ msgid "Underline text" #~ msgstr "Understruken" gummi-0.6.5/po/pt_BR.po0000644000175000017500000006657512040524274011570 00000000000000# Brazillian Portuguese translation for Gummi. # Copyright (C) Alexandre Guimarães 2011 # This file is distributed under the same license as the Gummi package. # # Alexandre Guimarães , 2011. # msgid "" msgstr "" "Project-Id-Version: Gummi 0.6.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-10-11 14:35-0300\n" "Last-Translator: Alexandre Guimarães \n" "Language-Team: Brazilian Portuguese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Estatísticas do Documento" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Nome do documento" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Palavras no texto" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "texto" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "cabeçalho" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "legendas flutuantes" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Número de:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "flutuantes" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "ambientes matemáticos" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "O preview não pode iniciar" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Arquivo:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Estilo" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Legenda:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Legenda:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Escala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Linhas" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Colunas:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Colchete:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Sem fechamento" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Parênteses" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Colchetes" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Chaves" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Espaçamento simples" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Espaçamento duplo" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Melhor Ajuste" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Ajuste na largura da página" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Alinhar à esquerda" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Alinhar ao centro" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Alinhar à direita" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Sem bordas" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Bordas com contorno" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Linhas de borda em todas as células" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editor LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Arquivo" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Novo de um _Modelo" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Abrir..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Salvar _Como..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exportar para PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "naodevemverme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Editar" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Visualizar" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Barra de Status" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Barra de Ferramentas" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "_Painel Direito" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "Use SyncTex para rolar o preview até a parte sendo editada dodocumento." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Sincronizar Preview e Editor" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Tamanho da página no preview" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Espaçamento simples" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Contínuo, Uma Coluna" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Tela Cheia" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Procurar" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Localizar Pró_ximo" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Localizar An_terior" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Documento" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Compilar _Documento" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Compile o documento LaTeX\n" "e atualize o preview" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Opções de compilação" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Executar _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Executar _BibTex" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "Estatísticas do Documento" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Habilitar v_erificação ortográfica" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Habilitar A_talhos" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Projeto" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Criar novo Projeto" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "Esta função requer o arquivoatual para ser salva." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Abrir Projeto" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Fechar Projeto" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Ajuda" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Verificar _Atualizações" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Novo" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Abrir" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Salvar" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Imagem" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabela" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matriz" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografia" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Anterior" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Próximo" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "de 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Preview" #: ../data/ui/gummi.glade.h:112 #, fuzzy msgid "Build Log" msgstr "Log" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Número de arquivos" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Endereço raiz:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Nome do projeto:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Documento" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Raiz do documento" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Escolha o arquivo \n" "a ser adicionado ao projeto." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Remover o arquivo\n" "selecionado do projeto." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projeto" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nome do Arquivo" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "nenhum" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referências:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Detectar" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Detectar menção ao bibtex\n" "arquivo presente no documento" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compilar" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Compilar a base \n" "bibliográfica ativa" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "aquivo de bibliografia não encontrado" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Título" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtro:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Localizar" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Procurar por:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Substituir com:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Equivaler apenas a palavra completa" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Procurar para atrás" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Equivaler capitalização" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "_Substituir" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Substituir _Tudo" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Salve sempre.. Esteja seguro!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Criar um novo documento de um modelo.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Criar um modelo a partir\n" "do documento ativo" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Apagar o modelo selecionado" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Abrir o modelo selecionado" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 #, fuzzy msgid "compile when idle for " msgstr "compilar quando inativo por" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compilar a cada" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Nenhum" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Sempre" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Somente quando sincronizados" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Nunca" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferências" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Quebra de texto" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Habilitar quebra de texto" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Não dividir palavras em duas linhas" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Números de linhas" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Mostrar os números das linhas" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Destacando" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Destacar a linha atual" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Visualizar" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabulações" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Largura da tabulação:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Inserir _espaços ao invés de tabulação" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Recuo Automático" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Habilitar recuo automático" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Atalhos" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Configurar atalhos" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Salvando arquivo" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Salvar automaticamente a cada" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minutos" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Fontes do editor" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Esquema de Cores" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Fontes e Cores" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Texto Padrão" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Comando tipógrafo" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TeXLive com PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "Programa não encontrado." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive com XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Comando tipógrafo" #: ../data/ui/prefs.glade.h:39 #, fuzzy msgid "Use shell-escape" msgstr "--shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "Habilitar SyncTex" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Passos da compilação" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Compilação" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilando PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "segundos" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Usar rolagem animada" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Tamanho do cache" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Preview" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Idioma da verificação ortográfica" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportando PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exportar automaticamente para PDF quando salvar o documento" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Diversos" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Restaurar Padrões" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Gestor de atalhos" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Restaurar" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "Repor todos os textos" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Atalhos" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Criar novo documento" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "Repor todos os textos" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Editar:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Texto centralizado" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nome do Arquivo" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Ativação" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr "" #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Gatilho de separador:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Teclas de atalho" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: Arquivo ou diretório não encontrado\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "O preview não pode iniciar" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "O documento parece ser vazio ou é inválido." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Prograna para a compilação não encontrado" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "O documento ativo contêm erros. O preview\n" "reiniciará automaticamente quando os erros forem\n" "corrigidos. Pode encontrar informações adicionais\n" "no log.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "O documento ativo parece ser inválido.\n" "Para continuar a trabalhar,\n" "inicie o texto padrão ou use a opção Projeto\n" "para adicioná-lo a um projeto.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "A compilação selecionada não pode ser localizada.\n" "Por favor, restaure o programa ou selecione um comando\n" "alternativo nas Preferências.\n" "O visualizador não reiniciará até que o Gummi\n" "seja reiniciado.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "O arquvio de Swap já existe para %s, recuperar deste?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "O arquivo já existe. Salvar por cima?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Carregando modelo ..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "Compilando o arquivo de bibliografia..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografia compilada sem erros" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "Erro compilando o arquivo de bibliografia ou arquivo não encontrado..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "erro compilando o arquivo de bibliografia" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "%s carregados" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Salvar as mudanças que foram feitas?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Abrir documento LaTeX" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Abrir um documento LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Selecione uma imagem para inserir" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Selecione o arquivo de bibliografia" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Salvar o documento LaTeX" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Salvar como documento LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exportar para PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Criar novo Projeto" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "Arquivos LaTeX" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Arquivos de texto" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Arquivos de imagem" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Arquivos BibTex" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Preferências do Gummi" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "Erro lendo o arquivo: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "Erro na execução do Makeindex" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "Executando Makeindex" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "Erro na execução do Makeindex" #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Palavras no texto" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Palavras no cabeçalho" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Palavras em legendas flutuantes" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Números de cabeçalhos" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Número de flutuantes" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Número de fórmulas em modo interno" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Número de fórmulas em modo externo" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "Esta função requer o arquivoatual para ser salva." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "de %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "Detectado gatilho de separador duplicado! Por favor, escolha outro.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Digite uma nova tecla de atalho" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Digite uma nova tecla de atalho, ou pressione espaço para limpar" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "Início alcançado, procurar à partir do final?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "Final alcançado, procurar à partir do início?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Salvando %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Por favor, tente novamente mais tarde." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "Não é possível converter o texto para UTF-8!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "Não é possível exportar para PDF..\n" "O documento contêm erros.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Documento não salvo %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Atualmente instalada:\n" "%s\n" "\n" "Atualmente disponível:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Procurar por atualizações" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s foram encontrados erros, é necessário reiniciar. Seu trabalho será " "restaurado quando o documento reiniciar. Por favor, reporte bugs a: http://" "dev.midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Confirmação" #~ msgid "Bold text" #~ msgstr "Texto em negrito" #~ msgid "Center text" #~ msgstr "Texto centralizado" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Erro no\n" #~ "documento ativo" #~ msgid "Italic text" #~ msgstr "Texto em itálico" #~ msgid "Load a file" #~ msgstr "Carregar um arquivo" #~ msgid "Pause updating the preview pane." #~ msgstr "Em pausa, atualizando o preview." #~ msgid "Save the current file" #~ msgstr "Salvar o arquivo atual" #~ msgid "Underline text" #~ msgstr "Texto sublinhado" #~ msgid "Hello svn user!" #~ msgstr "Olá usuário svn!" #~ msgid "Include document" #~ msgstr "Abrir documento LaTeX" #~ msgid "New document" #~ msgstr "Criar novo documento" #~ msgid "Open file" #~ msgstr "Abrir" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Alinhamento do\n" #~ "conteúdo da célula" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Determina se\n" #~ "as células possuem bordas. " #~ msgid "Error output" #~ msgstr "Saída de erro" #~ msgid "_Compile Bibliography" #~ msgstr "_Compilar Bibliografia" #~ msgid "_Insert Bibliography" #~ msgstr "_Inserir Bibliografia" #~ msgid "_Tools" #~ msgstr "_Ferramentas" #~ msgid "Command: " #~ msgstr "Comando:" #~ msgid "Customize" #~ msgstr "Personalizar" #~ msgid "Extra flags:" #~ msgstr "Sinalizadores extras:" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "Autosalvando arquivo %s" #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "\n" #~ "It appears your LaTeX document contains errors or\n" #~ "the program `%s' was not installed.\n" #~ "Additional information is available on the Error Output tab.\n" #~ "Please correct the listed errors to restore preview." #~ msgstr "" #~ "O PDF preview não pode ser inicializado\n" #~ "Aparentemente seu documento LaTeX contêm erros ou\n" #~ "o programa `%s' não está corretamente instalado.\n" #~ "Informações adicionais estão disponíveis na aba de erros. \n" #~ "Por favor, corrija os erros listados e restaure o preview." #~ msgid "_Autocheck Spelling" #~ msgstr "_Verificar Erros Ortográficos" #~ msgid "_Document Statistics" #~ msgstr "_Estatisticas do Documento" gummi-0.6.5/po/ro.po0000644000175000017500000006276512040524274011177 00000000000000# ROMANIAN TRANSLATION FOR GUMMI LATEX EDITOR # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Alexandru-Eugen Ichim , 2010. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-09-07 16:25+0200\n" "Last-Translator: Alexandru-Eugen Ichim \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 #, fuzzy msgid "Document statistics" msgstr "Statistici _Document" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Compileaza" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Text ingrosat" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Text ingrosat" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Optiuni sablon:" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Fisier:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Legenda:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Eticheta" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Scara:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Randuri" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Coloane:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Paranteza:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Fara Paranteze" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Paranteze" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Paranteze:" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Paranteze acolade" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "O Singura Linie" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Linie Dubla" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Cea mai buna incadrare" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Incadreaza in Latimea Paginii" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Aliniaza stanga" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Aliniere centrala" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Aliniere dreapta" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Fara margini" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Marginea exterioara" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Margine pentru toate celulele" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editorul de LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Fisier" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nou din Sablon" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "Deschide..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Salveaza Ca..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exporta ca PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "nuartrebuisamavezi" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Editeaza" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Vizualizare" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "Bara de _Status" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Bara de Unelte" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "Panoul Dreapta" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "O Singura Linie" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "Ecran Complet" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "Cauta" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Cauta Urmatorul" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Cauta Precedentul" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Compileaza" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Compileaza" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 #, fuzzy msgid "Set Compilation Options" msgstr "Optiuni sablon:" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 #, fuzzy msgid "Document _Statistics" msgstr "Statistici _Document" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Verifica ortografia pentru limba:" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Creeaza un nou document" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "Aceasta functie necesita activarea\n" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Creeaza un nou document" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "Ajutor" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Verifica pentru _Update-uri" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Deschide" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Salveaza" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "butonunelte5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "butonunelte6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "butonunelte7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "butonunelte1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "butonunelte2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "butonunelte3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Imagine" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabel" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matrice" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografie" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Precedentul" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Urmatorul" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "din 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Panou de Previzualizare" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Compileaza" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Compileaza" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Salvare de fisier:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nume Fisier:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "deloc" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referinte:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "Indisponibil" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compileaza" #: ../data/ui/gummi.glade.h:132 #, fuzzy msgid "" "Compile the active \n" "bibliography database" msgstr "Compilarea fisierului de bibliografie" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "nu a fost detectat niciun fisier de bibliografie" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titlu" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtru:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Cauta" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Cauta:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Inlocuieste cu:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Potriveste doar pentru cuvantul intreg" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Cauta in urma" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Potriveste capitalizarea" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "Inlocuieste" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Inlocuieste Tot" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 #, fuzzy msgid "Create new document from template.." msgstr "Creeaza un nou document.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "compileaza cand este inactiv pentru" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compileaza la fiecare" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Deloc" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferinte Gummi" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "Infasurare text:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Activeaza infasurarea textului" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Nu imparti cuvintele in doua randuri" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Numarul liniilor:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Afiseaza numarul liniilor" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Evidentierea liniilor:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Evidentiaza linia curenta" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Vizualizare" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "" #: ../data/ui/prefs.glade.h:18 #, fuzzy msgid "Tab width:" msgstr "Inlocuieste cu:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Indentare automată" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Fragmente de text" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Salvare de fisier:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "Salveaza _automat la fiecare" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minute" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Font Editor:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Schemă de culori" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Text Standard" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Comanda setare tip" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Comanda setare tip" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Legenda:" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilare PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "secunde" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Panou de Previzualizare" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Verifica ortografia pentru limba:" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "Compilare PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Reseteaza setarile standard" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Administrator fragmente de text" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "_Reseteaza setarile standard" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Creeaza un nou document" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Reseteaza setarile standard" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "_Editeaza" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centreaza text" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nume Fisier:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Activare" #: ../data/ui/snippets.glade.h:13 #, fuzzy msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 #, fuzzy msgid "Compiling bibliography file..." msgstr "Compilarea fisierului de bibliografie" #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografia a fost compilata fara erori" #: ../src/gui/gui-main.c:599 #, fuzzy msgid "Error compiling bibliography file or none detected..." msgstr "" "Eroare in timpul compilarii bibliografiei sau nicio bibliografie nu a fost " "detectata.." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "eroare in timpul compilarii fisierului de bibliografie" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Doriti sa salvati modificarile facute?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Creeaza un nou document" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 #, fuzzy msgid "Open LaTeX document" msgstr "Creeaza un nou document" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "" #: ../src/gui/gui-main.c:779 #, fuzzy msgid "Select bibliography file" msgstr "Compilarea fisierului de bibliografie" #: ../src/gui/gui-main.c:812 #, fuzzy msgid "Save LaTeX document" msgstr "Creeaza un nou document" #: ../src/gui/gui-main.c:813 #, fuzzy msgid "Save as LaTeX document" msgstr "Creeaza un nou document" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exporta ca PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Creeaza un nou document" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Deschide un Fisier" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Imagine" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Preferinte Gummi" #: ../src/gui/gui-menu.c:184 #, fuzzy, c-format msgid "Error loading recent file: %s" msgstr "Eroare la incarcarea fisierului recent: " #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 #, fuzzy msgid "Words in text" msgstr "Text ingrosat" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "Aceasta functie necesita activarea\n" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 #, fuzzy msgid "Type a new shortcut" msgstr "Creeaza un nou document" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "" #: ../src/iofunctions.c:130 #, fuzzy, c-format msgid "Saving %s..." msgstr "Salveaza Ca..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, fuzzy, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "\n" "\n" "Disponibil momentan:\n" #: ../src/update.c:116 msgid "Update Check" msgstr "Verificare Update-uri" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 #, fuzzy msgid "Confirmation" msgstr "Legenda:" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Text ingrosat" #~ msgid "Center text" #~ msgstr "Centreaza text" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Statutul erorii pentru\n" #~ "document activ" #~ msgid "Italic text" #~ msgstr "Text Inclinat" #~ msgid "Load a file" #~ msgstr "Deschide un Fisier" #~ msgid "Save the current file" #~ msgstr "Salveaza fisierul curent" #~ msgid "Underline text" #~ msgstr "Text subliniat" #, fuzzy #~ msgid "Include document" #~ msgstr "Creeaza un nou document" #, fuzzy #~ msgid "New document" #~ msgstr "Creeaza un nou document" #, fuzzy #~ msgid "Open file" #~ msgstr "Deschide Fisier..." #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Alinierea\n" #~ "continutului celulei" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Determina daca\n" #~ "celulele au linii ca mergine." #~ msgid "Error output" #~ msgstr "Iesire erori" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "PDF-Previzualizare nu s-a putut initializa\n" #~ "\n" #~ "Se pare ca documentul LatTeX contine erori sau\n" #~ "programul `%s' nu a fost instalat.\n" #~ "Informatii aditionale sunt disponibile sunt disponibile in Iesirea de " #~ "Erori.\n" #~ "Va rog corectati erorile mentionate si faceti click aici\n" #~ "pentru a reincarca panoul de previzualizare." #~ msgid "_Compile Bibliography" #~ msgstr "_Compileaza Bibliografia" #~ msgid "_Insert Bibliography" #~ msgstr "_Insereaza Bibliografie" #, fuzzy #~ msgid "Customize" #~ msgstr "Compileaza" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #, fuzzy #~ msgid "Autosaving file %s" #~ msgstr "Salvarea fisierului " #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Creeaza un nou document" #~ msgid "_Tools" #~ msgstr "Unelte" #~ msgid "_Autocheck Spelling" #~ msgstr "Verifica Automat Ortografia" #~ msgid "_Document Statistics" #~ msgstr "Statistici _Document" #~ msgid "Changes will become active on next start" #~ msgstr "Schimbarile vor deveni active dupa urmatoarea pornire" #~ msgid "PDF Compiling:" #~ msgstr "Compilare PDF:" #~ msgid "Save File..." #~ msgstr "Salveaza Fisier..." #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Articol" #~ msgid "Book" #~ msgstr "Carte" #~ msgid "Letter" #~ msgstr "Scrisoare" #~ msgid "Report" #~ msgstr "Raport" #~ msgid "Currently installed:\n" #~ msgstr "Instalat momentan:\n" #~ msgid "" #~ "The server could not be contacted.\n" #~ "\n" #~ msgstr "" #~ "Serverul nu a putut fi contactat.\n" #~ "\n" #~ msgid "internet connection." #~ msgstr "conexiune la internet" #~ msgid "Error" #~ msgstr "Eroare" #~ msgid "Save?" #~ msgstr "Salvati?" gummi-0.6.5/po/Makefile.in.in0000644000175000017500000001537712040524274012666 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gummi-0.6.5/po/ca.po0000644000175000017500000007316012040524274011131 00000000000000# # Marc Vinyals , 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: 0.4.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2011-11-07 22:16+0100\n" "Last-Translator: Marc Vinyals \n" "Language-Team: Català \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: UTF-8\n" "Plural-Forms: \n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "Estadístiques del document" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "Nom del document" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "Paraules a:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "text" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "capçaleres" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "descripcions d'objectes flotants" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "Nombre de:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "objectes flotants" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "entorns matemàtics" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "No s'ha pogut inicialitzar la previsualització a PDF." #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Fitxer:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "Estil:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Llegenda:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Etiqueta:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Escala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Files:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Columnes:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Claudàtor:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Sense delimitadors" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Parèntesis" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Claudàtors" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Claus" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Línia simple" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Línia doble" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Ajustament més adequat" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Ajusta a l'amplada de la pàgina" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Alinea a l'esquerra" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Alinea amb el centre" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Alinea a la dreta" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Sense vores" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Vora exterior" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Vora completa" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Editor de LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Fitxer" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Nou partin_t d'una plantilla" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Obre..." #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "_Anomena i desa..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "_Exporta a PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Edita" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Visualitza" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "Barra d'e_stat" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Barra d'_eines" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "Panell _dret" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" "Utilitza el SyncTex per moure la previsualització\n" "a l'última part del document que heu editat." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "Sincronitza la previsualització amb l'editor." #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "Disposició de la pàgina a la previsualització" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "Una sola pàgina" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "Contínu" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "Pantalla _sencera" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Cerca" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Cerca la següe_nt" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Cerca l'an_terior" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "_Document" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "Compila el _document" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" "Compila el document LaTeX i\n" "actualitza la previsualització." #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "Defineix les opcions de compilació" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "Executa _Makeindex" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "Executa _BibTeX" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "_Estadístiques del document" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Habilita la _correcció ortogràfica" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "Habilita els _fragments" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "_Projecte" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "Crea un projecte nou" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "Cal desar el document actiu\n" "abans d'usar aquesta funció." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "Obre un projecte" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "Tanca el projecte" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "A_juda" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Cerca _actualitzacions" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "Nou" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Obre" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Desa" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Imatge" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Taula" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matriu" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografia" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Anterior" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Següent" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "de 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Previsualització" #: ../data/ui/gummi.glade.h:112 #, fuzzy msgid "Build Log" msgstr "Registre de muntatge" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "Nº de fitxers:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "Camí de l'arrel:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "Nom del projecte:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "Document" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "Camí del fitxer" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" "Seleccioneu un fitxer per\n" "afegir-lo al projecte actiu." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "Esborra l'arxiu seleccionat\n" "del projecte." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "Projecte" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Nom del fitxer:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "cap" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referències:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/D" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "Detecta" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" "Detecta referències a un\n" "fitxer bibtex del document" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Compila" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "" "Compila la base de dades\n" "bibliogràfica activa" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "no s'ha detectat cap fitxer de bibliografia" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Títol" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtre:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Cerca" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Cerca:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "Reemplaça per:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Només coincideix la paraula sencera" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Cerca cap enrere" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Distingeix entre majúscules i minúscules" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "_Reemplaça" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "Reemplaça-ho _tot" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "Deseu aviat i sovint" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "Crea un document nou des d'una plantilla..." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" "Crea una plantilla a partir\n" "del document actiu" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "Esborra la plantilla seleccionada" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "Obre la plantilla seleccionada" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "compila mentre no es treballi cada" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "compila cada" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Cap" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "Sempre" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "Només quan la previsualització estigui sincronitzada amb l'editor" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "Mai" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Preferències del Gummi" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "Ajustament de línia" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Habilita l'ajustament de text" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "No separis les paraules en dues línies" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "Números de línia" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Mostra els números de línia" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "Ressaltament" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Ressalta la línia actual" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Visualització" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tabulacions" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Amplada de tabulació:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "Insereix _espais en lloc de tabulacions" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Sagnat automàtic" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "_Habilita el sagnat automàtic" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Fragments" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "Configura els fragments" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "Desat" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Desa els fitxers automàticament cada" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minuts" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "Tipus de lletra de l'editor" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Esquema de color" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "Tipus de lletra i colors" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Text per defecte" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "Ordre del compositor" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TexLive amb PdfTeX" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "No s'ha trobat el programa al sistema." #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TeXLive amb XeTeX" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "Opcions del compositor" #: ../data/ui/prefs.glade.h:39 #, fuzzy msgid "Use shell-escape" msgstr "--shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "Habilita el SyncTex" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "Passos de compilació" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "Compilació" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Compilació a PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "segons" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "Anima el desplaçament" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "Mida de la memòria cau" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "Previsualització" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "Idioma per a la correcció ortogràfica" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "Exportació a PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "Exporta a PDF automàticament quan es desi" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "Miscel·lània" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Restaura els valors per defecte" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Gestor de fragments" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "_Reinicia" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "_Restaura els fragments" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "Fragments:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Crea un document nou" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Restaura els fragments" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "Edita:" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Text centrat" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Nom del fitxer:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Activació" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Expansió per tabulador:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "Tecla de drecera:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "No existeix el fitxer o directori %s\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "No s'ha pogut inicialitzar la previsualització a PDF." #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "El document és buit o invàlid." #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "Falta el compilador." #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "El document actiu conté errors. La previsualització\n" "automàtica tornarà a funcionar quan hagueu solucionat\n" "aquests errors. Trobareu més informació a la pestanya\n" "registre de muntatge.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "El document actiu no és LaTeX vàlid. Podeu continuar\n" "treballant-hi, carregar el text per defecte o afegir-lo\n" "a un projecte actiu a través del menú Projecte.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "No s'ha trobat el compilador seleccionat. Torneu-lo a\n" "instalar o escolliu un altre tipògraf del menú\n" "Preferències. La previsualització automàtica no\n" "tornarà a funcionar fins que reinicieu el Gummi.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "Existeix un fitxer de recuperació per a %s, voleu obrir-lo?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "El fitxer ja existeix. El voleu sobreescriure?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "Carregant la plantilla..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "S'està compilant la bibliografia..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "s'ha compilat la bibliografia sense errors" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "" "S'ha produït un error mentre es compilava la bibliografia o no s'ha detectat" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "s'ha produït un error mentre es compilava la bibliografia" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "s'ha carregat %s" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Voleu desar els canvis?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Crea un document nou" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "Obre un document LaTeX" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "Seleccioneu una imatge per inserir" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "Escull el fitxer de bibliografia" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "Desa " #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "Desa com a document LaTeX" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "Exporta a PDF" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Crea un projecte nou" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "Fitxers LaTeX" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "Fitxers de text" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Fitxers d'imatge" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "Fitxers Bibtex" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Fitxers de projecte" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "S'ha produït un error mentre s'estava carregant el fitxer recent %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "S'ha produït un error metre s'executava Makeindex." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "S'està executant Makeindex..." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "S'ha produït un error metre s'executava Makeindex." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "Paraules del text" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "Paraules a capçaleres" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "Paraules a descripcions d'objectes flotants" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "Nombre de capçaleres" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "Nombre d'objectes flotants" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "Nombre de fórmules en línia" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "Nombre de fórmules a part" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "Cal desar el document actiu\n" "abans d'usar aquesta funció." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "de %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" "El codi d'expansió per tabulador està duplicat. Escolliu-ne un altre.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "Teclegeu una drecera" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "Teclegeu una drecera nova o la tecla de retrocés per esborrar-la" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "S'ha arribat al començament, voleu tornar al final?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "S'ha arribat al final, voleu tornar al començament?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "Desant %s..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "Intenteu-ho més tard." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "No s'ha pogut convertir el text a UTF-8.\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" "No s'ha pogut exportar a PDF\n" "perquè el document té errors.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "Document %d no desat" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "Versió instal·lada:\n" "%s\n" "Versió disponible:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "Cerca actualitzacions" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "Hi ha hagut un error greu a %s i caldrà reiniciar-lo. Les vostres dades es " "recuperaran quan obriu el document. Informeu sobre l'error a: http://dev." "midnightcoding.org" #: ../src/utils.c:168 msgid "Confirmation" msgstr "Confirmació" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Text en negreta" #~ msgid "Center text" #~ msgstr "Text centrat" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Estat d'error del\n" #~ "document actiu" #~ msgid "Italic text" #~ msgstr "Text en cursiva" #~ msgid "Load a file" #~ msgstr "Carrega un fitxer" #~ msgid "Pause updating the preview pane." #~ msgstr "Deixa d'actualitzar la previsualització." #~ msgid "Save the current file" #~ msgstr "Desa el fitxer actual" #~ msgid "Underline text" #~ msgstr "Text subratllat" #, fuzzy #~ msgid "Include document" #~ msgstr "Crea un document nou" #, fuzzy #~ msgid "New document" #~ msgstr "Crea un document nou" #, fuzzy #~ msgid "Open file" #~ msgstr "Obre el fitxer..." #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Alineació del contingut\n" #~ "de la cel·la" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "Quines cel·les tenen vora." #~ msgid "Error output" #~ msgstr "Errors" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "No s'ha pogut inicialitzar la previsualització.\n" #~ "\n" #~ "El vostre document LaTeX conté errors o bé\n" #~ "el programa «%s» no està instal·lat.\n" #~ "Es mostra informació addicional a la pestanya d'errors.\n" #~ "Corregiu la llista d'errors i cliqueu aquesta zona\n" #~ "per tornar a carregar la previsualització." #~ msgid "_Compile Bibliography" #~ msgstr "_Compila la bibliografia" #~ msgid "_Insert Bibliography" #~ msgstr "_Insereix una bibliografia" #, fuzzy #~ msgid "Customize" #~ msgstr "Compila" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "S'està desant el fitxer %s automàticament" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Crea un document nou" #~ msgid "_Tools" #~ msgstr "Ei_nes" #~ msgid "_Autocheck Spelling" #~ msgstr "Comprova l'ortografia _automàticament" #~ msgid "_Document Statistics" #~ msgstr "Estadístiques del _document" #~ msgid "" #~ "\n" #~ "Gummi has encountered a serious error and requires a restart, you can " #~ "find your file in the %s directory\n" #~ msgstr "" #~ "\n" #~ "El Gummi s'ha de reiniciar per culpa d'un error greu; trobareu el fitxer " #~ "al directori %s\n" #~ msgid "" #~ "Search document for\n" #~ "bibliography databases" #~ msgstr "" #~ "Cerca bases de dades\n" #~ "bibliogràfiques al document" #~ msgid "Changes will become active on next start" #~ msgstr "S'aplicaran els canvis la propera sessió" #~ msgid "PDF Compiling:" #~ msgstr "Compilació a PDF" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Paraules del text" #, fuzzy #~ msgid "Words in headers: ([0-9]*)" #~ msgstr "Paraules a capçaleres" #, fuzzy #~ msgid "Words in float captions: ([0-9]*)" #~ msgstr "Paraules a descripcions d'objectes flotants" #, fuzzy #~ msgid "Number of headers: ([0-9]*)" #~ msgstr "Nombre de capçaleres" #, fuzzy #~ msgid "Number of floats: ([0-9]*)" #~ msgstr "Nombre d'objectes flotants" #, fuzzy #~ msgid "Number of math inlines: ([0-9]*)" #~ msgstr "Nombre de fórmules en línia" #, fuzzy #~ msgid "Number of math displayed: ([0-9]*)" #~ msgstr "Nombre de fórmules a part" #~ msgid "Save File..." #~ msgstr "Desa el fitxer..." #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Article" #~ msgid "Book" #~ msgstr "Llibre" #~ msgid "Letter" #~ msgstr "Carta" #~ msgid "Report" #~ msgstr "Informe" # # Gummi Translation for ca_ES # # Copyright (C) Marc Vinyals 2010 # # This file is distributed under the same license as the Gummi package. # # Marc Vinyals , 2010. # Add your name to msgstr to have it included in the credits: #~ msgid "translator" #~ msgstr "Marc Vinyals" #~ msgid "Save?" #~ msgstr "Desa?" #~ msgid "Currently installed:\n" #~ msgstr "Versió instal·lada:\n" #~ msgid "" #~ "The server could not be contacted.\n" #~ "\n" #~ msgstr "" #~ "No s'ha pogut contactar amb el servidor.\n" #~ "\n" #~ msgid "internet connection." #~ msgstr "connexió a Internet activa." #~ msgid "Error" #~ msgstr "Error" gummi-0.6.5/po/da.po0000644000175000017500000006163112040524274011132 00000000000000msgid "" msgstr "" "Project-Id-Version: 0.4.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-05-23 23:05+0100\n" "Last-Translator: Jack Olsen jackolsendk@gmail.com\n" "Language-Team: Jack Olsen jackolsendk@gmail.com\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Kompiler" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Fremhævet tekst" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Fremhævet tekst" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Skabelonvalgmuligheder" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Fil:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Billedtekst:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Label:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Skala:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Rækker:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Kolonner:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Firkantparantes:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Uden firkantparantes" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Paranteser" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Firkantparantes" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Tuborgklammer" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Enkelt linie" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Dobbeltlinie" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Optimal tilpasning" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Tilpas til sidestørrelse" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Ventrestil" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Centrer" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Højrestil" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Ingen rammer" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "Ramme omkring" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Ramme omkring alle celler" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - LaTeX Editor" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Fil" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Ny fra _Skabelon" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Åben" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Gem _som..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "skulleikkesemig" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "R_et" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Vis" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Statuslinie" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "_Værktøjslinie" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Enkelt linie" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Fuldskærm" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Søg" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Find N_æste" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Find For_rige" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Kompiler" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Kompiler" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 #, fuzzy msgid "Set Compilation Options" msgstr "Skabelonvalgmuligheder" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Stavekontrolsprog:" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Opret et nyt dokument" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "Denne funktion kræver en aktiv\n" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Opret et nyt dokument" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Hjælp" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Check _Opdateringer" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Åben" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Gem" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "værktøjsknap5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "værktøjsknap6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "værktøjsknap7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "værktøjsknap1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "værktøjsknap2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "værktøjsknap3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Billede" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Tabel" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Matrice" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Bibliografi" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Forrige" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Næste" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "af 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Fremvisningspanel" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Kompiler" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Kompiler" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Fil gemmes:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Filnavn:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "ingen" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Referencer:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "N/A" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Kompiler" #: ../data/ui/gummi.glade.h:132 #, fuzzy msgid "" "Compile the active \n" "bibliography database" msgstr "Kompilerer bibliografi-filen" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "ingen bibliografi-fil fundet" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Titel" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "filtrer:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Find" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Søg efter:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Find kun blandt hele ord" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Søg bagud" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Forskel på store/små bogstaver" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 #, fuzzy msgid "Create new document from template.." msgstr "Opret nyt dokument.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 #, fuzzy msgid "compile when idle for " msgstr "Kompiler _automatisk hvert" #: ../data/ui/prefs.glade.h:2 #, fuzzy msgid "compile every" msgstr "Kompiler _automatisk hvert" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Ingen" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Gummi Indstillinger" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "Tekstombrydning:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Aktiver tekstombrydning" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Opdel ikke ord over to linier" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Linienumre:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Vis linienumre" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Fremhævning:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Fremhæv den nuværende linie" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Vis" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Automatisk indrykning" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Tekststumper" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Fil gemmes:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "Gem _automatisk hvert" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "minutter" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Editor" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Editor skrifttype:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Farveskema" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Standardtekst" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Skriftvalgskommando:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Skriftvalgskommando:" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Billedtekst:" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "PDF-kompilering" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "sekunder" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Fremvisningspanel" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Stavekontrolsprog:" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "PDF-kompilering" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Nulstil til standardinstilling" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Tekststumper" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "_Nulstil til standardinstilling" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Opret et nyt dokument" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Nulstil til standardinstilling" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "R_et" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Centrer tekst" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Filnavn:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Aktivering" #: ../data/ui/snippets.glade.h:13 #, fuzzy msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 #, fuzzy msgid "Compiling bibliography file..." msgstr "Kompilerer bibliografi-filen" #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "bibliografien kompilerede uden fejl" #: ../src/gui/gui-main.c:599 #, fuzzy msgid "Error compiling bibliography file or none detected..." msgstr "Fejl ved kompilering af bibliografi-filen eller ingen fundet..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "fejl ved kompilering af bibliografi-filen" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Ønsker du at gemme dine ændringer?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Opret et nyt dokument" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 #, fuzzy msgid "Open LaTeX document" msgstr "Opret et nyt dokument" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "" #: ../src/gui/gui-main.c:779 #, fuzzy msgid "Select bibliography file" msgstr "Kompilerer bibliografi-filen" #: ../src/gui/gui-main.c:812 #, fuzzy msgid "Save LaTeX document" msgstr "Opret et nyt dokument" #: ../src/gui/gui-main.c:813 #, fuzzy msgid "Save as LaTeX document" msgstr "Opret et nyt dokument" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Opret et nyt dokument" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Åben en fil" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Billede" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Gummi Indstillinger" #: ../src/gui/gui-menu.c:184 #, fuzzy, c-format msgid "Error loading recent file: %s" msgstr "Fejl ved indlæsning af nyere fil: " #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 #, fuzzy msgid "Words in text" msgstr "Fremhævet tekst" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "Denne funktion kræver en aktiv\n" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 #, fuzzy msgid "Type a new shortcut" msgstr "Opret et nyt dokument" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "" #: ../src/iofunctions.c:130 #, fuzzy, c-format msgid "Saving %s..." msgstr "Gem _som..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, fuzzy, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "\n" "\n" "Installeret i øjeblikket:\n" #: ../src/update.c:116 msgid "Update Check" msgstr "Opdateringskontrol" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 #, fuzzy msgid "Confirmation" msgstr "Billedtekst:" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Fremhævet tekst" #~ msgid "Center text" #~ msgstr "Centrer tekst" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Fejlstatus for\n" #~ "aktivt dokument" #~ msgid "Italic text" #~ msgstr "Kursiv skrift" #~ msgid "Load a file" #~ msgstr "Åben en fil" #~ msgid "Save the current file" #~ msgstr "Gem denne fil" #~ msgid "Underline text" #~ msgstr "Understreget tekst" #, fuzzy #~ msgid "Include document" #~ msgstr "Opret et nyt dokument" #, fuzzy #~ msgid "New document" #~ msgstr "Opret et nyt dokument" #, fuzzy #~ msgid "Open file" #~ msgstr "Åben Fil..." #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "Justering af celleindhold" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Afgør om cellerne\n" #~ "har liniekant. " #~ msgid "Error output" #~ msgstr "Fejlbeskeder" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "PDF-fremviser kunne ikke starte.\n" #~ "\n" #~ "Der ser ud til at være fejl i dit LaTeX-miljø.\n" #~ "Yderligere information er tilgængelig på fanebladet for fejlbeskeder.\n" #~ "Ret venligst de viste fejl og klik på dette område\n" #~ "for at genindlæse fremvisningspanelet." #~ msgid "_Compile Bibliography" #~ msgstr "_Kompiler Bibliografi" #~ msgid "_Insert Bibliography" #~ msgstr "_Indsæt Bibliografi" #, fuzzy #~ msgid "Customize" #~ msgstr "Kompiler" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #, fuzzy #~ msgid "Autosaving file %s" #~ msgstr "Gemmer fil " #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Opret et nyt dokument" #~ msgid "_Tools" #~ msgstr "_Værktøjer" #~ msgid "_Autocheck Spelling" #~ msgstr "Kontroller stavning _automatisk" #~ msgid "Changes will become active on next start" #~ msgstr "Ændringerne vil træde i kraft efter genstart" #~ msgid "PDF Compiling:" #~ msgstr "PDF kompilerer:" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Fremhævet tekst" #~ msgid "Save File..." #~ msgstr "Gem Fil..." #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Artikel" #~ msgid "Book" #~ msgstr "Bog" #~ msgid "Letter" #~ msgstr "Brev" #~ msgid "Report" #~ msgstr "Rapport" # # Gummi Translation for DA # # Copyright (C) Jack Olsen 2010 # # This file is distributed under the same license as the Gummi package. # Add your name to msgstr to have it included in the credits: #~ msgid "translator" #~ msgstr "Jack Olsen" #~ msgid "Save?" #~ msgstr "Gem?" #~ msgid "Currently installed:\n" #~ msgstr "Installeret i øjeblikket:\n" #~ msgid "" #~ "The server could not be contacted.\n" #~ "\n" #~ msgstr "" #~ "Der kunne ikke opnås forbindelse til serveren.\n" #~ "\n" #~ msgid "internet connection." #~ msgstr "internetforbindelse." #~ msgid "Error" #~ msgstr "Fejl" gummi-0.6.5/po/POTFILES.in0000644000175000017500000000225312040524274011756 00000000000000# List of source files which contain translatable strings. data/ui/gummi.glade data/ui/prefs.glade data/ui/snippets.glade src/compile/latexmk.c src/compile/latexmk.h src/compile/rubber.c src/compile/rubber.h src/compile/texlive.c src/compile/texlive.h src/gui/gui-import.c src/gui/gui-import.h src/gui/gui-infoscreen.c src/gui/gui-infoscreen.h src/gui/gui-main.c src/gui/gui-main.h src/gui/gui-menu.c src/gui/gui-menu.h src/gui/gui-prefs.c src/gui/gui-prefs.h src/gui/gui-preview.c src/gui/gui-preview.h src/gui/gui-project.c src/gui/gui-project.h src/gui/gui-search.c src/gui/gui-search.h src/gui/gui-snippets.c src/gui/gui-snippets.h src/gui/gui-tabmanager.c src/gui/gui-tabmanager.h src/biblio.c src/biblio.h src/configfile.c src/configfile.h src/constants.h src/editor.c src/editor.h src/environment.c src/environment.h src/external.c src/external.h src/importer.c src/importer.h src/iofunctions.c src/iofunctions.h src/latex.c src/latex.h src/main.c src/motion.c src/motion.h src/porting.h src/project.c src/project.h src/signals.c src/signals.h src/snippets.c src/snippets.h src/tabmanager.c src/tabmanager.h src/template.c src/template.h src/update.c src/update.h src/utils.c src/utils.h gummi-0.6.5/po/el.po0000644000175000017500000007070512040524274011150 00000000000000msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-05-24 14:43+0200\n" "Last-Translator: Dimitris Leventeas \n" "Language-Team: EL >\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "" #: ../data/ui/gummi.glade.h:2 #, fuzzy msgid "Document name" msgstr "Μετάφραση" #: ../data/ui/gummi.glade.h:3 #, fuzzy msgid "Words in:" msgstr "Έντονο κείμενο" #: ../data/ui/gummi.glade.h:4 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 #, fuzzy msgid "text" msgstr "Έντονο κείμενο" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "" #: ../data/ui/gummi.glade.h:8 #, fuzzy msgid "float captions" msgstr "Επιλογές προτύπου:" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "Αρχείο:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "Λεζάντα" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "Ετικέτα:" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "Κλίμακα:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "Σειρές:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "Στήλες:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "Αγκύλη:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "Χωρίς αγκύλες" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "Παρενθέσεις" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "Αγκύλες" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "Άγκιστρα" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "Μοναδική γραμμή" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "Διπλή γραμμή" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "Καλύτερο ταίριασμα" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "Χώρεσε σε Μήκος Σελίδας" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "Στοίχιση αριστερά" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "Στοίχιση στο κέντρο" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "Στοίχιση δεξιά" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "Χωρίς σύνορα" #: ../data/ui/gummi.glade.h:51 #, fuzzy msgid "Border outline" msgstr "Όρια όλων των κελιών" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "Όρια όλων των κελιών" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - Επεξεργαστής LaTeX" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "_Αρχείο" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "Νέο από _Πρώτυπο" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "_Άνοιγμα" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "Αποθήκευση _Ως..." #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "δενπρέπειναμεδεις" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "_Επεξεργασία" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "_Επισκόπιση" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "_Γραμμή προόδου" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "Γ_ραμμή Εργαλείων" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "" #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "" #: ../data/ui/gummi.glade.h:68 #, fuzzy msgid "Single Page" msgstr "Μοναδική γραμμή" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "_Πλήρης Οθόνη" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "_Αναζήτηση" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "Εύρεση Επο_μένου" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "Εύρεση Προη_γούμενου" #: ../data/ui/gummi.glade.h:74 #, fuzzy msgid "_Document" msgstr "Μετάφραση" #: ../data/ui/gummi.glade.h:75 #, fuzzy msgid "Compile _Document" msgstr "Μετάφραση" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "" #: ../data/ui/gummi.glade.h:78 #, fuzzy msgid "Set Compilation Options" msgstr "Επιλογές προτύπου:" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "Ορθογραφικός έλεγχος γλώσσας:" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "" #: ../data/ui/gummi.glade.h:86 #, fuzzy msgid "Create new Project" msgstr "Δημιουργία νέου έγγράφου" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 #, fuzzy msgid "" "This function requires the current\n" "active document to be saved. " msgstr "Αυτή η λειτουργία απαιτεί μια ενεργή\n" #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "" #: ../data/ui/gummi.glade.h:90 #, fuzzy msgid "Close Project" msgstr "Δημιουργία νέου έγγράφου" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "_Αναζήτηση" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "Έλεγξε _Αναβαθμίσεις" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "Άνοιξε" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "Αποθήκευση" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "κουμπίεργαλείου5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "κουμπίεργαλείου6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "κουμπίεργαλείου7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "κουμπίεργαλείου1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "κουμπίεργαλείου2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "κουμπίεργαλείου3" #: ../data/ui/gummi.glade.h:103 #, fuzzy msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "Εικόνα" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "Πίνακας" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "Μητρώο" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "Βιβλιογραφία" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "Προηγούμενο" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "Επόμενο" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "από 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "Υποπαράθυρο προεπισκόπισης" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "" #: ../data/ui/gummi.glade.h:115 #, fuzzy msgid "Project name:" msgstr "Μετάφραση" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr "" #: ../data/ui/gummi.glade.h:117 #, fuzzy msgid "Document" msgstr "Μετάφραση" #: ../data/ui/gummi.glade.h:118 #, fuzzy msgid "File path" msgstr "Αποθήκευση αρχείου:" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "" #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "Όνομα αρχείου:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "κανένα" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "Αναφορές:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "Μη Διαθέσιμο" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "Μετάφραση" #: ../data/ui/gummi.glade.h:132 #, fuzzy msgid "" "Compile the active \n" "bibliography database" msgstr "Μεταφράζοντας το αρχείο βιβλιογραφίας" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "Δεν βρέθηκε αρχείο βιβλιογραφίας" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "Τίτλος" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "φίλτρο:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "Εύρεση" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "Αναζήτηση για:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "Ταίριαξε ολόκληρη λέξη μόνο" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "Αναζήτης προς τα πίσω" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "Ταίριαξε κεφαλαία πεζά" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "" #: ../data/ui/gummi.glade.h:148 #, fuzzy msgid "Create new document from template.." msgstr "Δημιουργία νέου κειμένου" #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "" #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 #, fuzzy msgid "compile when idle for " msgstr "_Αυτόματη μετάφραση κάθε" #: ../data/ui/prefs.glade.h:2 #, fuzzy msgid "compile every" msgstr "_Αυτόματη μετάφραση κάθε" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "Κανένα" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Προτιμήσεις Gummi" #: ../data/ui/prefs.glade.h:8 #, fuzzy msgid "Text wrapping" msgstr "Αναδίπλωση κειμένου:" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "Ενεργοποίηση αναδίπλωσης κειμένου" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "Μη διαχωρίζεις λέξεις σε δύο γραμμές" #: ../data/ui/prefs.glade.h:12 #, fuzzy msgid "Line numbers" msgstr "Αριθμοί γραμμών:" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "Εμφάνιση αριθμών γράμμων" #: ../data/ui/prefs.glade.h:14 #, fuzzy msgid "Highlighting" msgstr "Τονίζοντας:" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "Τόνισε την τρέχουσα γραμμή" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "Επισκόπηση" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "Αυτόματη εσοχή" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "Snippets" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "" #: ../data/ui/prefs.glade.h:24 #, fuzzy msgid "File saving" msgstr "Αποθήκευση αρχείου:" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "_Αυτόματη αποθήκευση κάθε" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "λεπτά" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "Επεξεργαστής" #: ../data/ui/prefs.glade.h:28 #, fuzzy msgid "Editor font" msgstr "Γραμματοσειρά Επεξεργαστή:" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "Χρωματικό σχήμα" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "Προεπιλεγμένο Κείμενο" #: ../data/ui/prefs.glade.h:32 #, fuzzy msgid "Typesetter command" msgstr "Εντολή στοιχειοθέτησης:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "" #: ../data/ui/prefs.glade.h:38 #, fuzzy msgid "Typesetter options" msgstr "Εντολή στοιχειοθέτησης:" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "" #: ../data/ui/prefs.glade.h:45 #, fuzzy msgid "Compilation" msgstr "Λεζάντα" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "Μετάφραση PDF" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "δευτερόλεπτα" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "" #: ../data/ui/prefs.glade.h:51 #, fuzzy msgid "Preview" msgstr "Υποπαράθυρο προεπισκόπισης" #: ../data/ui/prefs.glade.h:52 #, fuzzy msgid "Spell check language" msgstr "Ορθογραφικός έλεγχος γλώσσας:" #: ../data/ui/prefs.glade.h:53 #, fuzzy msgid "PDF Exporting" msgstr "Μετάφραση PDF" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "_Επαναφορά προεπιλογών" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "Διαχειριστής Snippets" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "" #: ../data/ui/snippets.glade.h:3 #, fuzzy msgid "Reset all snippets" msgstr "_Επαναφορά προεπιλογών" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "Δημιουργία νέου έγγράφου" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "_Επαναφορά προεπιλογών" #: ../data/ui/snippets.glade.h:7 #, fuzzy msgid "Edit:" msgstr "_Επεξεργασία" #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "" #: ../data/ui/snippets.glade.h:9 #, fuzzy msgid "selected text" msgstr "Κεντράρισε κείμενο" #: ../data/ui/snippets.glade.h:10 #, fuzzy msgid "filename" msgstr "Όνομα αρχείου:" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "Ενεργοποίηση" #: ../data/ui/snippets.glade.h:13 #, fuzzy msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" #: ../src/gui/gui-main.c:368 #, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "" #: ../src/gui/gui-main.c:593 #, fuzzy msgid "Compiling bibliography file..." msgstr "Μεταφράζοντας το αρχείο βιβλιογραφίας" #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "Η βιβλιογραφία μεταφράστηκε χωρίς λάθη" #: ../src/gui/gui-main.c:599 #, fuzzy msgid "Error compiling bibliography file or none detected..." msgstr "Λάθος μεταφράζοντας το αρχείο βιβλιογραφίας ή δεν βρέθηκε κάποιο" #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "λάθος μεταφράζοντας το αρχείο βιβλιογραφίας" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "Θέλετε να αποθηκεύσετε τις αλλαγές που κάνατε;" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "Δημιουργία νέου έγγράφου" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 #, fuzzy msgid "Open LaTeX document" msgstr "Δημιουργία νέου έγγράφου" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "" #: ../src/gui/gui-main.c:779 #, fuzzy msgid "Select bibliography file" msgstr "Μεταφράζοντας το αρχείο βιβλιογραφίας" #: ../src/gui/gui-main.c:812 #, fuzzy msgid "Save LaTeX document" msgstr "Δημιουργία νέου έγγράφου" #: ../src/gui/gui-main.c:813 #, fuzzy msgid "Save as LaTeX document" msgstr "Δημιουργία νέου έγγράφου" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "" #: ../src/gui/gui-main.c:817 #, fuzzy msgid "Create project" msgstr "Δημιουργία νέου έγγράφου" #: ../src/gui/gui-main.c:862 #, fuzzy msgid "LaTeX files" msgstr "Φόρτωσε ένα αρχείο" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "Εικόνα" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "" #: ../src/gui/gui-main.c:904 #, fuzzy msgid "Gummi project files" msgstr "Προτιμήσεις Gummi" #: ../src/gui/gui-menu.c:184 #, fuzzy, c-format msgid "Error loading recent file: %s" msgstr "Σφάλμα φορτώνοντας πρόσφατο αρχείο: " #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 msgid "Error removing build files.." msgstr "" #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "" #: ../src/gui/gui-menu.c:450 #, fuzzy msgid "Words in text" msgstr "Έντονο κείμενο" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "Αυτή η λειτουργία απαιτεί μια ενεργή\n" #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "" #: ../src/gui/gui-snippets.c:343 #, fuzzy msgid "Type a new shortcut" msgstr "Δημιουργία νέου έγγράφου" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "" #: ../src/iofunctions.c:130 #, fuzzy, c-format msgid "Saving %s..." msgstr "Αποθήκευση _Ως..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "" #: ../src/latex.c:277 #, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "" #: ../src/update.c:114 #, fuzzy, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "\n" "\n" "Τρέχοντα διαθέσιμα:\n" #: ../src/update.c:116 msgid "Update Check" msgstr "Έλεγχος Αναβάθμισης" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" #: ../src/utils.c:168 #, fuzzy msgid "Confirmation" msgstr "Λεζάντα" #, fuzzy #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "Έντονο κείμενο" #~ msgid "Center text" #~ msgstr "Κεντράρισε κείμενο" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "Κατάσταση σφάλματος γις\n" #~ "ενεργό έγγραφο" #~ msgid "Italic text" #~ msgstr "Πλάγιο κείμενο" #~ msgid "Load a file" #~ msgstr "Φόρτωσε ένα αρχείο" #~ msgid "Save the current file" #~ msgstr "Αποθήκευση τρέχοντος αρχείου" #~ msgid "Underline text" #~ msgstr "Υπογράμμισε κείμενο" #, fuzzy #~ msgid "Include document" #~ msgstr "Δημιουργία νέου έγγράφου" #, fuzzy #~ msgid "New document" #~ msgstr "Δημιουργία νέου έγγράφου" #, fuzzy #~ msgid "Open file" #~ msgstr "Άνοιγμα Αρχείου..." #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "" #~ "Στοίχιση των\n" #~ "περιεχομένων του κελιού." #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "" #~ "Αποφάσισε αν τα\n" #~ "κελιά έχουν γραμμές συνόρων. " #~ msgid "Error output" #~ msgstr "Έξοδος σφαλμάτων" #, fuzzy #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "Η Προεπισκόπιση PDF δεν μπόρεσε να αρχικοποιηθεί.\n" #~ "\n" #~ "Φαίνεται πως το έγγραφο LaTeX περιέχει σφάλματα.\n" #~ "Επιπρόσθετη πληροφορία είναι διαθέσιμη στη καρτέλα Έξοδος Σφάλματος.\n" #~ "Παρακαλώ διορθώστε τα λάθη που παρατίθενται και κάντε κλικ σε αυτή\n" #~ "την περιοχή για να επαναφορτώσετε το υποπαράθυρο προεπισκόπισης." #~ msgid "_Compile Bibliography" #~ msgstr "_Μετάφρασε τη Βιβλιογραφία" #~ msgid "_Insert Bibliography" #~ msgstr "_Εισαγωγή Βιβλιογραφίας" #, fuzzy #~ msgid "Customize" #~ msgstr "Μετάφραση" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #, fuzzy #~ msgid "Autosaving file %s" #~ msgstr "Αποθηκεύοντας το αρχείο" #, fuzzy #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "Δημιουργία νέου έγγράφου" #~ msgid "_Tools" #~ msgstr "_Εργαλεία" #~ msgid "_Autocheck Spelling" #~ msgstr "_Αυτόματος Έλεγχος Ορθογραφίας" #~ msgid "Changes will become active on next start" #~ msgstr "Οι αλλαγές θα ενεργοποιηθούν στην επόμενη εκκίνηση" #~ msgid "PDF Compiling:" #~ msgstr "Μετάφραση PDF:" #, fuzzy #~ msgid "Words in text: ([0-9]*)" #~ msgstr "Έντονο κείμενο" #~ msgid "Save File..." #~ msgstr "Αποθήκευση Αρχείου..." #~ msgid ".." #~ msgstr ".." #~ msgid "Article" #~ msgstr "Άρθρο" #~ msgid "Book" #~ msgstr "Βιβλίο" #~ msgid "Letter" #~ msgstr "Γράμμα" #~ msgid "Report" #~ msgstr "Αναφορά" # Gummi Translation for Greek # Copyright (C) Dimitris Leventeas 2010 # This file is distributed under the same license as the Gummi package. # Dimitris Leventeas , 2010. # # Add your name to msgstr to have it included in the credits: #~ msgid "translator" #~ msgstr "Dimitris Leventeas" #~ msgid "Save?" #~ msgstr "Αποθήκευση;" #~ msgid "Currently installed:\n" #~ msgstr "Τρέχοντα εγκατεστημένα:\n" #~ msgid "" #~ "The server could not be contacted.\n" #~ "\n" #~ msgstr "" #~ "Ο εξυπηρετητής δεν μπορούσε να επικοινωνήσει.\n" #~ "\n" #~ msgid "internet connection." #~ msgstr "σύνδεση διαδικτύου" #~ msgid "Error" #~ msgstr "Σφάλμα" gummi-0.6.5/po/zh_TW.po0000644000175000017500000006306512040524274011604 00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-18 14:23+0200\n" "PO-Revision-Date: 2010-05-21 22:11+0800\n" "Last-Translator: AZ Huang \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/gummi.glade.h:1 msgid "Document statistics" msgstr "文件統計" #: ../data/ui/gummi.glade.h:2 msgid "Document name" msgstr "文件名" #: ../data/ui/gummi.glade.h:3 msgid "Words in:" msgstr "字數:" #: ../data/ui/gummi.glade.h:4 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:5 msgid "text" msgstr "文字" #: ../data/ui/gummi.glade.h:6 msgid "0" msgstr "0" #: ../data/ui/gummi.glade.h:7 msgid "headers" msgstr "標頭內總字數" #: ../data/ui/gummi.glade.h:8 msgid "float captions" msgstr "浮動標題內總字數" #: ../data/ui/gummi.glade.h:9 msgid "Number of:" msgstr "數量:" #: ../data/ui/gummi.glade.h:10 msgid "floats" msgstr "浮動物件" #: ../data/ui/gummi.glade.h:11 msgid "math environments" msgstr "數學環境" #: ../data/ui/gummi.glade.h:12 msgid "PDF Preview could not initialise." msgstr "無法啟動PDF預覽" #: ../data/ui/gummi.glade.h:13 msgid "File:" msgstr "檔案:" #: ../data/ui/gummi.glade.h:14 msgid "Style:" msgstr "樣式:" #: ../data/ui/gummi.glade.h:15 msgid "Caption:" msgstr "標題:" #: ../data/ui/gummi.glade.h:16 msgid "Label:" msgstr "標籤" #: ../data/ui/gummi.glade.h:17 msgid "Scale:" msgstr "縮放:" #: ../data/ui/gummi.glade.h:18 msgid "Rows:" msgstr "列:" #: ../data/ui/gummi.glade.h:19 msgid "Columns:" msgstr "行:" #: ../data/ui/gummi.glade.h:20 msgid "Bracket:" msgstr "括弧:" #: ../data/ui/gummi.glade.h:21 msgid "Unbracketed" msgstr "無括弧" #: ../data/ui/gummi.glade.h:22 msgid "Parentheses" msgstr "括號" #: ../data/ui/gummi.glade.h:23 msgid "Brackets" msgstr "方括弧" #: ../data/ui/gummi.glade.h:24 msgid "Braces" msgstr "大括弧" #: ../data/ui/gummi.glade.h:25 msgid "Single line" msgstr "單線" #: ../data/ui/gummi.glade.h:26 msgid "Double line" msgstr "雙線" #: ../data/ui/gummi.glade.h:27 msgid "Best Fit" msgstr "最適合大小" #: ../data/ui/gummi.glade.h:28 msgid "Fit Page Width" msgstr "符合頁寬" #: ../data/ui/gummi.glade.h:30 #, no-c-format msgid "50%" msgstr "50%" #: ../data/ui/gummi.glade.h:32 #, no-c-format msgid "70%" msgstr "70%" #: ../data/ui/gummi.glade.h:34 #, no-c-format msgid "85%" msgstr "85%" #: ../data/ui/gummi.glade.h:36 #, no-c-format msgid "100%" msgstr "100%" #: ../data/ui/gummi.glade.h:38 #, no-c-format msgid "125%" msgstr "125%" #: ../data/ui/gummi.glade.h:40 #, no-c-format msgid "150%" msgstr "150%" #: ../data/ui/gummi.glade.h:42 #, no-c-format msgid "200%" msgstr "200%" #: ../data/ui/gummi.glade.h:44 #, no-c-format msgid "300%" msgstr "300%" #: ../data/ui/gummi.glade.h:46 #, no-c-format msgid "400%" msgstr "400%" #: ../data/ui/gummi.glade.h:47 msgid "Align left" msgstr "向左對齊" #: ../data/ui/gummi.glade.h:48 msgid "Align center" msgstr "置中" #: ../data/ui/gummi.glade.h:49 msgid "Align right" msgstr "向右對齊" #: ../data/ui/gummi.glade.h:50 msgid "No borders" msgstr "無邊框" #: ../data/ui/gummi.glade.h:51 msgid "Border outline" msgstr "外層邊框" #: ../data/ui/gummi.glade.h:52 msgid "Border all cells" msgstr "完整邊框" #: ../data/ui/gummi.glade.h:53 msgid "Gummi - LaTeX Editor" msgstr "Gummi - LaTex 編輯器" #: ../data/ui/gummi.glade.h:54 msgid "_File" msgstr "檔案(_F)" #: ../data/ui/gummi.glade.h:55 msgid "New from _Template" msgstr "從模版新增(_T)" #: ../data/ui/gummi.glade.h:56 msgid "_Open..." msgstr "開啟...(_O)" #: ../data/ui/gummi.glade.h:57 msgid "Save _As..." msgstr "另存新檔...(_A)" #: ../data/ui/gummi.glade.h:58 msgid "_Export to PDF" msgstr "匯出為PDF" #: ../data/ui/gummi.glade.h:59 msgid "shouldnotseeme" msgstr "shouldnotseeme" #: ../data/ui/gummi.glade.h:60 msgid "_Edit" msgstr "編輯(_E)" #: ../data/ui/gummi.glade.h:61 msgid "_View" msgstr "檢視(_V)" #: ../data/ui/gummi.glade.h:62 msgid "_Statusbar" msgstr "狀態列(_S)" #: ../data/ui/gummi.glade.h:63 msgid "_Toolbar" msgstr "工具列(_T)" #: ../data/ui/gummi.glade.h:64 msgid "_Right Pane" msgstr "右側欄" #: ../data/ui/gummi.glade.h:65 msgid "" "Use SyncTeX to scroll preview to the part of the document that was last " "edited." msgstr "捲動預覽到最近編輯的地方." #: ../data/ui/gummi.glade.h:66 msgid "Sync Preview with Editor" msgstr "同步預覽與編輯器" #: ../data/ui/gummi.glade.h:67 msgid "Page Layout in Preview" msgstr "預覽格式" #: ../data/ui/gummi.glade.h:68 msgid "Single Page" msgstr "單頁" #: ../data/ui/gummi.glade.h:69 msgid "Continuous, One Column" msgstr "單頁連續" #: ../data/ui/gummi.glade.h:70 msgid "_Fullscreen" msgstr "全螢幕(_T)" #: ../data/ui/gummi.glade.h:71 msgid "_Search" msgstr "搜尋(_S)" #: ../data/ui/gummi.glade.h:72 msgid "Find Ne_xt" msgstr "找下一個(_X)" #: ../data/ui/gummi.glade.h:73 msgid "Find Pre_vious" msgstr "找前一個(_V)" #: ../data/ui/gummi.glade.h:74 msgid "_Document" msgstr "文件(_D)" #: ../data/ui/gummi.glade.h:75 msgid "Compile _Document" msgstr "編譯_PDF" #: ../data/ui/gummi.glade.h:76 msgid "" "Compile LaTeX document\n" "and update preview." msgstr "更新LaTeX文件及預覽" #: ../data/ui/gummi.glade.h:78 msgid "Set Compilation Options" msgstr "設定編譯選項" #: ../data/ui/gummi.glade.h:79 msgid "_Cleanup Build Files" msgstr "" #: ../data/ui/gummi.glade.h:80 msgid "Run _Makeindex" msgstr "編譯索引" #: ../data/ui/gummi.glade.h:81 msgid "Run _BibTeX" msgstr "編譯參考文獻" #: ../data/ui/gummi.glade.h:82 msgid "Document _Statistics" msgstr "文件資訊(_S)" #: ../data/ui/gummi.glade.h:83 #, fuzzy msgid "Enable S_pell Checking" msgstr "啟用拼字檢查(_A)" #: ../data/ui/gummi.glade.h:84 msgid "Enable S_nippets" msgstr "啟用文字片段" #: ../data/ui/gummi.glade.h:85 msgid "_Project" msgstr "專案(_P)" #: ../data/ui/gummi.glade.h:86 msgid "Create new Project" msgstr "建立新專案" #: ../data/ui/gummi.glade.h:87 ../src/gui/gui-menu.c:606 msgid "" "This function requires the current\n" "active document to be saved. " msgstr "" "這項功能需要\n" "當前文件存檔後才能執行." #: ../data/ui/gummi.glade.h:89 msgid "Open Project" msgstr "開啟專案" #: ../data/ui/gummi.glade.h:90 msgid "Close Project" msgstr "關閉專案" #: ../data/ui/gummi.glade.h:91 msgid "_Help" msgstr "幫助(_H)" #: ../data/ui/gummi.glade.h:92 msgid "User _Guide" msgstr "" #: ../data/ui/gummi.glade.h:93 msgid "Check _Updates" msgstr "檢查更新(_U)" #: ../data/ui/gummi.glade.h:94 msgid "New" msgstr "新增" #: ../data/ui/gummi.glade.h:95 msgid "Open" msgstr "開啟" #: ../data/ui/gummi.glade.h:96 msgid "Save" msgstr "儲存" #: ../data/ui/gummi.glade.h:97 msgid "toolbutton5" msgstr "toolbutton5" #: ../data/ui/gummi.glade.h:98 msgid "toolbutton6" msgstr "toolbutton6" #: ../data/ui/gummi.glade.h:99 msgid "toolbutton7" msgstr "toolbutton7" #: ../data/ui/gummi.glade.h:100 msgid "toolbutton1" msgstr "toolbutton1" #: ../data/ui/gummi.glade.h:101 msgid "toolbutton2" msgstr "toolbutton2" #: ../data/ui/gummi.glade.h:102 msgid "toolbutton3" msgstr "toolbutton3" #: ../data/ui/gummi.glade.h:103 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:104 msgid "Image" msgstr "影像" #: ../data/ui/gummi.glade.h:105 msgid "Table" msgstr "表格" #: ../data/ui/gummi.glade.h:106 msgid "Matrix" msgstr "矩陣" #: ../data/ui/gummi.glade.h:107 msgid "Bibliography" msgstr "參考文獻" #: ../data/ui/gummi.glade.h:108 msgid "Previous" msgstr "前一個" #: ../data/ui/gummi.glade.h:109 msgid "Next" msgstr "下一個" #: ../data/ui/gummi.glade.h:110 msgid "of 0" msgstr "/ 0" #: ../data/ui/gummi.glade.h:111 msgid "Preview Pane" msgstr "預覽" #: ../data/ui/gummi.glade.h:112 msgid "Build Log" msgstr "編譯訊息" #: ../data/ui/gummi.glade.h:113 msgid "Nr of files:" msgstr "檔案數量:" #: ../data/ui/gummi.glade.h:114 msgid "Root path:" msgstr "專案根目錄:" #: ../data/ui/gummi.glade.h:115 msgid "Project name:" msgstr "專案名稱:" #: ../data/ui/gummi.glade.h:116 ../data/ui/prefs.glade.h:9 msgid " " msgstr " " #: ../data/ui/gummi.glade.h:117 msgid "Document" msgstr "文件" #: ../data/ui/gummi.glade.h:118 msgid "File path" msgstr "檔案路徑" #: ../data/ui/gummi.glade.h:119 msgid "" "Select a file to add it \n" "to the active project. " msgstr "請選擇要加入專案的文件." #: ../data/ui/gummi.glade.h:121 msgid "" "Remove the selected\n" "file from the project." msgstr "" "從專案中移除\n" "選取的文件." #: ../data/ui/gummi.glade.h:123 msgid "Project" msgstr "專案" #: ../data/ui/gummi.glade.h:124 msgid "Filename:" msgstr "檔名:" #: ../data/ui/gummi.glade.h:125 ../src/gui/gui-main.c:644 msgid "none" msgstr "無" #: ../data/ui/gummi.glade.h:126 msgid "References:" msgstr "參考:" #: ../data/ui/gummi.glade.h:127 ../src/gui/gui-main.c:645 msgid "N/A" msgstr "無" #: ../data/ui/gummi.glade.h:128 msgid "Detect" msgstr "偵測" #: ../data/ui/gummi.glade.h:129 msgid "" "Detect mention of a bibtex\n" "file in the current document" msgstr "偵測在文件中出現的參考文獻" #: ../data/ui/gummi.glade.h:131 msgid "Compile" msgstr "編譯" #: ../data/ui/gummi.glade.h:132 msgid "" "Compile the active \n" "bibliography database" msgstr "編譯目前的參考文獻" #: ../data/ui/gummi.glade.h:134 ../src/gui/gui-main.c:643 msgid "no bibliography file detected" msgstr "無法找到參考文獻" #: ../data/ui/gummi.glade.h:135 msgid "Title" msgstr "標題" #: ../data/ui/gummi.glade.h:136 msgid "Author" msgstr "作者" #: ../data/ui/gummi.glade.h:137 msgid "Year" msgstr "年份" #: ../data/ui/gummi.glade.h:138 msgid "filter:" msgstr "篩選:" #: ../data/ui/gummi.glade.h:139 msgid "Find" msgstr "搜尋" #: ../data/ui/gummi.glade.h:140 msgid "Search for:" msgstr "尋找:" #: ../data/ui/gummi.glade.h:141 msgid "Replace with:" msgstr "取代為:" #: ../data/ui/gummi.glade.h:142 msgid "Match entire word only" msgstr "只配對此單字" #: ../data/ui/gummi.glade.h:143 msgid "Search backwards" msgstr "向後搜尋" #: ../data/ui/gummi.glade.h:144 msgid "Match case" msgstr "區分大小寫" #: ../data/ui/gummi.glade.h:145 msgid "_Replace" msgstr "取代(_R)" #: ../data/ui/gummi.glade.h:146 msgid "Replace _All" msgstr "全部取代(_A)" #: ../data/ui/gummi.glade.h:147 msgid "Save early.. save often!" msgstr "多存檔有益身體建康!" #: ../data/ui/gummi.glade.h:148 msgid "Create new document from template.." msgstr "從模版建立新文件.." #: ../data/ui/gummi.glade.h:149 msgid "" "Make a template from the \n" "current active document." msgstr "從目前編輯的文件產生模版." #: ../data/ui/gummi.glade.h:151 msgid "Deletes the selected template" msgstr "刪除選擇的模版" #: ../data/ui/gummi.glade.h:152 msgid "Open the selected template" msgstr "打開選擇的模版" #: ../data/ui/gummi.glade.h:153 #, fuzzy msgid "10" msgstr "0" #: ../data/ui/prefs.glade.h:1 msgid "compile when idle for " msgstr "自動編譯: 當閒罝" #: ../data/ui/prefs.glade.h:2 msgid "compile every" msgstr "自動編譯間隔" #: ../data/ui/prefs.glade.h:3 msgid "None" msgstr "無" #: ../data/ui/prefs.glade.h:4 msgid "Always" msgstr "永遠" #: ../data/ui/prefs.glade.h:5 msgid "Only when syncing preview with editor" msgstr "只有當預覽與編輯器同步時" #: ../data/ui/prefs.glade.h:6 msgid "Never" msgstr "永不" #: ../data/ui/prefs.glade.h:7 msgid "Gummi Preferences" msgstr "Gummi 偏好設定" #: ../data/ui/prefs.glade.h:8 msgid "Text wrapping" msgstr "文字換行" #: ../data/ui/prefs.glade.h:10 msgid "Enable text wrapping" msgstr "啟用文字換行" #: ../data/ui/prefs.glade.h:11 msgid "Do not split words over two lines" msgstr "換行時不將字詞拆開" #: ../data/ui/prefs.glade.h:12 msgid "Line numbers" msgstr "行號" #: ../data/ui/prefs.glade.h:13 msgid "Display line numbers" msgstr "顯示行號" #: ../data/ui/prefs.glade.h:14 msgid "Highlighting" msgstr "強調" #: ../data/ui/prefs.glade.h:15 msgid "Highlight current line" msgstr "標示當前的行" #: ../data/ui/prefs.glade.h:16 msgid "View" msgstr "檢視" #: ../data/ui/prefs.glade.h:17 msgid "Tab stops" msgstr "Tab 停止位置" #: ../data/ui/prefs.glade.h:18 msgid "Tab width:" msgstr "Tab 字符寬度:" #: ../data/ui/prefs.glade.h:19 msgid "Insert _spaces instead of tabs" msgstr "插入空格來替代Tab字符(_S)" #: ../data/ui/prefs.glade.h:20 msgid "Automatic Indentation" msgstr "自動縮排" #: ../data/ui/prefs.glade.h:21 msgid "_Enable automatic indentation" msgstr "啟用自動縮排功能(_E)" #: ../data/ui/prefs.glade.h:22 msgid "Snippets" msgstr "文字片段" #: ../data/ui/prefs.glade.h:23 msgid "Configure snippets" msgstr "設定文字片段" #: ../data/ui/prefs.glade.h:24 msgid "File saving" msgstr "存檔" #: ../data/ui/prefs.glade.h:25 msgid "_Autosave files every" msgstr "自動儲存間隔(_A)" #: ../data/ui/prefs.glade.h:26 msgid "minutes" msgstr "分鐘" #: ../data/ui/prefs.glade.h:27 msgid "Editor" msgstr "編輯器" #: ../data/ui/prefs.glade.h:28 msgid "Editor font" msgstr "編輯器字體" #: ../data/ui/prefs.glade.h:29 msgid "Color Scheme" msgstr "色彩配置" #: ../data/ui/prefs.glade.h:30 msgid "Font & Colors" msgstr "字型及顏色" #: ../data/ui/prefs.glade.h:31 msgid "Default Text" msgstr "預設文字" #: ../data/ui/prefs.glade.h:32 msgid "Typesetter command" msgstr "排版指令:" #: ../data/ui/prefs.glade.h:33 msgid "TeXLive with PdfTeX" msgstr "TexLive: PdfTex" #: ../data/ui/prefs.glade.h:34 msgid "This program was not found on your system." msgstr "無法在您的系統中找到這個程式" #: ../data/ui/prefs.glade.h:35 msgid "TeXLive with XeTeX" msgstr "TexLive: XeTex" #: ../data/ui/prefs.glade.h:36 msgid "Rubber" msgstr "Rubber" #: ../data/ui/prefs.glade.h:37 msgid "Latexmk" msgstr "Latexmk" #: ../data/ui/prefs.glade.h:38 msgid "Typesetter options" msgstr "排版指令選項" #: ../data/ui/prefs.glade.h:39 msgid "Use shell-escape" msgstr "使用shell-escape" #: ../data/ui/prefs.glade.h:40 msgid "Enable SyncTeX" msgstr "啟用SyncTeX" #: ../data/ui/prefs.glade.h:41 msgid "Compilation steps" msgstr "編譯步驟" #: ../data/ui/prefs.glade.h:42 msgid "TeX → PDF" msgstr "TeX → PDF" #: ../data/ui/prefs.glade.h:43 msgid "TeX → DVI → PDF" msgstr "TeX → DVI → PDF" #: ../data/ui/prefs.glade.h:44 msgid "TeX → DVI → PS → PDF" msgstr "TeX → DVI → PS → PDF" #: ../data/ui/prefs.glade.h:45 msgid "Compilation" msgstr "編譯" #: ../data/ui/prefs.glade.h:46 msgid "PDF Compiling" msgstr "PDF編譯" #: ../data/ui/prefs.glade.h:47 msgid "seconds" msgstr "秒" #: ../data/ui/prefs.glade.h:48 msgid "Use animated scroll" msgstr "捲動時使用動畫" #: ../data/ui/prefs.glade.h:49 msgid "Cache size" msgstr "快取大小" #: ../data/ui/prefs.glade.h:50 msgid "MB" msgstr "MB" #: ../data/ui/prefs.glade.h:51 msgid "Preview" msgstr "預覽" #: ../data/ui/prefs.glade.h:52 msgid "Spell check language" msgstr "拼字檢查語言" #: ../data/ui/prefs.glade.h:53 msgid "PDF Exporting" msgstr "PDF 匯出" #: ../data/ui/prefs.glade.h:54 msgid "Automatically export PDF on document save" msgstr "存檔時自動匯出 PDF" #: ../data/ui/prefs.glade.h:55 msgid "Miscellaneous" msgstr "雜項" #: ../data/ui/prefs.glade.h:56 msgid "_Reset defaults" msgstr "重設為預設(_R)" #: ../data/ui/snippets.glade.h:1 msgid "Snippets Manager" msgstr "文字片段管理" #: ../data/ui/snippets.glade.h:2 msgid "_Reset" msgstr "重設(_R)" #: ../data/ui/snippets.glade.h:3 msgid "Reset all snippets" msgstr "重設為預設" #: ../data/ui/snippets.glade.h:4 msgid "Snippets:" msgstr "文字片段:" #: ../data/ui/snippets.glade.h:5 #, fuzzy msgid "Create a new snippet" msgstr "建立新文件" #: ../data/ui/snippets.glade.h:6 #, fuzzy msgid "Remove selected snippet" msgstr "重設為預設" #: ../data/ui/snippets.glade.h:7 msgid "Edit:" msgstr "編輯: " #: ../data/ui/snippets.glade.h:8 msgid "Insert macro" msgstr "插入巨集" #: ../data/ui/snippets.glade.h:9 msgid "selected text" msgstr "已選取文字" #: ../data/ui/snippets.glade.h:10 msgid "filename" msgstr "檔名" #: ../data/ui/snippets.glade.h:11 msgid "basename" msgstr "檔案名稱" #: ../data/ui/snippets.glade.h:12 msgid "Activation" msgstr "觸發" #: ../data/ui/snippets.glade.h:13 msgid " " msgstr " " #: ../data/ui/snippets.glade.h:14 msgid "Tab trigger:" msgstr "Tab 觸發:" #: ../data/ui/snippets.glade.h:15 msgid "Shortcut key:" msgstr "捷徑鍵:" #: ../src/gui/gui-import.c:229 #, c-format msgid "%s: No such file or directory\n" msgstr "%s: 找不到此檔案或目錄\n" #: ../src/gui/gui-infoscreen.c:117 msgid "PDF preview could not initialise." msgstr "無法啟動PDF預覽" #: ../src/gui/gui-infoscreen.c:118 msgid "Document appears to be empty or invalid." msgstr "文件似乎是空白或無效的LaTeX文件" #: ../src/gui/gui-infoscreen.c:119 msgid "Compilation program is missing." msgstr "無法找到編譯程式" #: ../src/gui/gui-infoscreen.c:128 msgid "" "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n" msgstr "" "目前的文件中包含錯誤,PDF預覽將在錯誤修正後自動恢復.\n" "請參考編譯訊息分頁中的資訊修正錯誤.\n" #: ../src/gui/gui-infoscreen.c:133 msgid "" "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n" msgstr "" "目前的文件是無效的LaTeX文件. 你可以繼續編輯或是從\n" "專案選單中加入LaTeX文件.\n" #: ../src/gui/gui-infoscreen.c:138 msgid "" "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n" msgstr "" "您選擇的編譯程式無法被找到. 請重新安裝編譯程式或是\n" "選擇其他的編譯程式. PDF預覽將在Gummi重啟後恢復.\n" #: ../src/gui/gui-main.c:368 #, fuzzy, c-format msgid "Swap file exists for %s, do you want to recover from it?" msgstr "找到%s的暫存檔, 你想要從暫存檔回復嗎?" #: ../src/gui/gui-main.c:420 ../src/latex.c:270 msgid "The file already exists. Overwrite?" msgstr "檔案已存在, 覆蓋嗎?" #. add Loading message to status bar #: ../src/gui/gui-main.c:524 #, c-format msgid "Loading template ..." msgstr "載入模版中..." #: ../src/gui/gui-main.c:593 msgid "Compiling bibliography file..." msgstr "正在編譯參考文獻..." #: ../src/gui/gui-main.c:595 #, fuzzy msgid "Bibliography compiled without errors" msgstr "參考文獻已成功編譯" #: ../src/gui/gui-main.c:599 msgid "Error compiling bibliography file or none detected..." msgstr "編譯過程中發生錯誤或無法找到參考文獻..." #: ../src/gui/gui-main.c:601 #, fuzzy msgid "Error compiling bibliography file" msgstr "編譯參考文獻過程發生錯誤" #: ../src/gui/gui-main.c:634 #, c-format msgid "%s loaded" msgstr "已載入%s" #: ../src/gui/gui-main.c:744 #, fuzzy, c-format msgid "Do you want to save the changes to %s?" msgstr "是否儲存變更?" #: ../src/gui/gui-main.c:745 #, fuzzy msgid "this document" msgstr "輸入文件" #: ../src/gui/gui-main.c:753 msgid "Unsaved Changes" msgstr "" #: ../src/gui/gui-main.c:775 msgid "Open LaTeX document" msgstr "開啟LaTeX文件" #: ../src/gui/gui-main.c:778 msgid "Select an image to insert" msgstr "選擇要插入的影像" #: ../src/gui/gui-main.c:779 msgid "Select bibliography file" msgstr "選擇參考文獻檔案" #: ../src/gui/gui-main.c:812 msgid "Save LaTeX document" msgstr "儲存LaTeX文件" #: ../src/gui/gui-main.c:813 msgid "Save as LaTeX document" msgstr "另存為LaTeX文件" #: ../src/gui/gui-main.c:814 msgid "Export to PDF" msgstr "匯出為PDF" #: ../src/gui/gui-main.c:817 msgid "Create project" msgstr "建立新專案" #: ../src/gui/gui-main.c:862 msgid "LaTeX files" msgstr "LaTeX 文件" #: ../src/gui/gui-main.c:867 msgid "Text files" msgstr "純文字文件" #. Only \insertgraphics uses this section now. Make sure #. * the patterns & mimes are correct before assigning it #. * for other functions #: ../src/gui/gui-main.c:883 #, fuzzy msgid "Supported Image files" msgstr "影像檔" #: ../src/gui/gui-main.c:898 msgid "Bibtex files" msgstr "參考文獻" #: ../src/gui/gui-main.c:904 msgid "Gummi project files" msgstr "Gummi 專案檔" #: ../src/gui/gui-menu.c:184 #, c-format msgid "Error loading recent file: %s" msgstr "載入最近使用文件時發生錯誤: %s" #: ../src/gui/gui-menu.c:413 msgid "Succesfully removed build files.." msgstr "" #: ../src/gui/gui-menu.c:416 #, fuzzy msgid "Error removing build files.." msgstr "執行Makeindex的過程中發生錯誤.." #: ../src/gui/gui-menu.c:423 msgid "Running Makeindex.." msgstr "執行Makeindex中.." #: ../src/gui/gui-menu.c:426 msgid "Error running Makeindex.." msgstr "執行Makeindex的過程中發生錯誤.." #: ../src/gui/gui-menu.c:450 msgid "Words in text" msgstr "純文字數" #: ../src/gui/gui-menu.c:451 msgid "Words in headers" msgstr "標頭內總字數" #: ../src/gui/gui-menu.c:452 msgid "Words in float captions" msgstr "浮動標題內總字數" #: ../src/gui/gui-menu.c:453 msgid "Number of headers" msgstr "標頭總數" #: ../src/gui/gui-menu.c:454 msgid "Number of floats" msgstr "浮動元件總數" #: ../src/gui/gui-menu.c:455 msgid "Number of math inlines" msgstr "行內數學式總數" #: ../src/gui/gui-menu.c:456 msgid "Number of math displayed" msgstr "顯示的數學式總數" #: ../src/gui/gui-menu.c:591 #, fuzzy msgid "This function requires an active document" msgstr "" "這項功能需要\n" "當前文件存檔後才能執行." #: ../src/gui/gui-preview.c:904 #, c-format msgid "of %d" msgstr "之 %d" #: ../src/gui/gui-snippets.c:329 msgid "" "Duplicate activation tab trigger dectected! Please choose another one.\n" msgstr "Tab觸發字串重覆! 請選擇另一個字串.\n" #: ../src/gui/gui-snippets.c:343 msgid "Type a new shortcut" msgstr "輸入新的捷徑" #: ../src/gui/gui-snippets.c:346 msgid "Type a new shortcut, or press Backspace to clear" msgstr "輸入新的捷徑, 或按後退鍵清除" #: ../src/editor.c:573 msgid "Top reached, search from bottom?" msgstr "已搜尋到文首, 從文末開始尋找?" #: ../src/editor.c:580 msgid "Bottom reached, search from top?" msgstr "已搜尋到文末, 從文首開始尋找?" #: ../src/iofunctions.c:130 #, c-format msgid "Saving %s..." msgstr "儲存%s中..." #: ../src/iofunctions.c:166 #, c-format msgid "" "%s\n" "Please try again later." msgstr "" "%s\n" "請稍後重試." #: ../src/iofunctions.c:239 msgid "Can not convert text to UTF-8!\n" msgstr "無法轉換文字為UTF-8格式!\n" #: ../src/latex.c:277 #, fuzzy, c-format msgid "" "Unable to export PDF file.\n" "\n" "%s" msgstr "文件包含錯誤, 無法匯出為PDF.\n" #: ../src/tabmanager.c:73 #, c-format msgid "Unsaved Document %d" msgstr "未儲存文件 %d" #: ../src/update.c:114 #, c-format msgid "" "Currently installed:\n" "%s\n" "\n" "Currently available:\n" "%s" msgstr "" "安裝版本:\n" "%s\n" "\n" "最新版本:\n" "%s" #: ../src/update.c:116 msgid "Update Check" msgstr "檢查更新" #: ../src/utils.c:122 #, c-format msgid "" "%s has encountered a serious error and will require a restart. Your working " "data will be restored when you reload your document. Please report bugs at: " "http://dev.midnightcoding.org" msgstr "" "%s 遭遇到了一個嚴重的錯誤必須重新啟動. 你的文件將在重新開啟時被復原. 請到 " "http://dev.midnightcoding.org 回報這個錯誤." #: ../src/utils.c:168 msgid "Confirmation" msgstr "確認" #~ msgid " " #~ msgstr " " #~ msgid "Bold text" #~ msgstr "粗體" #~ msgid "Center text" #~ msgstr "置中" #~ msgid "" #~ "Error status for\n" #~ "active document" #~ msgstr "" #~ "目前文件\n" #~ "的錯誤輸出" #~ msgid "Italic text" #~ msgstr "斜體" #~ msgid "Load a file" #~ msgstr "載入檔案" #~ msgid "Pause updating the preview pane." #~ msgstr "暫停更新預覽" #~ msgid "Save the current file" #~ msgstr "儲存目前檔案" #~ msgid "Underline text" #~ msgstr "底線" #~ msgid "Hello svn user!" #~ msgstr "SVN使用者你好!" #~ msgid "Include document" #~ msgstr "引入文件" #~ msgid "New document" #~ msgstr "建立新文件" #~ msgid "Open file" #~ msgstr "開啟檔案" #~ msgid "" #~ "Alignment of the\n" #~ "cell content." #~ msgstr "表格的對齊方式" #~ msgid "" #~ "Determines whether the\n" #~ "cells have line borders. " #~ msgstr "設定表格格線" #~ msgid "Error output" #~ msgstr "錯誤輸出" #~ msgid "" #~ "PDF Preview could not initialize.\n" #~ "It appears your LaTeX document contains errors\n" #~ "Additional information is available on the \n" #~ "Error Output tab" #~ msgstr "" #~ "無法啟動PDF預覽.\n" #~ "\n" #~ "您的LaTeX文件中包含錯誤或是%s未被案裝.\n" #~ "更多的訊息請參照錯誤輸出欄.\n" #~ "預覽將在錯誤修正後自動啟動." #~ msgid "_Compile Bibliography" #~ msgstr "編譯參考文獻(_C)" #~ msgid "_Insert Bibliography" #~ msgstr "插入參考文獻(_I)" #~ msgid "Command: " #~ msgstr "指令: " #~ msgid "Customize" #~ msgstr "自訂指令" #~ msgid "Extra flags:" #~ msgstr "額外選項:" #~ msgid "pdflatex" #~ msgstr "pdflatex" #~ msgid "xelatex" #~ msgstr "xelatex" #~ msgid "Autosaving file %s" #~ msgstr "正在儲存%s" #~ msgid "The active tab is not a valid LaTeX document" #~ msgstr "分頁文件內容不是一個有效的LaTeX文件" #~ msgid "_Tools" #~ msgstr "工具(_T)" #~ msgid "year" #~ msgstr "年份" gummi-0.6.5/compile0000755000175000017500000000727112040524264011145 00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2009-10-06.20; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 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 # . 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 $? ;; esac ofile= cfile= eat= 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: gummi-0.6.5/aclocal.m40000644000175000017500000021377712040524303011433 00000000000000# generated automatically by aclocal 1.11.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 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_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. 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'.])]) # Configure paths for GLIB # Owen Taylor 1997-2001 dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject, dnl gthread, or gio is specified in MODULES, pass to pkg-config dnl AC_DEFUN([AM_PATH_GLIB_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], , enable_glibtest=yes) pkg_config_args=glib-2.0 for module in . $4 do case "$module" in gmodule) pkg_config_args="$pkg_config_args gmodule-2.0" ;; gmodule-no-export) pkg_config_args="$pkg_config_args gmodule-no-export-2.0" ;; gobject) pkg_config_args="$pkg_config_args gobject-2.0" ;; gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; gio*) pkg_config_args="$pkg_config_args $module-2.0" ;; esac done PKG_PROG_PKG_CONFIG([0.16]) no_glib="" if test "x$PKG_CONFIG" = x ; then no_glib=yes PKG_CONFIG=no fi min_glib_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" enable_glibtest=no fi if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then : else no_glib=yes fi fi if test x"$no_glib" = x ; then GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_glibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$GLIB_LIBS $LIBS" dnl dnl Now check if the installed GLIB is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.glibtest AC_TRY_RUN([ #include #include #include int main () { unsigned int major, minor, micro; char *tmp_version; fclose (fopen ("conf.glibtest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_glib_version"); exit(1); } if ((glib_major_version != $glib_config_major_version) || (glib_minor_version != $glib_config_minor_version) || (glib_micro_version != $glib_config_micro_version)) { printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, glib_major_version, glib_minor_version, glib_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((glib_major_version != GLIB_MAJOR_VERSION) || (glib_minor_version != GLIB_MINOR_VERSION) || (glib_micro_version != GLIB_MICRO_VERSION)) { printf("*** GLIB header files (version %d.%d.%d) do not match\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version); } else { if ((glib_major_version > major) || ((glib_major_version == major) && (glib_minor_version > minor)) || ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n", glib_major_version, glib_minor_version, glib_micro_version); printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n", major, minor, micro); printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://www.freedesktop.org/software/pkgconfig/" else if test -f conf.glibtest ; then : else echo "*** Could not run GLIB test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS" AC_TRY_LINK([ #include #include ], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GLIB or finding the wrong" echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" GLIB_COMPILE_RESOURCES="" ifelse([$3], , :, [$3]) fi AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_GENMARSHAL) AC_SUBST(GOBJECT_QUERY) AC_SUBST(GLIB_MKENUMS) AC_SUBST(GLIB_COMPILE_RESOURCES) rm -f conf.glibtest ]) # Configure paths for GTK+ # Owen Taylor 1997-2001 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, dnl pass to pkg-config dnl AC_DEFUN([AM_PATH_GTK_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], , enable_gtktest=yes) pkg_config_args=gtk+-2.0 for module in . $4 do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl dnl Now check if the installed GTK+ is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.gtktest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ #include #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) rm -f conf.gtktest ]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 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 , 1995-2000. dnl Bruno Haible , 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]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 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 1 # 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.11' 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.11.6], [], [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.11.6])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, 2003, 2005, 2011 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 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # 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 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])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, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], 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 8's {/usr,}/bin/sh. touch 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, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' 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, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 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"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 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 16 # 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.62])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], [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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [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([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl 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, 2003, 2005, 2008, 2011 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 1 # 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, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_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, 2000, 2001, 2003, 2004, 2005, 2008 # 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 6 # 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, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # 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 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 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 --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 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 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 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 5 # _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, 1997, 2000, 2001, 2003, 2005, 2008 # 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 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 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 1 # 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, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_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, 2005, 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. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. 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 gummi-0.6.5/Makefile.am0000644000175000017500000000003212040524264011607 00000000000000SUBDIRS = po src data lib gummi-0.6.5/src/0000755000175000017500000000000012040524317010426 500000000000000gummi-0.6.5/src/project.c0000644000175000017500000001620212040524270012157 00000000000000/** * @file project.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "project.h" #include #include "configfile.h" #include "environment.h" #include "gui/gui-main.h" #include "gui/gui-project.h" #include "utils.h" // XXX: needs refactor, non gui classes should no directly acces gui and gummi // structure extern GummiGui* gui; extern Gummi* gummi; GuProject* project_init (void) { GuProject* p = g_new0 (GuProject, 1); p->projfile = NULL; p->rootfile = NULL; p->nroffiles = 1; return p; } gboolean project_create_new (const gchar* filename) { const gchar* version = g_strdup ("0.6.0"); const gchar* csetter = config_get_value ("typesetter"); const gchar* csteps = config_get_value ("compile_steps"); const gchar* rootfile = g_active_editor->filename; // TODO: do we need to encode this text? const gchar* content = g_strdup_printf("version=%s\n" "typesetter=%s\n" "steps=%s\n" "root=%s\n", version, csetter, csteps, rootfile); if (!STR_EQU (filename + strlen (filename) -6, ".gummi")) { filename = g_strdup_printf ("%s.gummi", filename); } statusbar_set_message (g_strdup_printf("Creating project file: %s", filename)); utils_set_file_contents (filename, content, -1); gummi->project->projfile = g_strdup (filename); return TRUE; } gboolean project_open_existing (const gchar* filename) { gchar* content = NULL; GError* err = NULL; if (!g_file_get_contents (filename, &content, NULL, &err)) { slog (L_ERROR, "%s\n", err->message); return FALSE; } if (!project_file_integrity (content)) return FALSE; if (!project_load_files (filename, content)) return FALSE; gummi->project->projfile = g_strdup (filename); return TRUE; } gboolean project_close (void) { GList *tabs = NULL; int i = 0; tabs = g_list_copy(gummi_get_all_tabs()); // XXX: needs refactor /* Disable compile thread to prevent it from compiling nonexisting editor */ motion_stop_compile_thread(gummi->motion); tabmanager_set_active_tab(-1); for (i = 0; i < g_list_length (tabs); i++) { GuTabContext* tab = GU_TAB_CONTEXT (g_list_nth_data (tabs, i)); if (tab->editor->projfile != NULL) on_menu_close_activate(NULL, tab); } g_list_free(tabs); /* Resume compile by selecting an active tag */ if (gummi_get_all_tabs() != NULL) tabmanager_set_active_tab(0); motion_start_compile_thread(gummi->motion); return TRUE; } gboolean project_file_integrity (const gchar* content) { if (strlen (content) == 0) { return FALSE; } return TRUE; } gboolean project_add_document (const gchar* project, const gchar* fname) { gchar* oldcontent; gchar* newcontent; GError* err; if (!g_file_get_contents (project, &oldcontent, NULL, &err)) { slog (L_ERROR, "%s\n", err->message); return FALSE; } // don't add files that are already in the project: if (utils_subinstr ((gchar*)fname, oldcontent, TRUE)) return FALSE; newcontent = g_strconcat (oldcontent, "\nfile=", fname, NULL); if (g_file_test (project, G_FILE_TEST_EXISTS)) { utils_set_file_contents (project, newcontent, -1); return TRUE; } g_free(oldcontent); g_free(newcontent); return FALSE; } gboolean project_remove_document (const gchar* project, const gchar* fname) { gchar* oldcontent; gchar* newcontent; GError* err; if (!g_file_get_contents (project, &oldcontent, NULL, &err)) { slog (L_ERROR, "%s\n", err->message); return FALSE; } gchar* delimiter = g_strdup_printf ("file=%s", fname); gchar** splitcontent = g_strsplit (oldcontent, delimiter, 2); newcontent = g_strconcat (splitcontent[0], splitcontent[1], NULL); if (g_file_test (project, G_FILE_TEST_EXISTS)) { utils_set_file_contents (project, newcontent, -1); return TRUE; } g_free(oldcontent); g_free(newcontent); return FALSE; } GList* project_list_files (const gchar* content) { gchar** splcontent = g_strsplit(content, "\n", 0); GList* filelist = NULL; gint i; for (i = 0; i < g_strv_length(splcontent); i++) { gchar** line = g_strsplit(splcontent[i], "=", 0); if (STR_EQU ("file", line[0])) { filelist = g_list_append (filelist, line[1]); gummi->project->nroffiles += 1; } if (STR_EQU ("root", line[0])) { filelist = g_list_prepend (filelist, line[1]); gummi->project->rootfile = g_strdup (line[1]); } } return filelist; } gboolean project_load_files (const gchar* projfile, const gchar* content) { gboolean status = FALSE; gint rootpos, i; gchar* filename; GList* filelist = project_list_files (content); gint length = g_list_length (filelist); for (i=0; iprojfile = g_strdup (projfile); } status = TRUE; } if (i == 0) { rootpos = tabmanagergui_get_current_page (); } } if (status == TRUE) projectgui_set_rootfile (rootpos); return status; } gchar* project_get_value (const gchar* content, const gchar* item) { gchar** splcontent = g_strsplit(content, "\n", 0); gchar* result = g_strdup (""); gint i; for (i = 0; i < g_strv_length(splcontent) -1; i++) { gchar** line = g_strsplit(splcontent[i], "=", 0); if (STR_EQU (item, line[0])) { return line[1]; } } return result; } gummi-0.6.5/src/signals.c0000644000175000017500000000327712040524270012161 00000000000000/** * @file signals.c * @brief Define signals for Gummi * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include #include void gummi_signals_register (void) { g_signal_new ("document-load", G_TYPE_OBJECT, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); g_signal_new ("document-write", G_TYPE_OBJECT, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); } gummi-0.6.5/src/project.h0000644000175000017500000000374412040524270012173 00000000000000/** * @file project.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_PROJECT_H__ #define __GUMMI_PROJECT_H__ #include typedef struct _Project { gchar* projfile; gchar* rootfile; int nroffiles; } GuProject; GuProject* project_init (void); gboolean project_close (void); gboolean project_create_new (const gchar* filename); gboolean project_open_existing (const gchar* filename); gboolean project_file_integrity (const gchar* content); gboolean project_load_files (const gchar* projfile, const gchar* content); GList* project_list_files (const gchar* content); gchar* project_get_value (const gchar* content, const gchar* item); gboolean project_add_document (const gchar* project, const gchar* fname); gboolean project_remove_document (const gchar* project, const gchar* fname); #endif /* __GUMMI_PROJECT_H__ */ gummi-0.6.5/src/iofunctions.h0000644000175000017500000000376712040524270013072 00000000000000/** * @file iofunctions.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_IOFUNCTIONS_H__ #define __GUMMI_IOFUNCTIONS_H__ #include "editor.h" #include #define GU_IOFUNC(x) ((GuIOFunc*)x) typedef struct _GuIOFunc GuIOFunc; struct _GuIOFunc { GObject* sig_hook; }; /* Public functions */ GuIOFunc* iofunctions_init (void); void iofunctions_load_default_text (gboolean loopedonce); void iofunctions_load_file (GuIOFunc* io, const gchar* filename); void iofunctions_save_file (GuIOFunc* io, gchar* filename, gchar *text); gchar* iofunctions_get_swapfile (const gchar* filename); gboolean iofunctions_has_swapfile (const gchar* filename); void iofunctions_start_autosave (void); void iofunctions_stop_autosave (void); void iofunctions_reset_autosave (const gchar* name); gboolean iofunctions_autosave_cb (void *user); #endif /* __GUMMI_IOFUNCTIONS_H__ */ gummi-0.6.5/src/utils.h0000644000175000017500000001240112040524270011653 00000000000000/** * @file utils.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_UTILS__ #define __GUMMI_UTILS__ #include #include #ifdef WIN32 #define DIR_PERMS (S_IRWXU) #else #define DIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) #endif #define TO_BOOL(X) ((X)? TRUE: FALSE) #define STR_EQU(X, Y) (g_strcmp0((X), (Y)) == 0) #define L_IS_TYPE(level, type) ((level & type) == type) #define L_IS_GUI(level) (level & 0xf0) #define L_INFO 0x00 /* for informative messages */ #define L_WARNING 0x01 /* warnning */ #define L_DEBUG 0x02 /* debug messages, only print if -d flags is used */ #define L_ERROR 0x04 /* reconverable error */ #define L_FATAL 0x08 /* inrecoverable error */ #define L_G_INFO 0x10 /* GUI info */ #define L_G_ERROR 0x20 /* recoverable error */ #define L_G_FATAL 0x40 /* inrecoverable error */ #define L_F_DEBUG slog(L_DEBUG, "%s ()\n", __func__); /** * Tuple2: * @first: a gpointer that points to the first field * @second: a gpointer that points to the second field * * General purpose Tuple with 2 fields. */ typedef struct _Tuple2 { /*< private >*/ struct _Tuple2* next; /*< public >*/ gpointer first; gpointer second; } Tuple2; #define TUPLE2(x) ((Tuple2*)x) /** * Tuple2: * @first: a gpointer that points to the first field * @second: a gpointer that points to the second field * @third: a gpointer that points to the third field * * General purpose Tuple with 3 fields. */ typedef struct _Tuple3 { /*< private >*/ struct _Tuple3* next; /*< public >*/ gpointer first; gpointer second; gpointer third; } Tuple3; #define TUPLE3(x) ((Tuple3*)x) /** * slist: * @first: a gchar* that points to the key * @second: a gchar* that points to the value * * list for storing gummi settings, snippets. * Deprecated: Warning this sturct may be replaced with glist or Tuple2 in the * future. */ typedef struct _slist { /*< private >*/ struct _slist* next; /*< public >*/ gchar* first; gchar* second; } slist; void slog_init (gint debug); gboolean in_debug_mode(); void slog_set_gui_parent (GtkWindow* p); void slog (gint level, const gchar *fmt, ...); gint utils_yes_no_dialog (const gchar* message); gboolean utils_path_exists (const gchar* path); gboolean utils_set_file_contents (const gchar *filename, const gchar *text, gssize length); /** * utils_copy_file: * * Returns: return TRUE if succeed * * Platform independent file copy operation. */ gboolean utils_copy_file (const gchar* source, const gchar* dest, GError** err); /** * utils_popen_r: * * Returns: A Tuple2 with Tuple2::first storing the exit code and * Tuple2::second pointing to a newly allocated gchar* array * * Platform independent interface for calling popen (). */ Tuple2 utils_popen_r (const gchar* cmd, const gchar* chdir); /** * utils_path_to_relative: * * Returns: A newly allocated pointer to gchar* to the relative path, if target * isn't relative to root, target is simply duplicated and returned. * * Transforms target to path relative to root. */ gchar* utils_path_to_relative (const gchar* root, const gchar* target); /** * utils_subinstr: * * Returns: A gboolean that states whether or the string in the first * argument is a substring of the second argument. When the case_sens arg * is passed as TRUE, case sensitivity of the two strings is ignored. */ gboolean utils_subinstr (const gchar* substr, const gchar* target, gboolean case_sens); gchar* utils_get_tmp_tmp_dir (void); /* TODO: remove when we can */ gboolean utils_glist_is_member (GList *list, gchar* item); gchar* g_substr(gchar* src, gint start, gint end); /** * slist_find: * @head: the list head * @term: the term to find * @n: TRUE if only compare first n characters (using strncmp) * @create: TRUE to create new entry for term that isn't found * * Returns: a pointer to the slist node * * Find term in slist. */ slist* slist_find (slist* head, const gchar* term, gboolean n, gboolean create); slist* slist_append (slist* head, slist* node); slist* slist_remove (slist* head, slist* node); #endif /* __GUMMI_UTILS__ */ gummi-0.6.5/src/update.c0000644000175000017500000000745612040524270012006 00000000000000/** * @file update.c * @brief functions related to releases and upgrading between them * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "update.h" #include #include #ifndef WIN32 # include # include # include # include #endif #include #include "environment.h" #include "utils.h" #ifdef WIN32 /* TODO: use Winsock for WIN32 */ #else gboolean updatecheck (GtkWindow* parent) { GtkWidget* dialog; struct sockaddr_in servaddr; struct hostent *hp; gint sock_fd = 0, i = 0; struct timeval timeout; gchar data[BUFSIZ] = { 0 }; const gchar* avail_version; const gchar* request = "GET /projects/gummi/repository/raw/" "trunk/dev/latest HTTP/1.1\r\n" "User-Agent: Gummi\r\n" "Host: dev.midnightcoding.org\r\n" "\r\n"; if (-1 == (sock_fd = socket (AF_INET, SOCK_STREAM, 0))) { slog (L_ERROR, "socket () error\n"); return FALSE; } /* set timeout to prevent hanging */ memset (&timeout, 0, sizeof (struct timeval)); timeout.tv_sec = 5; if (setsockopt (sock_fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof (struct timeval))) { slog (L_ERROR, "setsockopt () error\n"); return FALSE; } memset (&servaddr, 0, sizeof (servaddr)); if (NULL == (hp = gethostbyname ("dev.midnightcoding.org"))) { slog (L_ERROR, "gethostbyname () error\n"); return FALSE; } memcpy((gchar*)&servaddr.sin_addr.s_addr, (gchar*)hp->h_addr, hp->h_length); servaddr.sin_port = htons (80); servaddr.sin_family = AF_INET; if (0 != connect(sock_fd, (struct sockaddr*)&servaddr, sizeof (servaddr))) { slog (L_G_ERROR, "connect () error"); return FALSE; } write (sock_fd, request, strlen (request)); read (sock_fd, data, BUFSIZ); if (0 == strlen (data)) { slog (L_ERROR, "connection timeout\n"); return FALSE; } /* get version string */ for (i = strlen (data) -2; i >= 0 && data[i] != '\n'; --i); avail_version = data + i + 1; slog (L_INFO, "Currently installed: "PACKAGE_VERSION"\n"); slog (L_INFO, "Currently available: %s", avail_version); /* TODO: move gtk part to gui-menu.c */ dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, _("Currently installed:\n%s\n\nCurrently available:\n%s"), PACKAGE_VERSION, avail_version); gtk_window_set_title (GTK_WINDOW (dialog), _("Update Check")); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); return TRUE; } #endif gummi-0.6.5/src/porting.h0000644000175000017500000000323212040524270012177 00000000000000/** * @file porting.h * @brief Porting layer of different platforms * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /* Fix GDK_KEY_foo for Gtk < 2.22 */ #include #ifndef GDK_KEY_BackSpace #define GDK_KEY_BackSpace GDK_BackSpace #endif #ifndef GDK_KEY_Escape #define GDK_KEY_Escape GDK_Escape #endif #ifndef GDK_KEY_Tab #define GDK_KEY_Tab GDK_Tab #endif #ifndef GDK_KEY_Delete #define GDK_KEY_Delete GDK_Delete #endif #ifndef GDK_KEY_ISO_Left_Tab #define GDK_KEY_ISO_Left_Tab GDK_ISO_Left_Tab #endif gummi-0.6.5/src/syncTeX/0000755000175000017500000000000012040524317012023 500000000000000gummi-0.6.5/src/syncTeX/synctex_parser.c0000644000175000017500000046524512040524267015204 00000000000000/* Copyright (c) 2008, 2009, 2010 , 2011 jerome DOT laurens AT u-bourgogne DOT fr This file is part of the SyncTeX package. Latest Revision: Tue Jun 14 08:23:30 UTC 2011 Version: 1.16 See synctex_parser_readme.txt for more details License: -------- 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE Except as contained in this notice, the name of the copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the copyright holder. Acknowledgments: ---------------- The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh, and significant help from XeTeX developer Jonathan Kew Nota Bene: ---------- If you include or use a significant part of the synctex package into a software, I would appreciate to be listed as contributor and see "SyncTeX" highlighted. Version 1 Thu Jun 19 09:39:21 UTC 2008 */ /* We assume that high level application like pdf viewers will want * to embed this code as is. We assume that they also have locale.h and setlocale. * For other tools such as TeXLive tools, you must define SYNCTEX_USE_LOCAL_HEADER, * when building. You also have to create and customize synctex_parser_local.h to fit your system. * In particular, the HAVE_LOCALE_H and HAVE_SETLOCALE macros should be properly defined. * With this design, you should not need to edit this file. */ # if defined(SYNCTEX_USE_LOCAL_HEADER) # include "syncTeX/synctex_parser_local.h" # else # define HAVE_LOCALE_H 1 # define HAVE_SETLOCALE 1 # if defined(_MSC_VER) # define SYNCTEX_INLINE __inline # else # define SYNCTEX_INLINE inline # endif # endif #include #include #include #include #include #if defined(HAVE_LOCALE_H) #include #endif /* The data is organized in a graph with multiple entries. * The root object is a scanner, it is created with the contents on a synctex file. * Each leaf of the tree is a synctex_node_t object. * There are 3 subtrees, two of them sharing the same leaves. * The first tree is the list of input records, where input file names are associated with tags. * The second tree is the box tree as given by TeX when shipping pages out. * First level objects are sheets, containing boxes, glues, kerns... * The third tree allows to browse leaves according to tag and line. */ #include "syncTeX/synctex_parser.h" #include "syncTeX/synctex_parser_utils.h" /* These are the possible extensions of the synctex file */ const char * synctex_suffix = ".synctex"; const char * synctex_suffix_gz = ".gz"; /* each synctex node has a class */ typedef struct __synctex_class_t _synctex_class_t; typedef _synctex_class_t * synctex_class_t; /* synctex_node_t is a pointer to a node * _synctex_node is the target of the synctex_node_t pointer * It is a pseudo object oriented program. * class is a pointer to the class object the node belongs to. * implementation is meant to contain the private data of the node * basically, there are 2 kinds of information: navigation information and * synctex information. Both will depend on the type of the node, * thus different nodes will have different private data. * There is no inheritancy overhead. */ typedef union _synctex_info_t { int INT; char * PTR; } synctex_info_t; struct _synctex_node { synctex_class_t class; synctex_info_t * implementation; }; /* Each node of the tree, except the scanner itself belongs to a class. * The class object is just a struct declaring the owning scanner * This is a pointer to the scanner as root of the tree. * The type is used to identify the kind of node. * The class declares pointers to a creator and a destructor method. * The log and display fields are used to log and display the node. * display will also display the child, sibling and parent sibling. * parent, child and sibling are used to navigate the tree, * from TeX box hierarchy point of view. * The friend field points to a method which allows to navigate from friend to friend. * A friend is a node with very close tag and line numbers. * Finally, the info field point to a method giving the private node info offset. */ typedef synctex_node_t *(*_synctex_node_getter_t)(synctex_node_t); typedef synctex_info_t *(*_synctex_info_getter_t)(synctex_node_t); struct __synctex_class_t { synctex_scanner_t scanner; int type; synctex_node_t (*new)(synctex_scanner_t scanner); void (*free)(synctex_node_t); void (*log)(synctex_node_t); void (*display)(synctex_node_t); _synctex_node_getter_t parent; _synctex_node_getter_t child; _synctex_node_getter_t sibling; _synctex_node_getter_t friend; _synctex_node_getter_t next_box; _synctex_info_getter_t info; }; # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Abstract OBJECTS and METHODS # endif /* These macros are shortcuts * This macro checks if a message can be sent. */ # define SYNCTEX_CAN_PERFORM(NODE,SELECTOR)\ (NULL!=((((NODE)->class))->SELECTOR)) /* This macro is some kind of objc_msg_send. * It takes care of sending the proper message if possible. */ # define SYNCTEX_MSG_SEND(NODE,SELECTOR) if (NODE && SYNCTEX_CAN_PERFORM(NODE,SELECTOR)) {\ (*((((NODE)->class))->SELECTOR))(NODE);\ } /* read only safe getter */ # define SYNCTEX_GET(NODE,SELECTOR)((NODE && SYNCTEX_CAN_PERFORM(NODE,SELECTOR))?SYNCTEX_GETTER(NODE,SELECTOR)[0]:(NULL)) /* read/write getter */ # define SYNCTEX_GETTER(NODE,SELECTOR)\ ((synctex_node_t *)((*((((NODE)->class))->SELECTOR))(NODE))) # define SYNCTEX_FREE(NODE) SYNCTEX_MSG_SEND(NODE,free); /* Parent getter and setter */ # define SYNCTEX_PARENT(NODE) SYNCTEX_GET(NODE,parent) # define SYNCTEX_SET_PARENT(NODE,NEW_PARENT) if (NODE && NEW_PARENT && SYNCTEX_CAN_PERFORM(NODE,parent)){\ SYNCTEX_GETTER(NODE,parent)[0]=NEW_PARENT;\ } /* Child getter and setter */ # define SYNCTEX_CHILD(NODE) SYNCTEX_GET(NODE,child) # define SYNCTEX_SET_CHILD(NODE,NEW_CHILD) if (NODE && NEW_CHILD){\ SYNCTEX_GETTER(NODE,child)[0]=NEW_CHILD;\ SYNCTEX_GETTER(NEW_CHILD,parent)[0]=NODE;\ } /* Sibling getter and setter */ # define SYNCTEX_SIBLING(NODE) SYNCTEX_GET(NODE,sibling) # define SYNCTEX_SET_SIBLING(NODE,NEW_SIBLING) if (NODE && NEW_SIBLING) {\ SYNCTEX_GETTER(NODE,sibling)[0]=NEW_SIBLING;\ if (SYNCTEX_CAN_PERFORM(NEW_SIBLING,parent) && SYNCTEX_CAN_PERFORM(NODE,parent)) {\ SYNCTEX_GETTER(NEW_SIBLING,parent)[0]=SYNCTEX_GETTER(NODE,parent)[0];\ }\ } /* Friend getter and setter. A friend is a kern, math, glue or void box node which tag and line numbers are similar. * This is a first filter on the nodes that avoids testing all of them. * Friends are used mainly in forward synchronization aka from source to output. */ # define SYNCTEX_FRIEND(NODE) SYNCTEX_GET(NODE,friend) # define SYNCTEX_SET_FRIEND(NODE,NEW_FRIEND) if (NODE && NEW_FRIEND){\ SYNCTEX_GETTER(NODE,friend)[0]=NEW_FRIEND;\ } /* Next box getter and setter. The box tree can be traversed from one horizontal box to the other. * Navigation starts with the deeper boxes. */ # define SYNCTEX_NEXT_HORIZ_BOX(NODE) SYNCTEX_GET(NODE,next_box) # define SYNCTEX_SET_NEXT_HORIZ_BOX(NODE,NEXT_BOX) if (NODE && NEXT_BOX){\ SYNCTEX_GETTER(NODE,next_box)[0]=NEXT_BOX;\ } void _synctex_free_node(synctex_node_t node); void _synctex_free_leaf(synctex_node_t node); /* A node is meant to own its child and sibling. * It is not owned by its parent, unless it is its first child. * This destructor is for all nodes with children. */ void _synctex_free_node(synctex_node_t node) { if (node) { (*((node->class)->sibling))(node); SYNCTEX_FREE(SYNCTEX_SIBLING(node)); SYNCTEX_FREE(SYNCTEX_CHILD(node)); free(node); } return; } /* A node is meant to own its child and sibling. * It is not owned by its parent, unless it is its first child. * This destructor is for nodes with no child. */ void _synctex_free_leaf(synctex_node_t node) { if (node) { SYNCTEX_FREE(SYNCTEX_SIBLING(node)); free(node); } return; } # ifdef __SYNCTEX_WORK__ # include "/usr/include/zlib.h" # else # include # endif /* The synctex scanner is the root object. * Is is initialized with the contents of a text file or a gzipped file. * The buffer_? are first used to parse the text. */ struct __synctex_scanner_t { gzFile file; /* The (possibly compressed) file */ char * buffer_cur; /* current location in the buffer */ char * buffer_start; /* start of the buffer */ char * buffer_end; /* end of the buffer */ char * output_fmt; /* dvi or pdf, not yet used */ char * output; /* the output name used to create the scanner */ char * synctex; /* the .synctex or .synctex.gz name used to create the scanner */ int version; /* 1, not yet used */ struct { unsigned has_parsed:1; /* Whether the scanner has parsed its underlying synctex file. */ unsigned reserved:sizeof(unsigned)-1; /* alignment */ } flags; int pre_magnification; /* magnification from the synctex preamble */ int pre_unit; /* unit from the synctex preamble */ int pre_x_offset; /* X offste from the synctex preamble */ int pre_y_offset; /* Y offset from the synctex preamble */ int count; /* Number of records, from the synctex postamble */ float unit; /* real unit, from synctex preamble or post scriptum */ float x_offset; /* X offset, from synctex preamble or post scriptum */ float y_offset; /* Y Offset, from synctex preamble or post scriptum */ synctex_node_t sheet; /* The first sheet node, its siblings are the other sheet nodes */ synctex_node_t input; /* The first input node, its siblings are the other input nodes */ int number_of_lists; /* The number of friend lists */ synctex_node_t * lists_of_friends;/* The friend lists */ _synctex_class_t class[synctex_node_number_of_types]; /* The classes of the nodes of the scanner */ }; /* SYNCTEX_CUR, SYNCTEX_START and SYNCTEX_END are convenient shortcuts */ # define SYNCTEX_CUR (scanner->buffer_cur) # define SYNCTEX_START (scanner->buffer_start) # define SYNCTEX_END (scanner->buffer_end) # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark OBJECTS, their creators and destructors. # endif /* Here, we define the indices for the different informations. * They are used to declare the size of the implementation. * For example, if one object uses SYNCTEX_HORIZ_IDX is its size, * then its info will contain a tag, line, column, horiz but no width nor height nor depth */ /* The sheet is a first level node. * It has no parent (the parent is the scanner itself) * Its sibling points to another sheet. * Its child points to its first child, in general a box. * A sheet node contains only one synctex information: the page. * This is the 1 based page index as given by TeX. */ /* The next macros are used to access the node info * SYNCTEX_INFO(node) points to the first synctex integer or pointer data of node * SYNCTEX_INFO(node)[index] is the information at index * for example, the page of a sheet is stored in SYNCTEX_INFO(sheet)[SYNCTEX_PAGE_IDX] */ # define SYNCTEX_INFO(NODE) ((*((((NODE)->class))->info))(NODE)) # define SYNCTEX_PAGE_IDX 0 # define SYNCTEX_PAGE(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_PAGE_IDX].INT /* This macro defines implementation offsets * It is only used for pointer values */ # define SYNCTEX_MAKE_GET(SYNCTEX_GETTER,OFFSET)\ synctex_node_t * SYNCTEX_GETTER (synctex_node_t node);\ synctex_node_t * SYNCTEX_GETTER (synctex_node_t node) {\ return node?(synctex_node_t *)((&((node)->implementation))+OFFSET):NULL;\ } SYNCTEX_MAKE_GET(_synctex_implementation_0,0) SYNCTEX_MAKE_GET(_synctex_implementation_1,1) SYNCTEX_MAKE_GET(_synctex_implementation_2,2) SYNCTEX_MAKE_GET(_synctex_implementation_3,3) SYNCTEX_MAKE_GET(_synctex_implementation_4,4) SYNCTEX_MAKE_GET(_synctex_implementation_5,5) typedef struct { synctex_class_t class; synctex_info_t implementation[3+SYNCTEX_PAGE_IDX+1];/* child, sibling, next box, * SYNCTEX_PAGE_IDX */ } synctex_sheet_t; synctex_node_t _synctex_new_sheet(synctex_scanner_t scanner); void _synctex_display_sheet(synctex_node_t sheet); void _synctex_log_sheet(synctex_node_t sheet); static _synctex_class_t synctex_class_sheet = { NULL, /* No scanner yet */ synctex_node_type_sheet, /* Node type */ &_synctex_new_sheet, /* creator */ &_synctex_free_node, /* destructor */ &_synctex_log_sheet, /* log */ &_synctex_display_sheet, /* display */ NULL, /* No parent */ &_synctex_implementation_0, /* child */ &_synctex_implementation_1, /* sibling */ NULL, /* No friend */ &_synctex_implementation_2, /* Next box */ (_synctex_info_getter_t)&_synctex_implementation_3 /* info */ }; /* sheet node creator */ synctex_node_t _synctex_new_sheet(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_sheet_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_sheet:(synctex_class_t)&synctex_class_sheet; } return node; } /* A box node contains navigation and synctex information * There are different kind of boxes. * Only horizontal boxes are treated differently because of their visible size. */ # define SYNCTEX_TAG_IDX 0 # define SYNCTEX_LINE_IDX (SYNCTEX_TAG_IDX+1) # define SYNCTEX_COLUMN_IDX (SYNCTEX_LINE_IDX+1) # define SYNCTEX_HORIZ_IDX (SYNCTEX_COLUMN_IDX+1) # define SYNCTEX_VERT_IDX (SYNCTEX_HORIZ_IDX+1) # define SYNCTEX_WIDTH_IDX (SYNCTEX_VERT_IDX+1) # define SYNCTEX_HEIGHT_IDX (SYNCTEX_WIDTH_IDX+1) # define SYNCTEX_DEPTH_IDX (SYNCTEX_HEIGHT_IDX+1) /* the corresponding info accessors */ # define SYNCTEX_TAG(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_TAG_IDX].INT # define SYNCTEX_LINE(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_LINE_IDX].INT # define SYNCTEX_COLUMN(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_COLUMN_IDX].INT # define SYNCTEX_HORIZ(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HORIZ_IDX].INT # define SYNCTEX_VERT(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_VERT_IDX].INT # define SYNCTEX_WIDTH(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_WIDTH_IDX].INT # define SYNCTEX_HEIGHT(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HEIGHT_IDX].INT # define SYNCTEX_DEPTH(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_DEPTH_IDX].INT # define SYNCTEX_ABS_WIDTH(NODE) ((SYNCTEX_WIDTH(NODE)>0?SYNCTEX_WIDTH(NODE):-SYNCTEX_WIDTH(NODE))) # define SYNCTEX_ABS_HEIGHT(NODE) ((SYNCTEX_HEIGHT(NODE)>0?SYNCTEX_HEIGHT(NODE):-SYNCTEX_HEIGHT(NODE))) # define SYNCTEX_ABS_DEPTH(NODE) ((SYNCTEX_DEPTH(NODE)>0?SYNCTEX_DEPTH(NODE):-SYNCTEX_DEPTH(NODE))) typedef struct { synctex_class_t class; synctex_info_t implementation[5+SYNCTEX_DEPTH_IDX+1]; /* parent,child,sibling,friend,next box, * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH,SYNCTEX_HEIGHT,SYNCTEX_DEPTH */ } synctex_vert_box_node_t; synctex_node_t _synctex_new_vbox(synctex_scanner_t scanner); void _synctex_log_box(synctex_node_t sheet); void _synctex_display_vbox(synctex_node_t node); /* These are static class objects, each scanner will make a copy of them and setup the scanner field. */ static _synctex_class_t synctex_class_vbox = { NULL, /* No scanner yet */ synctex_node_type_vbox, /* Node type */ &_synctex_new_vbox, /* creator */ &_synctex_free_node, /* destructor */ &_synctex_log_box, /* log */ &_synctex_display_vbox, /* display */ &_synctex_implementation_0, /* parent */ &_synctex_implementation_1, /* child */ &_synctex_implementation_2, /* sibling */ &_synctex_implementation_3, /* friend */ &_synctex_implementation_4, /* next box */ (_synctex_info_getter_t)&_synctex_implementation_5 }; /* vertical box node creator */ synctex_node_t _synctex_new_vbox(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_vert_box_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_vbox:(synctex_class_t)&synctex_class_vbox; } return node; } # define SYNCTEX_HORIZ_V_IDX (SYNCTEX_DEPTH_IDX+1) # define SYNCTEX_VERT_V_IDX (SYNCTEX_HORIZ_V_IDX+1) # define SYNCTEX_WIDTH_V_IDX (SYNCTEX_VERT_V_IDX+1) # define SYNCTEX_HEIGHT_V_IDX (SYNCTEX_WIDTH_V_IDX+1) # define SYNCTEX_DEPTH_V_IDX (SYNCTEX_HEIGHT_V_IDX+1) /* the corresponding info accessors */ # define SYNCTEX_HORIZ_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HORIZ_V_IDX].INT # define SYNCTEX_VERT_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_VERT_V_IDX].INT # define SYNCTEX_WIDTH_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_WIDTH_V_IDX].INT # define SYNCTEX_HEIGHT_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HEIGHT_V_IDX].INT # define SYNCTEX_DEPTH_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_DEPTH_V_IDX].INT # define SYNCTEX_ABS_WIDTH_V(NODE) ((SYNCTEX_WIDTH_V(NODE)>0?SYNCTEX_WIDTH_V(NODE):-SYNCTEX_WIDTH_V(NODE))) # define SYNCTEX_ABS_HEIGHT_V(NODE) ((SYNCTEX_HEIGHT_V(NODE)>0?SYNCTEX_HEIGHT_V(NODE):-SYNCTEX_HEIGHT_V(NODE))) # define SYNCTEX_ABS_DEPTH_V(NODE) ((SYNCTEX_DEPTH_V(NODE)>0?SYNCTEX_DEPTH_V(NODE):-SYNCTEX_DEPTH_V(NODE))) /* Horizontal boxes must contain visible size, because 0 width does not mean emptiness */ typedef struct { synctex_class_t class; synctex_info_t implementation[5+SYNCTEX_DEPTH_V_IDX+1]; /*parent,child,sibling,friend,next box, * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH,SYNCTEX_HEIGHT,SYNCTEX_DEPTH, * SYNCTEX_HORIZ_V,SYNCTEX_VERT_V,SYNCTEX_WIDTH_V,SYNCTEX_HEIGHT_V,SYNCTEX_DEPTH_V*/ } synctex_horiz_box_node_t; synctex_node_t _synctex_new_hbox(synctex_scanner_t scanner); void _synctex_display_hbox(synctex_node_t node); void _synctex_log_horiz_box(synctex_node_t sheet); static _synctex_class_t synctex_class_hbox = { NULL, /* No scanner yet */ synctex_node_type_hbox, /* Node type */ &_synctex_new_hbox, /* creator */ &_synctex_free_node, /* destructor */ &_synctex_log_horiz_box, /* log */ &_synctex_display_hbox, /* display */ &_synctex_implementation_0, /* parent */ &_synctex_implementation_1, /* child */ &_synctex_implementation_2, /* sibling */ &_synctex_implementation_3, /* friend */ &_synctex_implementation_4, /* next box */ (_synctex_info_getter_t)&_synctex_implementation_5 }; /* horizontal box node creator */ synctex_node_t _synctex_new_hbox(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_horiz_box_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_hbox:(synctex_class_t)&synctex_class_hbox; } return node; } /* This void box node implementation is either horizontal or vertical * It does not contain a child field. */ typedef struct { synctex_class_t class; synctex_info_t implementation[3+SYNCTEX_DEPTH_IDX+1]; /* parent,sibling,friend, * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH,SYNCTEX_HEIGHT,SYNCTEX_DEPTH*/ } synctex_void_box_node_t; synctex_node_t _synctex_new_void_vbox(synctex_scanner_t scanner); void _synctex_log_void_box(synctex_node_t sheet); void _synctex_display_void_vbox(synctex_node_t node); static _synctex_class_t synctex_class_void_vbox = { NULL, /* No scanner yet */ synctex_node_type_void_vbox,/* Node type */ &_synctex_new_void_vbox, /* creator */ &_synctex_free_node, /* destructor */ &_synctex_log_void_box, /* log */ &_synctex_display_void_vbox,/* display */ &_synctex_implementation_0, /* parent */ NULL, /* No child */ &_synctex_implementation_1, /* sibling */ &_synctex_implementation_2, /* friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_3 }; /* vertical void box node creator */ synctex_node_t _synctex_new_void_vbox(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_void_box_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_void_vbox:(synctex_class_t)&synctex_class_void_vbox; } return node; } synctex_node_t _synctex_new_void_hbox(synctex_scanner_t scanner); void _synctex_display_void_hbox(synctex_node_t node); static _synctex_class_t synctex_class_void_hbox = { NULL, /* No scanner yet */ synctex_node_type_void_hbox,/* Node type */ &_synctex_new_void_hbox, /* creator */ &_synctex_free_node, /* destructor */ &_synctex_log_void_box, /* log */ &_synctex_display_void_hbox,/* display */ &_synctex_implementation_0, /* parent */ NULL, /* No child */ &_synctex_implementation_1, /* sibling */ &_synctex_implementation_2, /* friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_3 }; /* horizontal void box node creator */ synctex_node_t _synctex_new_void_hbox(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_void_box_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_void_hbox:(synctex_class_t)&synctex_class_void_hbox; } return node; } /* The medium nodes correspond to kern, glue, penalty and math nodes. */ typedef struct { synctex_class_t class; synctex_info_t implementation[3+SYNCTEX_WIDTH_IDX+1]; /* parent,sibling,friend, * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH */ } synctex_medium_node_t; #define SYNCTEX_IS_BOX(NODE)\ ((NODE->class->type == synctex_node_type_vbox)\ || (NODE->class->type == synctex_node_type_void_vbox)\ || (NODE->class->type == synctex_node_type_hbox)\ || (NODE->class->type == synctex_node_type_void_hbox)) #define SYNCTEX_HAS_CHILDREN(NODE) (NODE && SYNCTEX_CHILD(NODE)) void _synctex_log_medium_node(synctex_node_t node); /* math node creator */ synctex_node_t _synctex_new_math(synctex_scanner_t scanner); void _synctex_display_math(synctex_node_t node); static _synctex_class_t synctex_class_math = { NULL, /* No scanner yet */ synctex_node_type_math, /* Node type */ &_synctex_new_math, /* creator */ &_synctex_free_leaf, /* destructor */ &_synctex_log_medium_node, /* log */ &_synctex_display_math, /* display */ &_synctex_implementation_0, /* parent */ NULL, /* No child */ &_synctex_implementation_1, /* sibling */ &_synctex_implementation_2, /* friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_3 }; synctex_node_t _synctex_new_math(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_medium_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_math:(synctex_class_t)&synctex_class_math; } return node; } /* kern node creator */ synctex_node_t _synctex_new_kern(synctex_scanner_t scanner); void _synctex_display_kern(synctex_node_t node); static _synctex_class_t synctex_class_kern = { NULL, /* No scanner yet */ synctex_node_type_kern, /* Node type */ &_synctex_new_kern, /* creator */ &_synctex_free_leaf, /* destructor */ &_synctex_log_medium_node, /* log */ &_synctex_display_kern, /* display */ &_synctex_implementation_0, /* parent */ NULL, /* No child */ &_synctex_implementation_1, /* sibling */ &_synctex_implementation_2, /* friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_3 }; synctex_node_t _synctex_new_kern(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_medium_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_kern:(synctex_class_t)&synctex_class_kern; } return node; } /* The small nodes correspond to glue and boundary nodes. */ typedef struct { synctex_class_t class; synctex_info_t implementation[3+SYNCTEX_VERT_IDX+1]; /* parent,sibling,friend, * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, * SYNCTEX_HORIZ,SYNCTEX_VERT */ } synctex_small_node_t; void _synctex_log_small_node(synctex_node_t node); /* glue node creator */ synctex_node_t _synctex_new_glue(synctex_scanner_t scanner); void _synctex_display_glue(synctex_node_t node); static _synctex_class_t synctex_class_glue = { NULL, /* No scanner yet */ synctex_node_type_glue, /* Node type */ &_synctex_new_glue, /* creator */ &_synctex_free_leaf, /* destructor */ &_synctex_log_medium_node, /* log */ &_synctex_display_glue, /* display */ &_synctex_implementation_0, /* parent */ NULL, /* No child */ &_synctex_implementation_1, /* sibling */ &_synctex_implementation_2, /* friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_3 }; synctex_node_t _synctex_new_glue(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_medium_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_glue:(synctex_class_t)&synctex_class_glue; } return node; } /* boundary node creator */ synctex_node_t _synctex_new_boundary(synctex_scanner_t scanner); void _synctex_display_boundary(synctex_node_t node); static _synctex_class_t synctex_class_boundary = { NULL, /* No scanner yet */ synctex_node_type_boundary, /* Node type */ &_synctex_new_boundary, /* creator */ &_synctex_free_leaf, /* destructor */ &_synctex_log_small_node, /* log */ &_synctex_display_boundary, /* display */ &_synctex_implementation_0, /* parent */ NULL, /* No child */ &_synctex_implementation_1, /* sibling */ &_synctex_implementation_2, /* friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_3 }; synctex_node_t _synctex_new_boundary(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_small_node_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_boundary:(synctex_class_t)&synctex_class_boundary; } return node; } # define SYNCTEX_NAME_IDX (SYNCTEX_TAG_IDX+1) # define SYNCTEX_NAME(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_NAME_IDX].PTR /* Input nodes only know about their sibling, which is another input node. * The synctex information is the SYNCTEX_TAG and SYNCTEX_NAME*/ typedef struct { synctex_class_t class; synctex_info_t implementation[1+SYNCTEX_NAME_IDX+1]; /* sibling, * SYNCTEX_TAG,SYNCTEX_NAME */ } synctex_input_t; synctex_node_t _synctex_new_input(synctex_scanner_t scanner); void _synctex_free_input(synctex_node_t node); void _synctex_display_input(synctex_node_t node); void _synctex_log_input(synctex_node_t sheet); static _synctex_class_t synctex_class_input = { NULL, /* No scanner yet */ synctex_node_type_input, /* Node type */ &_synctex_new_input, /* creator */ &_synctex_free_input, /* destructor */ &_synctex_log_input, /* log */ &_synctex_display_input, /* display */ NULL, /* No parent */ NULL, /* No child */ &_synctex_implementation_0, /* sibling */ NULL, /* No friend */ NULL, /* No next box */ (_synctex_info_getter_t)&_synctex_implementation_1 }; synctex_node_t _synctex_new_input(synctex_scanner_t scanner) { synctex_node_t node = _synctex_malloc(sizeof(synctex_input_t)); if (node) { node->class = scanner?scanner->class+synctex_node_type_input:(synctex_class_t)&synctex_class_input; } return node; } void _synctex_free_input(synctex_node_t node){ if (node) { SYNCTEX_FREE(SYNCTEX_SIBLING(node)); free(SYNCTEX_NAME(node)); free(node); } } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Navigation # endif synctex_node_t synctex_node_parent(synctex_node_t node) { return SYNCTEX_PARENT(node); } synctex_node_t synctex_node_sheet(synctex_node_t node) { while(node && node->class->type != synctex_node_type_sheet) { node = SYNCTEX_PARENT(node); } /* exit the while loop either when node is NULL or node is a sheet */ return node; } synctex_node_t synctex_node_child(synctex_node_t node) { return SYNCTEX_CHILD(node); } synctex_node_t synctex_node_sibling(synctex_node_t node) { return SYNCTEX_SIBLING(node); } synctex_node_t synctex_node_next(synctex_node_t node) { if (SYNCTEX_CHILD(node)) { return SYNCTEX_CHILD(node); } sibling: if (SYNCTEX_SIBLING(node)) { return SYNCTEX_SIBLING(node); } if ((node = SYNCTEX_PARENT(node))) { if (node->class->type == synctex_node_type_sheet) {/* EXC_BAD_ACCESS? */ return NULL; } goto sibling; } return NULL; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark CLASS # endif /* Public node accessor: the type */ synctex_node_type_t synctex_node_type(synctex_node_t node) { if (node) { return (((node)->class))->type; } return synctex_node_type_error; } /* Public node accessor: the human readable type */ const char * synctex_node_isa(synctex_node_t node) { static const char * isa[synctex_node_number_of_types] = {"Not a node","input","sheet","vbox","void vbox","hbox","void hbox","kern","glue","math","boundary"}; return isa[synctex_node_type(node)]; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark SYNCTEX_LOG # endif # define SYNCTEX_LOG(NODE) SYNCTEX_MSG_SEND(NODE,log) /* Public node logger */ void synctex_node_log(synctex_node_t node) { SYNCTEX_LOG(node); } # define SYNCTEX_DISPLAY(NODE) SYNCTEX_MSG_SEND(NODE,display) void synctex_node_display(synctex_node_t node) { SYNCTEX_DISPLAY(node); } void _synctex_display_input(synctex_node_t node) { printf("....Input:%i:%s\n", SYNCTEX_TAG(node), SYNCTEX_NAME(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_log_sheet(synctex_node_t sheet) { if (sheet) { printf("%s:%i\n",synctex_node_isa(sheet),SYNCTEX_PAGE(sheet)); printf("SELF:%p",(void *)sheet); printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(sheet)); printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(sheet)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(sheet)); printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(sheet)); } } void _synctex_log_small_node(synctex_node_t node) { printf("%s:%i,%i:%i,%i\n", synctex_node_isa(node), SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node)); printf("SELF:%p",(void *)node); printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); } void _synctex_log_medium_node(synctex_node_t node) { printf("%s:%i,%i:%i,%i:%i\n", synctex_node_isa(node), SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node), SYNCTEX_WIDTH(node)); printf("SELF:%p",(void *)node); printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); } void _synctex_log_void_box(synctex_node_t node) { printf("%s",synctex_node_isa(node)); printf(":%i",SYNCTEX_TAG(node)); printf(",%i",SYNCTEX_LINE(node)); printf(",%i",0); printf(":%i",SYNCTEX_HORIZ(node)); printf(",%i",SYNCTEX_VERT(node)); printf(":%i",SYNCTEX_WIDTH(node)); printf(",%i",SYNCTEX_HEIGHT(node)); printf(",%i",SYNCTEX_DEPTH(node)); printf("\nSELF:%p",(void *)node); printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); } void _synctex_log_box(synctex_node_t node) { printf("%s",synctex_node_isa(node)); printf(":%i",SYNCTEX_TAG(node)); printf(",%i",SYNCTEX_LINE(node)); printf(",%i",0); printf(":%i",SYNCTEX_HORIZ(node)); printf(",%i",SYNCTEX_VERT(node)); printf(":%i",SYNCTEX_WIDTH(node)); printf(",%i",SYNCTEX_HEIGHT(node)); printf(",%i",SYNCTEX_DEPTH(node)); printf("\nSELF:%p",(void *)node); printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); } void _synctex_log_horiz_box(synctex_node_t node) { printf("%s",synctex_node_isa(node)); printf(":%i",SYNCTEX_TAG(node)); printf(",%i",SYNCTEX_LINE(node)); printf(",%i",0); printf(":%i",SYNCTEX_HORIZ(node)); printf(",%i",SYNCTEX_VERT(node)); printf(":%i",SYNCTEX_WIDTH(node)); printf(",%i",SYNCTEX_HEIGHT(node)); printf(",%i",SYNCTEX_DEPTH(node)); printf("/%i",SYNCTEX_HORIZ_V(node)); printf(",%i",SYNCTEX_VERT_V(node)); printf(":%i",SYNCTEX_WIDTH_V(node)); printf(",%i",SYNCTEX_HEIGHT_V(node)); printf(",%i",SYNCTEX_DEPTH_V(node)); printf("\nSELF:%p",(void *)node); printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); } void _synctex_log_input(synctex_node_t node) { printf("%s",synctex_node_isa(node)); printf(":%i",SYNCTEX_TAG(node)); printf(",%s",SYNCTEX_NAME(node)); printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); } void _synctex_display_sheet(synctex_node_t sheet) { if (sheet) { printf("....{%i\n",SYNCTEX_PAGE(sheet)); SYNCTEX_DISPLAY(SYNCTEX_CHILD(sheet)); printf("....}\n"); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(sheet)); } } void _synctex_display_vbox(synctex_node_t node) { printf("....[%i,%i:%i,%i:%i,%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node), SYNCTEX_WIDTH(node), SYNCTEX_HEIGHT(node), SYNCTEX_DEPTH(node)); SYNCTEX_DISPLAY(SYNCTEX_CHILD(node)); printf("....]\n"); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_hbox(synctex_node_t node) { printf("....(%i,%i:%i,%i:%i,%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node), SYNCTEX_WIDTH(node), SYNCTEX_HEIGHT(node), SYNCTEX_DEPTH(node)); SYNCTEX_DISPLAY(SYNCTEX_CHILD(node)); printf("....)\n"); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_void_vbox(synctex_node_t node) { printf("....v%i,%i;%i,%i:%i,%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node), SYNCTEX_WIDTH(node), SYNCTEX_HEIGHT(node), SYNCTEX_DEPTH(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_void_hbox(synctex_node_t node) { printf("....h%i,%i:%i,%i:%i,%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node), SYNCTEX_WIDTH(node), SYNCTEX_HEIGHT(node), SYNCTEX_DEPTH(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_glue(synctex_node_t node) { printf("....glue:%i,%i:%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_math(synctex_node_t node) { printf("....math:%i,%i:%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_kern(synctex_node_t node) { printf("....kern:%i,%i:%i,%i:%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node), SYNCTEX_WIDTH(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } void _synctex_display_boundary(synctex_node_t node) { printf("....boundary:%i,%i:%i,%i\n", SYNCTEX_TAG(node), SYNCTEX_LINE(node), SYNCTEX_HORIZ(node), SYNCTEX_VERT(node)); SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark SCANNER # endif /* Here are gathered all the possible status that the next scanning functions will return. * All these functions return a status, and pass their result through pointers. * Negative values correspond to errors. * The management of the buffer is causing some significant overhead. * Every function that may access the buffer returns a status related to the buffer and file state. * status >= SYNCTEX_STATUS_OK means the function worked as expected * status < SYNCTEX_STATUS_OK means the function did not work as expected * status == SYNCTEX_STATUS_NOT_OK means the function did not work as expected but there is still some material to parse. * status == SYNCTEX_STATUS_EOF means the function did not work as expected and there is no more material. * statusfile) /* Actually, the minimum buffer size is driven by integer and float parsing. * \B10.123456789e123 */ # define SYNCTEX_BUFFER_MIN_SIZE 16 # define SYNCTEX_BUFFER_SIZE 32768 # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Prototypes # endif void _synctex_log_void_box(synctex_node_t node); void _synctex_log_box(synctex_node_t node); void _synctex_log_horiz_box(synctex_node_t node); void _synctex_log_input(synctex_node_t node); synctex_status_t _synctex_buffer_get_available_size(synctex_scanner_t scanner, size_t * size_ptr); synctex_status_t _synctex_next_line(synctex_scanner_t scanner); synctex_status_t _synctex_match_string(synctex_scanner_t scanner, const char * the_string); synctex_status_t _synctex_decode_int(synctex_scanner_t scanner, int* value_ref); synctex_status_t _synctex_decode_string(synctex_scanner_t scanner, char ** value_ref); synctex_status_t _synctex_scan_input(synctex_scanner_t scanner); synctex_status_t _synctex_scan_preamble(synctex_scanner_t scanner); synctex_status_t _synctex_scan_float_and_dimension(synctex_scanner_t scanner, float * value_ref); synctex_status_t _synctex_scan_post_scriptum(synctex_scanner_t scanner); int _synctex_scan_postamble(synctex_scanner_t scanner); synctex_status_t _synctex_setup_visible_box(synctex_node_t box); synctex_status_t _synctex_horiz_box_setup_visible(synctex_node_t node,int h, int v); synctex_status_t _synctex_scan_sheet(synctex_scanner_t scanner, synctex_node_t parent); synctex_status_t _synctex_scan_nested_sheet(synctex_scanner_t scanner); synctex_status_t _synctex_scan_content(synctex_scanner_t scanner); int synctex_scanner_pre_x_offset(synctex_scanner_t scanner); int synctex_scanner_pre_y_offset(synctex_scanner_t scanner); const char * synctex_scanner_get_output_fmt(synctex_scanner_t scanner); int _synctex_node_is_box(synctex_node_t node); int _synctex_bail(void); /* Try to ensure that the buffer contains at least size bytes. * Passing a huge size argument means the whole buffer length. * Passing a null size argument means return the available buffer length, without reading the file. * In that case, the return status is always SYNCTEX_STATUS_OK unless the given scanner is NULL, * in which case, SYNCTEX_STATUS_BAD_ARGUMENT is returned. * The value returned in size_ptr is the number of bytes now available in the buffer. * This is a nonnegative integer, it may take the value 0. * It is the responsibility of the caller to test whether this size is conforming to its needs. * Negative values may return in case of error, actually * when there was an error reading the synctex file. */ synctex_status_t _synctex_buffer_get_available_size(synctex_scanner_t scanner, size_t * size_ptr) { size_t available = 0; if (NULL == scanner || NULL == size_ptr) { return SYNCTEX_STATUS_BAD_ARGUMENT; } # define size (* size_ptr) if (size>SYNCTEX_BUFFER_SIZE){ size = SYNCTEX_BUFFER_SIZE; } available = SYNCTEX_END - SYNCTEX_CUR; /* available is the number of unparsed chars in the buffer */ if (size<=available) { /* There are already sufficiently many characters in the buffer */ size = available; return SYNCTEX_STATUS_OK; } if (SYNCTEX_FILE) { /* Copy the remaining part of the buffer to the beginning, * then read the next part of the file */ int already_read = 0; if (available) { memmove(SYNCTEX_START, SYNCTEX_CUR, available); } SYNCTEX_CUR = SYNCTEX_START + available; /* the next character after the move, will change. */ /* Fill the buffer up to its end */ already_read = gzread(SYNCTEX_FILE,(void *)SYNCTEX_CUR,SYNCTEX_BUFFER_SIZE - available); if (already_read>0) { /* We assume that 0already_read) { /* There is a possible error in reading the file */ int errnum = 0; const char * error_string = gzerror(SYNCTEX_FILE, &errnum); if (Z_ERRNO == errnum) { /* There is an error in zlib caused by the file system */ _synctex_error("gzread error from the file system (%i)",errno); return SYNCTEX_STATUS_ERROR; } else if (errnum) { _synctex_error("gzread error (%i:%i,%s)",already_read,errnum,error_string); return SYNCTEX_STATUS_ERROR; } } /* Nothing was read, we are at the end of the file. */ gzclose(SYNCTEX_FILE); SYNCTEX_FILE = NULL; SYNCTEX_END = SYNCTEX_CUR; SYNCTEX_CUR = SYNCTEX_START; * SYNCTEX_END = '\0';/* Terminate the string properly.*/ size = SYNCTEX_END - SYNCTEX_CUR; return SYNCTEX_STATUS_EOF; /* there might be a bit of text left */ } /* We cannot enlarge the buffer because the end of the file was reached. */ size = available; return SYNCTEX_STATUS_EOF; # undef size } /* Used when parsing the synctex file. * Advance to the next character starting a line. * Actually, only '\n' is recognized as end of line marker. * On normal completion, the returned value is the number of unparsed characters available in the buffer. * In general, it is a positive value, 0 meaning that the end of file was reached. * -1 is returned in case of error, actually because there was an error while feeding the buffer. * When the function returns with no error, SYNCTEX_CUR points to the first character of the next line, if any. * J. Laurens: Sat May 10 07:52:31 UTC 2008 */ synctex_status_t _synctex_next_line(synctex_scanner_t scanner) { synctex_status_t status = SYNCTEX_STATUS_OK; size_t available = 0; if (NULL == scanner) { return SYNCTEX_STATUS_BAD_ARGUMENT; } infinite_loop: while(SYNCTEX_CUR=remaining_len) { /* The buffer is sufficiently big to hold the expected number of characters. */ if (strncmp((char *)SYNCTEX_CUR,the_string,remaining_len)) { return SYNCTEX_STATUS_NOT_OK; } return_OK: /* Advance SYNCTEX_CUR to the next character after the_string. */ SYNCTEX_CUR += remaining_len; return SYNCTEX_STATUS_OK; } else if (strncmp((char *)SYNCTEX_CUR,the_string,available)) { /* No need to goo further, this is not the expected string in the buffer. */ return SYNCTEX_STATUS_NOT_OK; } else if (SYNCTEX_FILE) { /* The buffer was too small to contain remaining_len characters. * We have to cut the string into pieces. */ z_off_t offset = 0L; /* the first part of the string is found, advance the_string to the next untested character. */ the_string += available; /* update the remaining length and the parsed length. */ remaining_len -= available; tested_len += available; SYNCTEX_CUR += available; /* We validate the tested characters. */ if (0 == remaining_len) { /* Nothing left to test, we have found the given string, we return the length. */ return tested_len; } /* We also have to record the current state of the file cursor because * if the_string does not match, all this should be a totally blank operation, * for which the file and buffer states should not be modified at all. * In fact, the states of the buffer before and after this function are in general different * but they are totally equivalent as long as the values of the buffer before SYNCTEX_CUR * can be safely discarded. */ offset = gztell(SYNCTEX_FILE); /* offset now corresponds to the first character of the file that was not buffered. */ available = SYNCTEX_CUR - SYNCTEX_START; /* available can be used as temporary placeholder. */ /* available now corresponds to the number of chars that where already buffered and * that match the head of the_string. If in fine the_string does not match, all these chars must be recovered * because the buffer contents is completely replaced by _synctex_buffer_get_available_size. * They were buffered from offset-len location in the file. */ offset -= available; more_characters: /* There is still some work to be done, so read another bunch of file. * This is the second call to _synctex_buffer_get_available_size, * which means that the actual contents of the buffer will be discarded. * We will definitely have to recover the previous state in case we do not find the expected string. */ available = remaining_len; status = _synctex_buffer_get_available_size(scanner,&available); if (statusptr) { SYNCTEX_CUR = end; if (value_ref) { * value_ref = result; } return SYNCTEX_STATUS_OK;/* Successfully scanned an int */ } return SYNCTEX_STATUS_NOT_OK;/* Could not scan an int */ } /* The purpose of this function is to read a string. * A string is an array of characters from the current parser location * and before the next '\n' character. * If a string was properly decoded, it is returned in value_ref and * the cursor points to the new line marker. * The returned string was alloced on the heap, the caller is the owner and * is responsible to free it in due time. * If no string is parsed, * value_ref is undefined. * The maximum length of a string that a scanner can decode is platform dependent, namely UINT_MAX. * If you just want to blindly parse the file up to the end of the current line, * use _synctex_next_line instead. * On return, the scanner cursor is unchanged if a string could not be scanned or * points to the terminating '\n' character otherwise. As a consequence, * _synctex_next_line is necessary after. * If either scanner or value_ref is NULL, it is considered as an error and * SYNCTEX_STATUS_BAD_ARGUMENT is returned. */ synctex_status_t _synctex_decode_string(synctex_scanner_t scanner, char ** value_ref) { char * end = NULL; size_t current_size = 0; size_t new_size = 0; size_t len = 0;/* The number of bytes to copy */ size_t available = 0; synctex_status_t status = 0; if (NULL == scanner || NULL == value_ref) { return SYNCTEX_STATUS_BAD_ARGUMENT; } /* The buffer must at least contain one character: the '\n' end of line marker */ if (SYNCTEX_CUR>=SYNCTEX_END) { available = 1; status = _synctex_buffer_get_available_size(scanner,&available); if (status < 0) { return status; } if (0 == available) { return SYNCTEX_STATUS_EOF; } } /* Now we are sure that there is at least one available character, either because * SYNCTEX_CUR was already < SYNCTEX_END, or because the buffer has been properly filled. */ /* end will point to the next unparsed '\n' character in the file, when mapped to the buffer. */ end = SYNCTEX_CUR; * value_ref = NULL;/* Initialize, it will be realloc'ed */ /* We scan all the characters up to the next '\n' */ next_character: if (endUINT_MAX-len-1) { /* But we have reached the limit: we do not have current_size+len+1>UINT_MAX. * We return the missing amount of memory. * This will never occur in practice. */ return UINT_MAX-len-1 - current_size; } new_size = current_size+len; /* We have current_size+len+1<=UINT_MAX * or equivalently new_sizeUINT_MAX-len-1) { /* We have reached the limit. */ _synctex_error("limit reached (missing %i).",current_size-(UINT_MAX-len-1)); return SYNCTEX_STATUS_ERROR; } new_size = current_size+len; if ((* value_ref = realloc(* value_ref,new_size+1)) != NULL) { if (memcpy((*value_ref)+current_size,SYNCTEX_CUR,len)) { (* value_ref)[new_size]='\0'; /* Terminate the string */ SYNCTEX_CUR = SYNCTEX_END;/* Advance the cursor to the end of the bufer */ return SYNCTEX_STATUS_OK; } free(* value_ref); * value_ref = NULL; _synctex_error("could not copy memory (2)."); return SYNCTEX_STATUS_ERROR; } /* Huge memory problem */ _synctex_error("could not allocate memory (2)."); return SYNCTEX_STATUS_ERROR; } } /* Used when parsing the synctex file. * Read an Input record. */ synctex_status_t _synctex_scan_input(synctex_scanner_t scanner) { synctex_status_t status = 0; size_t available = 0; synctex_node_t input = NULL; if (NULL == scanner) { return SYNCTEX_STATUS_BAD_ARGUMENT; } status = _synctex_match_string(scanner,"Input:"); if (statusinput); scanner->input = input; return _synctex_next_line(scanner);/* read the line termination character, if any */ /* Now, set up the path */ } typedef synctex_status_t (*synctex_decoder_t)(synctex_scanner_t,void *); synctex_status_t _synctex_scan_named(synctex_scanner_t scanner,const char * name,void * value_ref,synctex_decoder_t decoder); /* Used when parsing the synctex file. * Read one of the settings. * On normal completion, returns SYNCTEX_STATUS_OK. * On error, returns SYNCTEX_STATUS_ERROR. * Both arguments must not be NULL. * On return, the scanner points to the next character after the decoded object whatever it is. * It is the responsibility of the caller to prepare the scanner for the next line. */ synctex_status_t _synctex_scan_named(synctex_scanner_t scanner,const char * name,void * value_ref,synctex_decoder_t decoder) { synctex_status_t status = 0; if (NULL == scanner || NULL == name || NULL == value_ref || NULL == decoder) { return SYNCTEX_STATUS_BAD_ARGUMENT; } not_found: status = _synctex_match_string(scanner,name); if (statusversion),(synctex_decoder_t)&_synctex_decode_int); if (statusoutput_fmt),(synctex_decoder_t)&_synctex_decode_string); if (statuspre_magnification),(synctex_decoder_t)&_synctex_decode_int); if (statuspre_unit),(synctex_decoder_t)&_synctex_decode_int); if (statuspre_x_offset),(synctex_decoder_t)&_synctex_decode_int); if (statuspre_y_offset),(synctex_decoder_t)&_synctex_decode_int); if (status= SYNCTEX_STATUS_OK) { f *= 72.27f*65536; } else if (status= SYNCTEX_STATUS_OK) { f *= 72.27f*65536/2.54f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"mm")) >= SYNCTEX_STATUS_OK) { f *= 72.27f*65536/25.4f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"pt")) >= SYNCTEX_STATUS_OK) { f *= 65536.0f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"bp")) >= SYNCTEX_STATUS_OK) { f *= 72.27f/72*65536.0f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"pc")) >= SYNCTEX_STATUS_OK) { f *= 12.0*65536.0f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"sp")) >= SYNCTEX_STATUS_OK) { f *= 1.0f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"dd")) >= SYNCTEX_STATUS_OK) { f *= 1238.0f/1157*65536.0f; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"cc")) >= SYNCTEX_STATUS_OK) { f *= 14856.0f/1157*65536; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"nd")) >= SYNCTEX_STATUS_OK) { f *= 685.0f/642*65536; } else if (status<0) { goto report_unit_error; } else if ((status = _synctex_match_string(scanner,"nc")) >= SYNCTEX_STATUS_OK) { f *= 1370.0f/107*65536; } else if (status<0) { goto report_unit_error; } *value_ref = f; return SYNCTEX_STATUS_OK; } /* parse the post scriptum * SYNCTEX_STATUS_OK is returned on completion * a negative error is returned otherwise */ synctex_status_t _synctex_scan_post_scriptum(synctex_scanner_t scanner) { synctex_status_t status = 0; char * endptr = NULL; #ifdef HAVE_SETLOCALE char * loc = setlocale(LC_NUMERIC, NULL); #endif if (NULL == scanner) { return SYNCTEX_STATUS_BAD_ARGUMENT; } /* Scan the file until a post scriptum line is found */ post_scriptum_not_found: status = _synctex_match_string(scanner,"Post scriptum:"); if (statusunit = strtod(SYNCTEX_CUR,&endptr); #ifdef HAVE_SETLOCALE setlocale(LC_NUMERIC, loc); #endif if (endptr == SYNCTEX_CUR) { _synctex_error("bad magnification in the post scriptum, a float was expected."); return SYNCTEX_STATUS_ERROR; } if (scanner->unit<=0) { _synctex_error("bad magnification in the post scriptum, a positive float was expected."); return SYNCTEX_STATUS_ERROR; } SYNCTEX_CUR = endptr; goto next_line; } if (statusx_offset)); if (statusy_offset)); if (statuscount),(synctex_decoder_t)&_synctex_decode_int); if (status < SYNCTEX_STATUS_EOF) { return status; /* forward the error */ } else if (status < SYNCTEX_STATUS_OK) { /* No Count record found */ status = _synctex_next_line(scanner); /* Advance one more line */ if (statusclass->type) { case synctex_node_type_hbox: if (SYNCTEX_INFO(box) != NULL) { SYNCTEX_HORIZ_V(box) = SYNCTEX_HORIZ(box); SYNCTEX_VERT_V(box) = SYNCTEX_VERT(box); SYNCTEX_WIDTH_V(box) = SYNCTEX_WIDTH(box); SYNCTEX_HEIGHT_V(box) = SYNCTEX_HEIGHT(box); SYNCTEX_DEPTH_V(box) = SYNCTEX_DEPTH(box); return SYNCTEX_STATUS_OK; } return SYNCTEX_STATUS_ERROR; } } return SYNCTEX_STATUS_BAD_ARGUMENT; } /* This method is sent to an horizontal box to setup the visible size * Some box have 0 width but do contain text material. * With this method, one can enlarge the box to contain the given point (h,v). */ synctex_status_t _synctex_horiz_box_setup_visible(synctex_node_t node,int h, int v) { # ifdef __DARWIN_UNIX03 # pragma unused(v) # endif int itsBtm, itsTop; if (NULL == node || node->class->type != synctex_node_type_hbox) { return SYNCTEX_STATUS_BAD_ARGUMENT; } if (SYNCTEX_WIDTH_V(node)<0) { itsBtm = SYNCTEX_HORIZ_V(node); itsTop = SYNCTEX_HORIZ_V(node)-SYNCTEX_WIDTH_V(node); if (hitsTop) { SYNCTEX_WIDTH_V(node) = SYNCTEX_HORIZ_V(node) - h; } } else { itsBtm = SYNCTEX_HORIZ_V(node); itsTop = SYNCTEX_HORIZ_V(node)+SYNCTEX_WIDTH_V(node); if (hitsTop) { SYNCTEX_WIDTH_V(node) = h - SYNCTEX_HORIZ_V(node); } } return SYNCTEX_STATUS_OK; } /* Here are the control characters that strat each line of the synctex output file. * Their values define the meaning of the line. */ # define SYNCTEX_CHAR_BEGIN_SHEET '{' # define SYNCTEX_CHAR_END_SHEET '}' # define SYNCTEX_CHAR_BEGIN_VBOX '[' # define SYNCTEX_CHAR_END_VBOX ']' # define SYNCTEX_CHAR_BEGIN_HBOX '(' # define SYNCTEX_CHAR_END_HBOX ')' # define SYNCTEX_CHAR_ANCHOR '!' # define SYNCTEX_CHAR_VOID_VBOX 'v' # define SYNCTEX_CHAR_VOID_HBOX 'h' # define SYNCTEX_CHAR_KERN 'k' # define SYNCTEX_CHAR_GLUE 'g' # define SYNCTEX_CHAR_MATH '$' # define SYNCTEX_CHAR_BOUNDARY 'x' # define SYNCTEX_RETURN(STATUS) return STATUS; /* Used when parsing the synctex file. A '{' character has just been parsed. * The purpose is to gobble everything until the closing '}'. * Actually only one nesting depth has been observed when using the clip option * of \includegraphics option. Here we use arbitrary level of depth. */ synctex_status_t _synctex_scan_nested_sheet(synctex_scanner_t scanner) { unsigned int depth = 0; deeper: ++depth; if (_synctex_next_line(scanner)0) { goto scan_next_line; } else { SYNCTEX_RETURN(SYNCTEX_STATUS_OK); } } else if (*SYNCTEX_CUR == SYNCTEX_CHAR_BEGIN_SHEET) { ++SYNCTEX_CUR; goto deeper; } else if (_synctex_next_line(scanner)class->type != synctex_node_type_sheet || _synctex_next_line(scanner)0){ _synctex_error("Uncomplete sheet(0)"); SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); } else { goto prepare_loop; } } _synctex_bail(); /* The child loop means that we go do one level, when we just created a box node, * the next node created is a child of this box. */ child_loop: if (SYNCTEX_CURclass->type == synctex_node_type_vbox) { #define SYNCTEX_UPDATE_BOX_FRIEND(NODE)\ friend_index = ((SYNCTEX_INFO(NODE))[SYNCTEX_TAG_IDX].INT+(SYNCTEX_INFO(NODE))[SYNCTEX_LINE_IDX].INT)%(scanner->number_of_lists);\ SYNCTEX_SET_FRIEND(NODE,(scanner->lists_of_friends)[friend_index]);\ (scanner->lists_of_friends)[friend_index] = NODE; if (NULL == SYNCTEX_CHILD(parent)) { /* only void boxes are friends */ SYNCTEX_UPDATE_BOX_FRIEND(parent); } child = parent; parent = SYNCTEX_PARENT(child); } else { _synctex_error("Unexpected end of vbox, ignored."); } if (_synctex_next_line(scanner)class->type == synctex_node_type_hbox) { if (NULL == child) { /* Only boxes with no children are friends, * boxes with children are indirectly friends through one of their descendants. */ SYNCTEX_UPDATE_BOX_FRIEND(parent); } /* setting the next horizontal box at the end ensures that a child is recorded before any of its ancestors. */ SYNCTEX_SET_NEXT_HORIZ_BOX(box,parent); box = parent; child = parent; parent = SYNCTEX_PARENT(child); } else { _synctex_error("Unexpected enf of hbox, ignored."); } if (_synctex_next_line(scanner)number_of_lists);\ SYNCTEX_SET_FRIEND(NODE,(scanner->lists_of_friends)[friend_index]);\ (scanner->lists_of_friends)[friend_index] = NODE; SYNCTEX_UPDATE_FRIEND(child); goto sibling_loop; } else { _synctex_error("Can't create vbox record."); SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); } } else if (*SYNCTEX_CUR == SYNCTEX_CHAR_VOID_HBOX) { ++SYNCTEX_CUR; if (NULL != (child = _synctex_new_void_hbox(scanner)) && NULL != (info = SYNCTEX_INFO(child))) { if (SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) || _synctex_next_line(scanner)0){ _synctex_error("Uncomplete sheet(0)"); SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); } else { goto child_loop; } } _synctex_bail(); /* The vertical loop means that we are on the same level, for example when we just ended a box. * If a node is created now, it will be a sibling of the current node, sharing the same parent. */ sibling_loop: if (SYNCTEX_CUR0){ goto sibling_loop; } else { _synctex_error("Uncomplete sheet(2)"); SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); } } # undef SYNCTEX_DECODE_FAILED } /* Used when parsing the synctex file */ synctex_status_t _synctex_scan_content(synctex_scanner_t scanner) { synctex_node_t sheet = NULL; synctex_status_t status = 0; if (NULL == scanner) { return SYNCTEX_STATUS_BAD_ARGUMENT; } /* set up the lists of friends */ if (NULL == scanner->lists_of_friends) { scanner->number_of_lists = 1024; scanner->lists_of_friends = (synctex_node_t *)_synctex_malloc(scanner->number_of_lists*sizeof(synctex_node_t)); if (NULL == scanner->lists_of_friends) { _synctex_error("malloc:2"); return SYNCTEX_STATUS_ERROR; } } /* Find where this section starts */ content_not_found: status = _synctex_match_string(scanner,"Content:"); if (statussheet); scanner->sheet = sheet; sheet = NULL; /* Now read the list of Inputs between 2 sheets. */ do { status = _synctex_scan_input(scanner); if (status= SYNCTEX_STATUS_OK); goto next_sheet; } int _synctex_open(const char * output, const char * build_directory, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_modeRef); /* Where the synctex scanner is created. */ synctex_scanner_t synctex_scanner_new_with_output_file(const char * output, const char * build_directory, int parse) { gzFile file = NULL; char * synctex = NULL; synctex_scanner_t scanner = NULL; synctex_io_mode_t io_mode = 0; /* Here we assume that int are smaller than void * */ if (sizeof(int)>sizeof(void*)) { _synctex_error("INTERNAL INCONSISTENCY: int's are unexpectedly bigger than pointers, bailing out."); return NULL; } /* We ensure that SYNCTEX_BUFFER_SIZE < UINT_MAX, I don't know if it makes sense... */ if (SYNCTEX_BUFFER_SIZE >= UINT_MAX) { _synctex_error("SyncTeX BUG: Internal inconsistency, bad SYNCTEX_BUFFER_SIZE (1)"); return NULL; } /* for integers: */ if (SYNCTEX_BUFFER_SIZE < SYNCTEX_BUFFER_MIN_SIZE) { _synctex_error("SyncTeX BUG: Internal inconsistency, bad SYNCTEX_BUFFER_SIZE (2)"); return NULL; } /* now open the synctex file */ if (_synctex_open(output,build_directory,&synctex,&file,synctex_ADD_QUOTES,&io_mode) || !file) { if (_synctex_open(output,build_directory,&synctex,&file,synctex_DONT_ADD_QUOTES,&io_mode) || !file) { return NULL; } } scanner = (synctex_scanner_t)_synctex_malloc(sizeof(_synctex_scanner_t)); if (NULL == scanner) { _synctex_error("SyncTeX: malloc problem"); free(synctex); gzclose(file); return NULL; } /* make a private copy of output for the scanner */ if (NULL == (scanner->output = (char *)malloc(strlen(output)+1))){ _synctex_error("! synctex_scanner_new_with_output_file: Memory problem (2), scanner's output is not reliable."); } else if (scanner->output != strcpy(scanner->output,output)) { _synctex_error("! synctex_scanner_new_with_output_file: Copy problem, scanner's output is not reliable."); } scanner->synctex = synctex;/* Now the scanner owns synctex */ SYNCTEX_FILE = file; return parse? synctex_scanner_parse(scanner):scanner; } int __synctex_open(const char * output, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_mode_ref); /* This functions opens the file at the "output" given location. * It manages the problem of quoted filenames that appear with pdftex and filenames containing the space character. * In TeXLive 2008, the synctex file created with pdftex did contain unexpected quotes. * This function will remove them if possible. * All the reference arguments will take a value on return. They must be non NULL. * 0 on success, non 0 on error. */ int __synctex_open(const char * output, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_mode_ref) { if (synctex_name_ref && file_ref && io_mode_ref) { /* 1 local variables that uses dynamic memory */ char * synctex_name = NULL; gzFile the_file = NULL; char * quoteless_synctex_name = NULL; size_t size = 0; synctex_io_mode_t io_mode = *io_mode_ref; const char * mode = _synctex_get_io_mode_name(io_mode); /* now create the synctex file name */ size = strlen(output)+strlen(synctex_suffix)+strlen(synctex_suffix_gz)+1; synctex_name = (char *)malloc(size); if (NULL == synctex_name) { _synctex_error("! __synctex_open: Memory problem (1)\n"); return 1; } /* we have reserved for synctex enough memory to copy output (including its 2 eventual quotes), both suffices, * including the terminating character. size is free now. */ if (synctex_name != strcpy(synctex_name,output)) { _synctex_error("! __synctex_open: Copy problem\n"); return_on_error: free(synctex_name); free(quoteless_synctex_name); return 2; } /* remove the last path extension if any */ _synctex_strip_last_path_extension(synctex_name); if (!strlen(synctex_name)) { goto return_on_error; } /* now insert quotes. */ if (add_quotes) { char * quoted = NULL; if (_synctex_copy_with_quoting_last_path_component(synctex_name,"ed,size) || (NULL == quoted)) { /* There was an error or quoting does not make sense: */ goto return_on_error; } quoteless_synctex_name = synctex_name; synctex_name = quoted; } /* Now add to synctex_name the first path extension. */ if (synctex_name != strcat(synctex_name,synctex_suffix)){ _synctex_error("! __synctex_open: Concatenation problem (can't add suffix '%s')\n",synctex_suffix); goto return_on_error; } /* Add to quoteless_synctex_name as well, if relevant. */ if (quoteless_synctex_name && (quoteless_synctex_name != strcat(quoteless_synctex_name,synctex_suffix))){ free(quoteless_synctex_name); quoteless_synctex_name = NULL; } if (NULL == (the_file = gzopen(synctex_name,mode))) { /* Could not open this file */ if (errno != ENOENT) { /* The file does exist, this is a lower level error, I can't do anything. */ _synctex_error("SyncTeX: could not open %s, error %i\n",synctex_name,errno); goto return_on_error; } /* Apparently, there is no uncompressed synctex file. Try the compressed version */ if (synctex_name != strcat(synctex_name,synctex_suffix_gz)){ _synctex_error("! __synctex_open: Concatenation problem (can't add suffix '%s')\n",synctex_suffix_gz); goto return_on_error; } io_mode |= synctex_io_gz_mask; mode = _synctex_get_io_mode_name(io_mode); /* the file is a compressed and is a binary file, this caused errors on Windows */ /* Add the suffix to the quoteless_synctex_name as well. */ if (quoteless_synctex_name && (quoteless_synctex_name != strcat(quoteless_synctex_name,synctex_suffix_gz))){ free(quoteless_synctex_name); quoteless_synctex_name = NULL; } if (NULL == (the_file = gzopen(synctex_name,mode))) { /* Could not open this file */ if (errno != ENOENT) { /* The file does exist, this is a lower level error, I can't do anything. */ _synctex_error("SyncTeX: could not open %s, error %i\n",synctex_name,errno); } goto return_on_error; } } /* At this point, the file is properly open. * If we are in the add_quotes mode, we change the file name by removing the quotes. */ if (quoteless_synctex_name) { gzclose(the_file); if (rename(synctex_name,quoteless_synctex_name)) { _synctex_error("SyncTeX: could not rename %s to %s, error %i\n",synctex_name,quoteless_synctex_name,errno); /* We could not rename, reopen the file with the quoted name. */ if (NULL == (the_file = gzopen(synctex_name,mode))) { /* No luck, could not re open this file, something has happened meanwhile */ if (errno != ENOENT) { /* The file does not exist any more, it has certainly be removed somehow * this is a lower level error, I can't do anything. */ _synctex_error("SyncTeX: could not open again %s, error %i\n",synctex_name,errno); } goto return_on_error; } } else { /* The file has been successfully renamed */ if (NULL == (the_file = gzopen(quoteless_synctex_name,mode))) { /* Could not open this file */ if (errno != ENOENT) { /* The file does exist, this is a lower level error, I can't do anything. */ _synctex_error("SyncTeX: could not open renamed %s, error %i\n",quoteless_synctex_name,errno); } goto return_on_error; } /* The quote free file name should replace the old one:*/ free(synctex_name); synctex_name = quoteless_synctex_name; quoteless_synctex_name = NULL; } } /* The operation is successfull, return the arguments by value. */ * file_ref = the_file; * io_mode_ref = io_mode; * synctex_name_ref = synctex_name; return 0; } return 3; /* Bad parameter. */ } /* Opens the ouput file, taking into account the eventual build_directory. * 0 on success, non 0 on error. */ int _synctex_open(const char * output, const char * build_directory, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_mode_ref) { # define synctex_name (*synctex_name_ref) # define the_file (*file_ref) int result = __synctex_open(output,synctex_name_ref,file_ref,add_quotes,io_mode_ref); if ((result || !*file_ref) && build_directory && strlen(build_directory)) { char * build_output; const char *lpc; size_t size; synctex_bool_t is_absolute; build_output = NULL; lpc = _synctex_last_path_component(output); size = strlen(build_directory)+strlen(lpc)+2; /* One for the '/' and one for the '\0'. */ is_absolute = _synctex_path_is_absolute(build_directory); if (!is_absolute) { size += strlen(output); } if ((build_output = (char *)malloc(size))) { if (is_absolute) { build_output[0] = '\0'; } else { if (build_output != strcpy(build_output,output)) { return -4; } build_output[lpc-output]='\0'; } if (build_output == strcat(build_output,build_directory)) { /* Append a path separator if necessary. */ if (!SYNCTEX_IS_PATH_SEPARATOR(build_output[strlen(build_directory)-1])) { if (build_output != strcat(build_output,"/")) { return -2; } } /* Append the last path component of the output. */ if (build_output != strcat(build_output,lpc)) { return -3; } return __synctex_open(build_output,synctex_name_ref,file_ref,add_quotes,io_mode_ref); } } return -1; } return result; # undef synctex_name # undef the_file } /* The scanner destructor */ void synctex_scanner_free(synctex_scanner_t scanner) { if (NULL == scanner) { return; } if (SYNCTEX_FILE) { gzclose(SYNCTEX_FILE); SYNCTEX_FILE = NULL; } SYNCTEX_FREE(scanner->sheet); SYNCTEX_FREE(scanner->input); free(SYNCTEX_START); free(scanner->output_fmt); free(scanner->output); free(scanner->synctex); free(scanner->lists_of_friends); free(scanner); } /* Where the synctex scanner parses the contents of the file. */ synctex_scanner_t synctex_scanner_parse(synctex_scanner_t scanner) { synctex_status_t status = 0; if (!scanner || scanner->flags.has_parsed) { return scanner; } scanner->flags.has_parsed=1; scanner->pre_magnification = 1000; scanner->pre_unit = 8192; scanner->pre_x_offset = scanner->pre_y_offset = 578; /* initialize the offset with a fake unprobable value, * If there is a post scriptum section, this value will be overriden by the real life value */ scanner->x_offset = scanner->y_offset = 6.027e23f; scanner->class[synctex_node_type_sheet] = synctex_class_sheet; scanner->class[synctex_node_type_input] = synctex_class_input; (scanner->class[synctex_node_type_input]).scanner = scanner; (scanner->class[synctex_node_type_sheet]).scanner = scanner; scanner->class[synctex_node_type_vbox] = synctex_class_vbox; (scanner->class[synctex_node_type_vbox]).scanner = scanner; scanner->class[synctex_node_type_void_vbox] = synctex_class_void_vbox; (scanner->class[synctex_node_type_void_vbox]).scanner = scanner; scanner->class[synctex_node_type_hbox] = synctex_class_hbox; (scanner->class[synctex_node_type_hbox]).scanner = scanner; scanner->class[synctex_node_type_void_hbox] = synctex_class_void_hbox; (scanner->class[synctex_node_type_void_hbox]).scanner = scanner; scanner->class[synctex_node_type_kern] = synctex_class_kern; (scanner->class[synctex_node_type_kern]).scanner = scanner; scanner->class[synctex_node_type_glue] = synctex_class_glue; (scanner->class[synctex_node_type_glue]).scanner = scanner; scanner->class[synctex_node_type_math] = synctex_class_math; (scanner->class[synctex_node_type_math]).scanner = scanner; scanner->class[synctex_node_type_boundary] = synctex_class_boundary; (scanner->class[synctex_node_type_boundary]).scanner = scanner; SYNCTEX_START = (char *)malloc(SYNCTEX_BUFFER_SIZE+1); /* one more character for null termination */ if (NULL == SYNCTEX_START) { _synctex_error("SyncTeX: malloc error"); synctex_scanner_free(scanner); return NULL; } SYNCTEX_END = SYNCTEX_START+SYNCTEX_BUFFER_SIZE; /* SYNCTEX_END always points to a null terminating character. * Maybe there is another null terminating character between SYNCTEX_CUR and SYNCTEX_END-1. * At least, we are sure that SYNCTEX_CUR points to a string covering a valid part of the memory. */ *SYNCTEX_END = '\0'; SYNCTEX_CUR = SYNCTEX_END; status = _synctex_scan_preamble(scanner); if (statuspre_unit)/65536 pt = (scanner->pre_unit)/65781.76 bp * 1 pt = 65536 sp */ if (scanner->pre_unit<=0) { scanner->pre_unit = 8192; } if (scanner->pre_magnification<=0) { scanner->pre_magnification = 1000; } if (scanner->unit <= 0) { /* no post magnification */ scanner->unit = scanner->pre_unit / 65781.76;/* 65781.76 or 65536.0*/ } else { /* post magnification */ scanner->unit *= scanner->pre_unit / 65781.76; } scanner->unit *= scanner->pre_magnification / 1000.0; if (scanner->x_offset > 6e23) { /* no post offset */ scanner->x_offset = scanner->pre_x_offset * (scanner->pre_unit / 65781.76); scanner->y_offset = scanner->pre_y_offset * (scanner->pre_unit / 65781.76); } else { /* post offset */ scanner->x_offset /= 65781.76f; scanner->y_offset /= 65781.76f; } return scanner; #undef SYNCTEX_FILE } /* Scanner accessors. */ int synctex_scanner_pre_x_offset(synctex_scanner_t scanner){ return scanner?scanner->pre_x_offset:0; } int synctex_scanner_pre_y_offset(synctex_scanner_t scanner){ return scanner?scanner->pre_y_offset:0; } int synctex_scanner_x_offset(synctex_scanner_t scanner){ return scanner?scanner->x_offset:0; } int synctex_scanner_y_offset(synctex_scanner_t scanner){ return scanner?scanner->y_offset:0; } float synctex_scanner_magnification(synctex_scanner_t scanner){ return scanner?scanner->unit:1; } void synctex_scanner_display(synctex_scanner_t scanner) { if (NULL == scanner) { return; } printf("The scanner:\noutput:%s\noutput_fmt:%s\nversion:%i\n",scanner->output,scanner->output_fmt,scanner->version); printf("pre_unit:%i\nx_offset:%i\ny_offset:%i\n",scanner->pre_unit,scanner->pre_x_offset,scanner->pre_y_offset); printf("count:%i\npost_magnification:%f\npost_x_offset:%f\npost_y_offset:%f\n", scanner->count,scanner->unit,scanner->x_offset,scanner->y_offset); printf("The input:\n"); SYNCTEX_DISPLAY(scanner->input); if (scanner->count<1000) { printf("The sheets:\n"); SYNCTEX_DISPLAY(scanner->sheet); printf("The friends:\n"); if (scanner->lists_of_friends) { int i = scanner->number_of_lists; synctex_node_t node; while(i--) { printf("Friend index:%i\n",i); node = (scanner->lists_of_friends)[i]; while(node) { printf("%s:%i,%i\n", synctex_node_isa(node), SYNCTEX_TAG(node), SYNCTEX_LINE(node) ); node = SYNCTEX_FRIEND(node); } } } } else { printf("SyncTeX Warning: Too many objects\n"); } } /* Public*/ const char * synctex_scanner_get_name(synctex_scanner_t scanner,int tag) { synctex_node_t input = NULL; if (NULL == scanner) { return NULL; } input = scanner->input; do { if (tag == SYNCTEX_TAG(input)) { return (SYNCTEX_NAME(input)); } } while((input = SYNCTEX_SIBLING(input)) != NULL); return NULL; } int _synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name); int _synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name) { synctex_node_t input = NULL; if (NULL == scanner) { return 0; } input = scanner->input; do { if (_synctex_is_equivalent_file_name(name,(SYNCTEX_NAME(input)))) { return SYNCTEX_TAG(input); } } while((input = SYNCTEX_SIBLING(input)) != NULL); return 0; } int synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name) { size_t char_index = strlen(name); if ((scanner = synctex_scanner_parse(scanner)) && (0 < char_index)) { /* the name is not void */ char_index -= 1; if (!SYNCTEX_IS_PATH_SEPARATOR(name[char_index])) { /* the last character of name is not a path separator */ int result = _synctex_scanner_get_tag(scanner,name); if (result) { return result; } else { /* the given name was not the one known by TeX * try a name relative to the enclosing directory of the scanner->output file */ const char * relative = name; const char * ptr = scanner->output; while((strlen(relative) > 0) && (strlen(ptr) > 0) && (*relative == *ptr)) { relative += 1; ptr += 1; } /* Find the last path separator before relative */ while(relative > name) { if (SYNCTEX_IS_PATH_SEPARATOR(*(relative-1))) { break; } relative -= 1; } if ((relative > name) && (result = _synctex_scanner_get_tag(scanner,relative))) { return result; } if (SYNCTEX_IS_PATH_SEPARATOR(name[0])) { /* No tag found for the given absolute name, * Try each relative path starting from the shortest one */ while(0input:NULL; } const char * synctex_scanner_get_output_fmt(synctex_scanner_t scanner) { return NULL != scanner && scanner->output_fmt?scanner->output_fmt:""; } const char * synctex_scanner_get_output(synctex_scanner_t scanner) { return NULL != scanner && scanner->output?scanner->output:""; } const char * synctex_scanner_get_synctex(synctex_scanner_t scanner) { return NULL != scanner && scanner->synctex?scanner->synctex:""; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Public node attributes # endif int synctex_node_h(synctex_node_t node){ if (!node) { return 0; } return SYNCTEX_HORIZ(node); } int synctex_node_v(synctex_node_t node){ if (!node) { return 0; } return SYNCTEX_VERT(node); } int synctex_node_width(synctex_node_t node){ if (!node) { return 0; } return SYNCTEX_WIDTH(node); } int synctex_node_box_h(synctex_node_t node){ if (!node) { return 0; } if (SYNCTEX_IS_BOX(node)) { result: return SYNCTEX_HORIZ(node); } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } int synctex_node_box_v(synctex_node_t node){ if (!node) { return 0; } if (SYNCTEX_IS_BOX(node)) { result: return SYNCTEX_VERT(node); } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } int synctex_node_box_width(synctex_node_t node){ if (!node) { return 0; } if (SYNCTEX_IS_BOX(node)) { result: return SYNCTEX_WIDTH(node); } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } int synctex_node_box_height(synctex_node_t node){ if (!node) { return 0; } if (SYNCTEX_IS_BOX(node)) { result: return SYNCTEX_HEIGHT(node); } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } int synctex_node_box_depth(synctex_node_t node){ if (!node) { return 0; } if (SYNCTEX_IS_BOX(node)) { result: return SYNCTEX_DEPTH(node); } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Public node visible attributes # endif float synctex_node_visible_h(synctex_node_t node){ if (!node) { return 0; } return SYNCTEX_HORIZ(node)*node->class->scanner->unit+node->class->scanner->x_offset; } float synctex_node_visible_v(synctex_node_t node){ if (!node) { return 0; } return SYNCTEX_VERT(node)*node->class->scanner->unit+node->class->scanner->y_offset; } float synctex_node_visible_width(synctex_node_t node){ if (!node) { return 0; } return SYNCTEX_WIDTH(node)*node->class->scanner->unit; } float synctex_node_box_visible_h(synctex_node_t node){ if (!node) { return 0; } switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: return SYNCTEX_HORIZ(node)*node->class->scanner->unit+node->class->scanner->x_offset; case synctex_node_type_hbox: result: return SYNCTEX_HORIZ_V(node)*node->class->scanner->unit+node->class->scanner->x_offset; } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } float synctex_node_box_visible_v(synctex_node_t node){ if (!node) { return 0; } switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: return SYNCTEX_VERT(node)*node->class->scanner->unit+node->class->scanner->y_offset; case synctex_node_type_hbox: result: return SYNCTEX_VERT_V(node)*node->class->scanner->unit+node->class->scanner->y_offset; } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } float synctex_node_box_visible_width(synctex_node_t node){ if (!node) { return 0; } switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: return SYNCTEX_WIDTH(node)*node->class->scanner->unit; case synctex_node_type_hbox: result: return SYNCTEX_WIDTH_V(node)*node->class->scanner->unit; } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } float synctex_node_box_visible_height(synctex_node_t node){ if (!node) { return 0; } switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: return SYNCTEX_HEIGHT(node)*node->class->scanner->unit; case synctex_node_type_hbox: result: return SYNCTEX_HEIGHT_V(node)*node->class->scanner->unit; } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } float synctex_node_box_visible_depth(synctex_node_t node){ if (!node) { return 0; } switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: return SYNCTEX_DEPTH(node)*node->class->scanner->unit; case synctex_node_type_hbox: result: return SYNCTEX_DEPTH_V(node)*node->class->scanner->unit; } if ((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { goto result; } return 0; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Other public node attributes # endif int synctex_node_page(synctex_node_t node){ synctex_node_t parent = NULL; if (!node) { return -1; } parent = SYNCTEX_PARENT(node); while(parent) { node = parent; parent = SYNCTEX_PARENT(node); } if (node->class->type == synctex_node_type_sheet) { return SYNCTEX_PAGE(node); } return -1; } int synctex_node_tag(synctex_node_t node) { return node?SYNCTEX_TAG(node):-1; } int synctex_node_line(synctex_node_t node) { return node?SYNCTEX_LINE(node):-1; } int synctex_node_column(synctex_node_t node) { # ifdef __DARWIN_UNIX03 # pragma unused(node) # endif return -1; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Sheet # endif synctex_node_t synctex_sheet_content(synctex_scanner_t scanner,int page) { if (scanner) { synctex_node_t sheet = scanner->sheet; while(sheet) { if (page == SYNCTEX_PAGE(sheet)) { return SYNCTEX_CHILD(sheet); } sheet = SYNCTEX_SIBLING(sheet); } } return NULL; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Query # endif int synctex_display_query(synctex_scanner_t scanner,const char * name,int line,int column) { # ifdef __DARWIN_UNIX03 # pragma unused(column) # endif int tag = synctex_scanner_get_tag(scanner,name); size_t size = 0; int friend_index = 0; int max_line = 0; synctex_node_t node = NULL; if (tag == 0) { printf("SyncTeX Warning: No tag for %s\n",name); return -1; } free(SYNCTEX_START); SYNCTEX_CUR = SYNCTEX_END = SYNCTEX_START = NULL; max_line = line < INT_MAX-scanner->number_of_lists ? line+scanner->number_of_lists:INT_MAX; while(linenumber_of_lists); if ((node = (scanner->lists_of_friends)[friend_index])) { do { if ((synctex_node_type(node)>=synctex_node_type_boundary) && (tag == SYNCTEX_TAG(node)) && (line == SYNCTEX_LINE(node))) { if (SYNCTEX_CUR == SYNCTEX_END) { size += 16; SYNCTEX_END = realloc(SYNCTEX_START,size*sizeof(synctex_node_t *)); SYNCTEX_CUR += SYNCTEX_END - SYNCTEX_START; SYNCTEX_START = SYNCTEX_END; SYNCTEX_END = SYNCTEX_START + size*sizeof(synctex_node_t *); } *(synctex_node_t *)SYNCTEX_CUR = node; SYNCTEX_CUR += sizeof(synctex_node_t); } } while((node = SYNCTEX_FRIEND(node))); if (SYNCTEX_START == NULL) { /* We did not find any matching boundary, retry with glue or kern */ node = (scanner->lists_of_friends)[friend_index];/* no need to test it again, already done */ do { if ((synctex_node_type(node)>=synctex_node_type_kern) && (tag == SYNCTEX_TAG(node)) && (line == SYNCTEX_LINE(node))) { if (SYNCTEX_CUR == SYNCTEX_END) { size += 16; SYNCTEX_END = realloc(SYNCTEX_START,size*sizeof(synctex_node_t *)); SYNCTEX_CUR += SYNCTEX_END - SYNCTEX_START; SYNCTEX_START = SYNCTEX_END; SYNCTEX_END = SYNCTEX_START + size*sizeof(synctex_node_t *); } *(synctex_node_t *)SYNCTEX_CUR = node; SYNCTEX_CUR += sizeof(synctex_node_t); } } while((node = SYNCTEX_FRIEND(node))); if (SYNCTEX_START == NULL) { /* We did not find any matching glue or kern, retry with boxes */ node = (scanner->lists_of_friends)[friend_index];/* no need to test it again, already done */ do { if ((tag == SYNCTEX_TAG(node)) && (line == SYNCTEX_LINE(node))) { if (SYNCTEX_CUR == SYNCTEX_END) { size += 16; SYNCTEX_END = realloc(SYNCTEX_START,size*sizeof(synctex_node_t *)); SYNCTEX_CUR += SYNCTEX_END - SYNCTEX_START; SYNCTEX_START = SYNCTEX_END; SYNCTEX_END = SYNCTEX_START + size*sizeof(synctex_node_t *); } *(synctex_node_t *)SYNCTEX_CUR = node; SYNCTEX_CUR += sizeof(synctex_node_t); } } while((node = SYNCTEX_FRIEND(node))); } } SYNCTEX_END = SYNCTEX_CUR; /* Now reverse the order to have nodes in display order, and keep just a few nodes */ if ((SYNCTEX_START) && (SYNCTEX_END)) { synctex_node_t * start_ref = (synctex_node_t *)SYNCTEX_START; synctex_node_t * end_ref = (synctex_node_t *)SYNCTEX_END; end_ref -= 1; while(start_ref < end_ref) { node = *start_ref; *start_ref = *end_ref; *end_ref = node; start_ref += 1; end_ref -= 1; } /* Basically, we keep the first node for each parent. * More precisely, we keep only nodes that are not descendants of * their predecessor's parent. */ start_ref = (synctex_node_t *)SYNCTEX_START; end_ref = (synctex_node_t *)SYNCTEX_START; next_end: end_ref += 1; /* we allways have start_ref<= end_ref*/ if (end_ref < (synctex_node_t *)SYNCTEX_END) { node = *end_ref; while((node = SYNCTEX_PARENT(node))) { if (SYNCTEX_PARENT(*start_ref) == node) { goto next_end; } } start_ref += 1; *start_ref = *end_ref; goto next_end; } start_ref += 1; SYNCTEX_END = (char *)start_ref; SYNCTEX_CUR = NULL;// added on behalf of Jose Alliste return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t);// added on behalf Jan Sundermeyer } SYNCTEX_CUR = NULL; // return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t); removed on behalf Jan Sundermeyer } # if defined(__SYNCTEX_STRONG_DISPLAY_QUERY__) break; # else ++line; # endif } return 0; } synctex_node_t synctex_next_result(synctex_scanner_t scanner) { if (NULL == SYNCTEX_CUR) { SYNCTEX_CUR = SYNCTEX_START; } else { SYNCTEX_CUR+=sizeof(synctex_node_t); } if (SYNCTEX_CUR= scanner->unit) {/* scanner->unit must be >0 */ return 0; } /* Convert the given point to scanner integer coordinates */ hitPoint.h = (h-scanner->x_offset)/scanner->unit; hitPoint.v = (v-scanner->y_offset)/scanner->unit; /* We will store in the scanner's buffer the result of the query. */ free(SYNCTEX_START); SYNCTEX_START = SYNCTEX_END = SYNCTEX_CUR = NULL; /* Find the proper sheet */ sheet = scanner->sheet; while((sheet) && SYNCTEX_PAGE(sheet) != page) { sheet = SYNCTEX_SIBLING(sheet); } if (NULL == sheet) { return -1; } /* Now sheet points to the sheet node with proper page number */ /* Here is how we work: * At first we do not consider the visible box dimensions. This will cover the most frequent cases. * Then we try with the visible box dimensions. * We try to find a non void box containing the hit point. * We browse all the horizontal boxes until we find one containing the hit point. */ if ((node = SYNCTEX_NEXT_HORIZ_BOX(sheet))) { do { if (_synctex_point_in_box(hitPoint,node,synctex_YES)) { /* Maybe the hitPoint belongs to a contained vertical box. */ end: /* This trick is for catching overlapping boxes */ if ((other_node = SYNCTEX_NEXT_HORIZ_BOX(node))) { do { if (_synctex_point_in_box(hitPoint,other_node,synctex_YES)) { node = _synctex_smallest_container(other_node,node); } } while((other_node = SYNCTEX_NEXT_HORIZ_BOX(other_node))); } /* node is the smallest horizontal box that contains hitPoint. */ if ((bestContainer = _synctex_eq_deepest_container(hitPoint,node,synctex_YES))) { node = bestContainer; } _synctex_eq_get_closest_children_in_box(hitPoint,node,&bestNodes,&bestDistances,synctex_YES); if (bestNodes.right && bestNodes.left) { if ((SYNCTEX_TAG(bestNodes.right)!=SYNCTEX_TAG(bestNodes.left)) || (SYNCTEX_LINE(bestNodes.right)!=SYNCTEX_LINE(bestNodes.left)) || (SYNCTEX_COLUMN(bestNodes.right)!=SYNCTEX_COLUMN(bestNodes.left))) { if ((SYNCTEX_START = malloc(2*sizeof(synctex_node_t)))) { if (bestDistances.left>bestDistances.right) { ((synctex_node_t *)SYNCTEX_START)[0] = bestNodes.right; ((synctex_node_t *)SYNCTEX_START)[1] = bestNodes.left; } else { ((synctex_node_t *)SYNCTEX_START)[0] = bestNodes.left; ((synctex_node_t *)SYNCTEX_START)[1] = bestNodes.right; } SYNCTEX_END = SYNCTEX_START + 2*sizeof(synctex_node_t); SYNCTEX_CUR = NULL; return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t); } return SYNCTEX_STATUS_ERROR; } /* both nodes have the same input coordinates * We choose the one closest to the hit point */ if (bestDistances.left>bestDistances.right) { bestNodes.left = bestNodes.right; } bestNodes.right = NULL; } else if (bestNodes.right) { bestNodes.left = bestNodes.right; } else if (!bestNodes.left){ bestNodes.left = node; } if ((SYNCTEX_START = malloc(sizeof(synctex_node_t)))) { * (synctex_node_t *)SYNCTEX_START = bestNodes.left; SYNCTEX_END = SYNCTEX_START + sizeof(synctex_node_t); SYNCTEX_CUR = NULL; return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t); } return SYNCTEX_STATUS_ERROR; } } while ((node = SYNCTEX_NEXT_HORIZ_BOX(node))); /* All the horizontal boxes have been tested, * None of them contains the hit point. */ } /* We are not lucky */ if ((node = SYNCTEX_CHILD(sheet))) { goto end; } return 0; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Utilities # endif int _synctex_bail(void) { _synctex_error("SyncTeX ERROR\n"); return -1; } /* Rougly speaking, this is: * node's h coordinate - hitPoint's h coordinate. * If node is to the right of the hit point, then this distance is positive, * if node is to the left of the hit point, this distance is negative.*/ int _synctex_point_h_distance(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible); int _synctex_point_h_distance(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible) { if (node) { int min,med,max; switch(node->class->type) { /* The distance between a point and a box is special. * It is not the euclidian distance, nor something similar. * We have to take into account the particular layout, * and the box hierarchy. * Given a box, there are 9 regions delimited by the lines of the edges of the box. * The origin being at the top left corner of the page, * we also give names to the vertices of the box. * * 1 | 2 | 3 * ---A---B---> * 4 | 5 | 6 * ---C---D---> * 7 | 8 | 9 * v v */ case synctex_node_type_hbox: /* getting the box bounds, taking into account negative width, height and depth. */ min = visible?SYNCTEX_HORIZ_V(node):SYNCTEX_HORIZ(node); max = min + (visible?SYNCTEX_ABS_WIDTH_V(node):SYNCTEX_ABS_WIDTH(node)); /* We allways have min <= max */ if (hitPoint.h 0 */ } else if (hitPoint.h>max) { return max - hitPoint.h; /* regions 3+6+9, result is < 0 */ } else { return 0; /* regions 2+5+8, inside the box, except for vertical coordinates */ } break; case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: /* getting the box bounds, taking into account negative width, height and depth. * For these boxes, no visible dimension available */ min = SYNCTEX_HORIZ(node); max = min + SYNCTEX_ABS_WIDTH(node); /* We allways have min <= max */ if (hitPoint.h 0 */ } else if (hitPoint.h>max) { return max - hitPoint.h; /* regions 3+6+9, result is < 0 */ } else { return 0; /* regions 2+5+8, inside the box, except for vertical coordinates */ } break; case synctex_node_type_kern: /* IMPORTANT NOTICE: the location of the kern is recorded AFTER the move. * The distance to the kern is very special, * in general, there is no text material in the kern, * this is why we compute the offset relative to the closest edge of the kern.*/ max = SYNCTEX_WIDTH(node); if (max<0) { min = SYNCTEX_HORIZ(node); max = min - max; } else { min = -max; max = SYNCTEX_HORIZ(node); min += max; } med = (min+max)/2; /* positive kern: '.' means text, '>' means kern offset * ............. * min>>>>med>>>>max * ............... * negative kern: '.' means text, '<' means kern offset * ............................ * min<<<max) { return max - hitPoint.h - 1; /* same kind of penalty */ } else if (hitPoint.h>med) { /* do things like if the node had 0 width and was placed at the max edge + 1*/ return max - hitPoint.h + 1; /* positive, the kern is to the right of the hitPoint */ } else { return min - hitPoint.h - 1; /* negative, the kern is to the left of the hitPoint */ } case synctex_node_type_glue: case synctex_node_type_math: return SYNCTEX_HORIZ(node) - hitPoint.h; } } return INT_MAX;/* We always assume that the node is faraway to the right*/ } /* Rougly speaking, this is: * node's v coordinate - hitPoint's v coordinate. * If node is at the top of the hit point, then this distance is positive, * if node is at the bottom of the hit point, this distance is negative.*/ int _synctex_point_v_distance(synctex_point_t hitPoint, synctex_node_t node,synctex_bool_t visible); int _synctex_point_v_distance(synctex_point_t hitPoint, synctex_node_t node,synctex_bool_t visible) { # ifdef __DARWIN_UNIX03 # pragma unused(visible) # endif if (node) { int min,max; switch(node->class->type) { /* The distance between a point and a box is special. * It is not the euclidian distance, nor something similar. * We have to take into account the particular layout, * and the box hierarchy. * Given a box, there are 9 regions delimited by the lines of the edges of the box. * The origin being at the top left corner of the page, * we also give names to the vertices of the box. * * 1 | 2 | 3 * ---A---B---> * 4 | 5 | 6 * ---C---D---> * 7 | 8 | 9 * v v */ case synctex_node_type_hbox: /* getting the box bounds, taking into account negative width, height and depth. */ min = SYNCTEX_VERT_V(node); max = min + SYNCTEX_ABS_DEPTH_V(node); min -= SYNCTEX_ABS_HEIGHT_V(node); /* We allways have min <= max */ if (hitPoint.v 0 */ } else if (hitPoint.v>max) { return max - hitPoint.v; /* regions 7+8+9, result is < 0 */ } else { return 0; /* regions 4.5.6, inside the box, except for horizontal coordinates */ } break; case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_void_hbox: /* getting the box bounds, taking into account negative width, height and depth. */ min = SYNCTEX_VERT(node); max = min + SYNCTEX_ABS_DEPTH(node); min -= SYNCTEX_ABS_HEIGHT(node); /* We allways have min <= max */ if (hitPoint.v 0 */ } else if (hitPoint.v>max) { return max - hitPoint.v; /* regions 7+8+9, result is < 0 */ } else { return 0; /* regions 4.5.6, inside the box, except for horizontal coordinates */ } break; case synctex_node_type_kern: case synctex_node_type_glue: case synctex_node_type_math: return SYNCTEX_VERT(node) - hitPoint.v; } } return INT_MAX;/* We always assume that the node is faraway to the top*/ } SYNCTEX_INLINE static synctex_node_t _synctex_smallest_container(synctex_node_t node, synctex_node_t other_node) { float height, other_height; if (SYNCTEX_ABS_WIDTH(node)SYNCTEX_ABS_WIDTH(other_node)) { return other_node; } height = SYNCTEX_ABS_DEPTH(node) + SYNCTEX_ABS_HEIGHT(node); other_height = SYNCTEX_ABS_DEPTH(other_node) + SYNCTEX_ABS_HEIGHT(other_node); if (heightother_height) { return other_node; } return node; } synctex_bool_t _synctex_point_in_box(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible) { if (node) { if (0 == _synctex_point_h_distance(hitPoint,node,visible) && 0 == _synctex_point_v_distance(hitPoint,node,visible)) { return synctex_YES; } } return synctex_NO; } int _synctex_node_distance_to_point(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible) { # ifdef __DARWIN_UNIX03 # pragma unused(visible) # endif int result = INT_MAX; /* when the distance is meaning less (sheet, input...) */ if (node) { int minH,maxH,minV,maxV; switch(node->class->type) { /* The distance between a point and a box is special. * It is not the euclidian distance, nor something similar. * We have to take into account the particular layout, * and the box hierarchy. * Given a box, there are 9 regions delimited by the lines of the edges of the box. * The origin being at the top left corner of the page, * we also give names to the vertices of the box. * * 1 | 2 | 3 * ---A---B---> * 4 | 5 | 6 * ---C---D---> * 7 | 8 | 9 * v v * In each region, there is a different formula. * In the end we have a continuous distance which may not be a mathematical distance but who cares. */ case synctex_node_type_vbox: case synctex_node_type_void_vbox: case synctex_node_type_hbox: case synctex_node_type_void_hbox: /* getting the box bounds, taking into account negative widths. */ minH = SYNCTEX_HORIZ(node); maxH = minH + SYNCTEX_ABS_WIDTH(node); minV = SYNCTEX_VERT(node); maxV = minV + SYNCTEX_ABS_DEPTH(node); minV -= SYNCTEX_ABS_HEIGHT(node); /* In what region is the point hitPoint=(H,V) ? */ if (hitPoint.vminV) { result = hitPoint.v - minV + minH - hitPoint.h; } else { result = minV - hitPoint.v + minH - hitPoint.h; } } else if (hitPoint.h>maxH) { if (hitPoint.v>minV) { result = hitPoint.v - minV + hitPoint.h - maxH; } else { result = minV - hitPoint.v + hitPoint.h - maxH; } } else if (hitPoint.v>minV) { result = hitPoint.v - minV; } else { result = minV - hitPoint.v; } break; case synctex_node_type_glue: case synctex_node_type_math: minH = SYNCTEX_HORIZ(node); minV = SYNCTEX_VERT(node); if (hitPoint.hminV) { result = hitPoint.v - minV + minH - hitPoint.h; } else { result = minV - hitPoint.v + minH - hitPoint.h; } } else if (hitPoint.v>minV) { result = hitPoint.v - minV + hitPoint.h - minH; } else { result = minV - hitPoint.v + hitPoint.h - minH; } break; } } return result; } static synctex_node_t _synctex_eq_deepest_container(synctex_point_t hitPoint,synctex_node_t node, synctex_bool_t visible) { if (node) { synctex_node_t result = NULL; synctex_node_t child = NULL; switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_hbox: /* test the deep nodes first */ if ((child = SYNCTEX_CHILD(node))) { do { if ((result = _synctex_eq_deepest_container(hitPoint,child,visible))) { return result; } } while((child = SYNCTEX_SIBLING(child))); } /* is the hit point inside the box? */ if (_synctex_point_in_box(hitPoint,node,visible)) { /* for vboxes we try to use some node inside. * Walk through the list of siblings until we find the closest one. * Only consider siblings with children. */ if ((node->class->type == synctex_node_type_vbox) && (child = SYNCTEX_CHILD(node))) { int bestDistance = INT_MAX; do { if (SYNCTEX_CHILD(child)) { int distance = _synctex_node_distance_to_point(hitPoint,child,visible); if (distance < bestDistance) { bestDistance = distance; node = child; } } } while((child = SYNCTEX_SIBLING(child))); } return node; } } } return NULL; } /* Compares the locations of the hitPoint with the locations of the various nodes contained in the box. * As it is an horizontal box, we only compare horizontal coordinates. */ SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_hbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef, synctex_bool_t visible); SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_hbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef, synctex_bool_t visible) { int result = 0; if ((node = SYNCTEX_CHILD(node))) { do { int off7 = _synctex_point_h_distance(hitPoint,node,visible); if (off7 > 0) { /* node is to the right of the hit point. * We compare node and the previously recorded one, through the recorded distance. * If the nodes have the same tag, prefer the one with the smallest line number, * if the nodes also have the same line number, prefer the one with the smallest column. */ if (bestDistancesRef->right > off7) { bestDistancesRef->right = off7; bestNodesRef->right = node; result |= SYNCTEX_MASK_RIGHT; } else if (bestDistancesRef->right == off7 && bestNodesRef->right) { if (SYNCTEX_TAG(bestNodesRef->right) == SYNCTEX_TAG(node) && (SYNCTEX_LINE(bestNodesRef->right) > SYNCTEX_LINE(node) || (SYNCTEX_LINE(bestNodesRef->right) == SYNCTEX_LINE(node) && SYNCTEX_COLUMN(bestNodesRef->right) > SYNCTEX_COLUMN(node)))) { bestNodesRef->right = node; result |= SYNCTEX_MASK_RIGHT; } } } else if (off7 == 0) { /* hitPoint is inside node. */ bestDistancesRef->left = bestDistancesRef->right = 0; bestNodesRef->left = node; bestNodesRef->right = NULL; result |= SYNCTEX_MASK_LEFT; } else { /* here off7 < 0, hitPoint is to the right of node */ off7 = -off7; if (bestDistancesRef->left > off7) { bestDistancesRef->left = off7; bestNodesRef->left = node; result |= SYNCTEX_MASK_LEFT; } else if (bestDistancesRef->left == off7 && bestNodesRef->left) { if (SYNCTEX_TAG(bestNodesRef->left) == SYNCTEX_TAG(node) && (SYNCTEX_LINE(bestNodesRef->left) > SYNCTEX_LINE(node) || (SYNCTEX_LINE(bestNodesRef->left) == SYNCTEX_LINE(node) && SYNCTEX_COLUMN(bestNodesRef->left) > SYNCTEX_COLUMN(node)))) { bestNodesRef->left = node; result |= SYNCTEX_MASK_LEFT; } } } } while((node = SYNCTEX_SIBLING(node))); if (result & SYNCTEX_MASK_LEFT) { /* the left node is new, try to narrow the result */ if ((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->left,visible))) { bestNodesRef->left = node; } if ((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->left,visible))) { bestNodesRef->left = node; } } if (result & SYNCTEX_MASK_RIGHT) { /* the right node is new, try to narrow the result */ if ((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->right,visible))) { bestNodesRef->right = node; } if ((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->right,visible))) { bestNodesRef->right = node; } } } return result; } SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_vbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef,synctex_bool_t visible); SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_vbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef,synctex_bool_t visible) { int result = 0; if ((node = SYNCTEX_CHILD(node))) { do { int off7 = _synctex_point_v_distance(hitPoint,node,visible);/* this is what makes the difference with the h version above */ if (off7 > 0) { /* node is to the top of the hit point (below because TeX is oriented from top to bottom. * We compare node and the previously recorded one, through the recorded distance. * If the nodes have the same tag, prefer the one with the smallest line number, * if the nodes also have the same line number, prefer the one with the smallest column. */ if (bestDistancesRef->right > off7) { bestDistancesRef->right = off7; bestNodesRef->right = node; result |= SYNCTEX_MASK_RIGHT; } else if (bestDistancesRef->right == off7 && bestNodesRef->right) { if (SYNCTEX_TAG(bestNodesRef->right) == SYNCTEX_TAG(node) && (SYNCTEX_LINE(bestNodesRef->right) > SYNCTEX_LINE(node) || (SYNCTEX_LINE(bestNodesRef->right) == SYNCTEX_LINE(node) && SYNCTEX_COLUMN(bestNodesRef->right) > SYNCTEX_COLUMN(node)))) { bestNodesRef->right = node; result |= SYNCTEX_MASK_RIGHT; } } } else if (off7 == 0) { bestDistancesRef->left = bestDistancesRef->right = 0; bestNodesRef->left = node; bestNodesRef->right = NULL; result |= SYNCTEX_MASK_LEFT; } else { /* here off7 < 0 */ off7 = -off7; if (bestDistancesRef->left > off7) { bestDistancesRef->left = off7; bestNodesRef->left = node; result |= SYNCTEX_MASK_LEFT; } else if (bestDistancesRef->left == off7 && bestNodesRef->left) { if (SYNCTEX_TAG(bestNodesRef->left) == SYNCTEX_TAG(node) && (SYNCTEX_LINE(bestNodesRef->left) > SYNCTEX_LINE(node) || (SYNCTEX_LINE(bestNodesRef->left) == SYNCTEX_LINE(node) && SYNCTEX_COLUMN(bestNodesRef->left) > SYNCTEX_COLUMN(node)))) { bestNodesRef->left = node; result |= SYNCTEX_MASK_LEFT; } } } } while((node = SYNCTEX_SIBLING(node))); if (result & SYNCTEX_MASK_LEFT) { /* the left node is new, try to narrow the result */ if ((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->left,visible))) { bestNodesRef->left = node; } if ((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->left,visible))) { bestNodesRef->left = node; } } if (result & SYNCTEX_MASK_RIGHT) { /* the right node is new, try to narrow the result */ if ((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->right,visible))) { bestNodesRef->right = node; } if ((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->right,visible))) { bestNodesRef->right = node; } } } return result; } SYNCTEX_INLINE static int _synctex_eq_get_closest_children_in_box(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef,synctex_bool_t visible) { if (node) { switch(node->class->type) { case synctex_node_type_hbox: return __synctex_eq_get_closest_children_in_hbox(hitPoint, node, bestNodesRef, bestDistancesRef,visible); case synctex_node_type_vbox: return __synctex_eq_get_closest_children_in_vbox(hitPoint, node, bestNodesRef, bestDistancesRef,visible); } } return 0; } SYNCTEX_INLINE static synctex_node_t __synctex_eq_closest_child(synctex_point_t hitPoint, synctex_node_t node,int* distanceRef, synctex_bool_t visible); SYNCTEX_INLINE static synctex_node_t __synctex_eq_closest_child(synctex_point_t hitPoint, synctex_node_t node,int* distanceRef, synctex_bool_t visible) { synctex_node_t best_node = NULL; if ((node = SYNCTEX_CHILD(node))) { do { int distance = _synctex_node_distance_to_point(hitPoint,node,visible); synctex_node_t candidate = NULL; if (distance<=*distanceRef) { *distanceRef = distance; best_node = node; } switch(node->class->type) { case synctex_node_type_vbox: case synctex_node_type_hbox: if ((candidate = __synctex_eq_closest_child(hitPoint,node,distanceRef,visible))) { best_node = candidate; } } } while((node = SYNCTEX_SIBLING(node))); } return best_node; } SYNCTEX_INLINE static synctex_node_t _synctex_eq_closest_child(synctex_point_t hitPoint,synctex_node_t node, synctex_bool_t visible) { if (node) { switch(node->class->type) { case synctex_node_type_hbox: case synctex_node_type_vbox: { int best_distance = INT_MAX; synctex_node_t best_node = __synctex_eq_closest_child(hitPoint,node,&best_distance,visible); if ((best_node)) { synctex_node_t child = NULL; switch(best_node->class->type) { case synctex_node_type_vbox: case synctex_node_type_hbox: if ((child = SYNCTEX_CHILD(best_node))) { best_distance = _synctex_node_distance_to_point(hitPoint,child,visible); while((child = SYNCTEX_SIBLING(child))) { int distance = _synctex_node_distance_to_point(hitPoint,child,visible); if (distance<=best_distance) { best_distance = distance; best_node = child; } } } } } return best_node; } } } return NULL; } # ifdef SYNCTEX_NOTHING # pragma mark - # pragma mark Updater # endif typedef int (*synctex_fprintf_t)(void *, const char * , ...); /* print formatted to either FILE * or gzFile */ # define SYNCTEX_BITS_PER_BYTE 8 struct __synctex_updater_t { void *file; /* the foo.synctex or foo.synctex.gz I/O identifier */ synctex_fprintf_t fprintf; /* either fprintf or gzprintf */ int length; /* the number of chars appended */ struct _flags { unsigned int no_gz:1; /* Whether zlib is used or not */ unsigned int reserved:SYNCTEX_BITS_PER_BYTE*sizeof(int)-1; /* Align */ } flags; }; # define SYNCTEX_FILE updater->file # define SYNCTEX_NO_GZ ((updater->flags).no_gz) # define SYNCTEX_fprintf (*(updater->fprintf)) synctex_updater_t synctex_updater_new_with_output_file(const char * output, const char * build_directory) { synctex_updater_t updater = NULL; char * synctex = NULL; synctex_io_mode_t io_mode = 0; const char * mode = NULL; /* prepare the updater, the memory is the only one dynamically allocated */ updater = (synctex_updater_t)_synctex_malloc(sizeof(synctex_updater_t)); if (NULL == updater) { _synctex_error("! synctex_updater_new_with_file: malloc problem"); return NULL; } if (_synctex_open(output,build_directory,&synctex,&SYNCTEX_FILE,synctex_ADD_QUOTES,&io_mode) && _synctex_open(output,build_directory,&synctex,&SYNCTEX_FILE,synctex_DONT_ADD_QUOTES,&io_mode)) { return_on_error: free(updater); updater = NULL; return NULL; } /* OK, the file exists, we close it and reopen it with the correct mode. * The receiver is now the owner of the "synctex" variable. */ gzclose(SYNCTEX_FILE); SYNCTEX_FILE = NULL; SYNCTEX_NO_GZ = (io_mode&synctex_io_gz_mask)?synctex_NO:synctex_YES; mode = _synctex_get_io_mode_name(io_mode|synctex_io_append_mask);/* either "a" or "ab", depending on the file extension */ if (SYNCTEX_NO_GZ) { if (NULL == (SYNCTEX_FILE = (void *)fopen(synctex,mode))) { no_write_error: _synctex_error("! synctex_updater_new_with_file: Can't append to %s",synctex); free(synctex); goto return_on_error; } updater->fprintf = (synctex_fprintf_t)(&fprintf); } else { if (NULL == (SYNCTEX_FILE = (void *)gzopen(synctex,mode))) { goto no_write_error; } updater->fprintf = (synctex_fprintf_t)(&gzprintf); } printf("SyncTeX: updating %s...",synctex); free(synctex); return updater; } void synctex_updater_append_magnification(synctex_updater_t updater, char * magnification){ if (NULL==updater) { return; } if (magnification && strlen(magnification)) { updater->length += SYNCTEX_fprintf(SYNCTEX_FILE,"Magnification:%s\n",magnification); } } void synctex_updater_append_x_offset(synctex_updater_t updater, char * x_offset){ if (NULL==updater) { return; } if (x_offset && strlen(x_offset)) { updater->length += SYNCTEX_fprintf(SYNCTEX_FILE,"X Offset:%s\n",x_offset); } } void synctex_updater_append_y_offset(synctex_updater_t updater, char * y_offset){ if (NULL==updater) { return; } if (y_offset && strlen(y_offset)) { updater->length += SYNCTEX_fprintf(SYNCTEX_FILE,"Y Offset:%s\n",y_offset); } } void synctex_updater_free(synctex_updater_t updater){ if (NULL==updater) { return; } if (updater->length>0) { SYNCTEX_fprintf(SYNCTEX_FILE,"!%i\n",updater->length); } if (SYNCTEX_NO_GZ) { fclose((FILE *)SYNCTEX_FILE); } else { gzclose((gzFile)SYNCTEX_FILE); } free(updater); printf("... done.\n"); return; } gummi-0.6.5/src/syncTeX/synctex_parser_utils.c0000644000175000017500000004002612040524267016406 00000000000000/* Copyright (c) 2008, 2009, 2010 , 2011 jerome DOT laurens AT u-bourgogne DOT fr This file is part of the SyncTeX package. Latest Revision: Tue Jun 14 08:23:30 UTC 2011 Version: 1.16 See synctex_parser_readme.txt for more details License: -------- 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE Except as contained in this notice, the name of the copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the copyright holder. */ /* In this file, we find all the functions that may depend on the operating system. */ #include #include #include #include #include #include #include #include #include #if defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) #define SYNCTEX_WINDOWS 1 #endif #ifdef _WIN32_WINNT_WINXP #define SYNCTEX_RECENT_WINDOWS 1 #endif #ifdef SYNCTEX_WINDOWS #include #endif void *_synctex_malloc(size_t size) { void * ptr = malloc(size); if(ptr) { /* There used to be a switch to use bzero because it is more secure. JL */ memset(ptr,0, size); } return (void *)ptr; } int _synctex_error(const char * reason,...) { va_list arg; int result; va_start (arg, reason); # ifdef SYNCTEX_RECENT_WINDOWS {/* This code is contributed by William Blum. As it does not work on some older computers, the _WIN32 conditional here is replaced with a SYNCTEX_RECENT_WINDOWS one. According to http://msdn.microsoft.com/en-us/library/aa363362(VS.85).aspx Minimum supported client Windows 2000 Professional Minimum supported server Windows 2000 Server People running Windows 2K standard edition will not have OutputDebugStringA. JL.*/ char *buff; size_t len; OutputDebugStringA("SyncTeX ERROR: "); len = _vscprintf(reason, arg) + 1; buff = (char*)malloc( len * sizeof(char) ); result = vsprintf(buff, reason, arg) +strlen("SyncTeX ERROR: "); OutputDebugStringA(buff); OutputDebugStringA("\n"); free(buff); } # else result = fprintf(stderr,"SyncTeX ERROR: "); result += vfprintf(stderr, reason, arg); result += fprintf(stderr,"\n"); # endif va_end (arg); return result; } /* strip the last extension of the given string, this string is modified! */ void _synctex_strip_last_path_extension(char * string) { if(NULL != string){ char * last_component = NULL; char * last_extension = NULL; char * next = NULL; /* first we find the last path component */ if(NULL == (last_component = strstr(string,"/"))){ last_component = string; } else { ++last_component; while((next = strstr(last_component,"/"))){ last_component = next+1; } } # ifdef SYNCTEX_WINDOWS /* On Windows, the '\' is also a path separator. */ while((next = strstr(last_component,"\\"))){ last_component = next+1; } # endif /* then we find the last path extension */ if((last_extension = strstr(last_component,"."))){ ++last_extension; while((next = strstr(last_extension,"."))){ last_extension = next+1; } --last_extension;/* back to the "." */ if(last_extension>last_component){/* filter out paths like ....my/dir/.hidden"*/ last_extension[0] = '\0'; } } } } const char * synctex_ignore_leading_dot_slash(const char * name) { while(SYNCTEX_IS_DOT(*name) && SYNCTEX_IS_PATH_SEPARATOR(name[1])) { name += 2; while (SYNCTEX_IS_PATH_SEPARATOR(*name)) { ++name; } } return name; } /* Compare two file names, windows is sometimes case insensitive... */ synctex_bool_t _synctex_is_equivalent_file_name(const char *lhs, const char *rhs) { /* Remove the leading regex '(\./+)*' in both rhs and lhs */ lhs = synctex_ignore_leading_dot_slash(lhs); rhs = synctex_ignore_leading_dot_slash(rhs); # if SYNCTEX_WINDOWS /* On Windows, filename should be compared case insensitive. * The characters '/' and '\' are both valid path separators. * There will be a very serious problem concerning UTF8 because * not all the characters must be toupper... * I would like to have URL's instead of filenames. */ next_character: if(SYNCTEX_IS_PATH_SEPARATOR(*lhs)) {/* lhs points to a path separator */ if(!SYNCTEX_IS_PATH_SEPARATOR(*rhs)) {/* but not rhs */ return synctex_NO; } } else if(SYNCTEX_IS_PATH_SEPARATOR(*rhs)) {/* rhs points to a path separator but not lhs */ return synctex_NO; } else if(toupper(*lhs) != toupper(*rhs)){/* uppercase do not match */ return synctex_NO; } else if (!*lhs) {/* lhs is at the end of the string */ return *rhs ? synctex_NO : synctex_YES; } else if(!*rhs) {/* rhs is at the end of the string but not lhs */ return synctex_NO; } ++lhs; ++rhs; goto next_character; # else return 0 == strcmp(lhs,rhs)?synctex_YES:synctex_NO; # endif } synctex_bool_t _synctex_path_is_absolute(const char * name) { if(!strlen(name)) { return synctex_NO; } # if SYNCTEX_WINDOWS if(strlen(name)>2) { return (name[1]==':' && SYNCTEX_IS_PATH_SEPARATOR(name[2]))?synctex_YES:synctex_NO; } return synctex_NO; # else return SYNCTEX_IS_PATH_SEPARATOR(name[0])?synctex_YES:synctex_NO; # endif } /* We do not take care of UTF-8 */ const char * _synctex_last_path_component(const char * name) { const char * c = name+strlen(name); if(c>name) { if(!SYNCTEX_IS_PATH_SEPARATOR(*c)) { do { --c; if(SYNCTEX_IS_PATH_SEPARATOR(*c)) { return c+1; } } while(c>name); } return c;/* the last path component is the void string*/ } return c; } int _synctex_copy_with_quoting_last_path_component(const char * src, char ** dest_ref, size_t size) { const char * lpc; if(src && dest_ref) { # define dest (*dest_ref) dest = NULL; /* Default behavior: no change and sucess. */ lpc = _synctex_last_path_component(src); if(strlen(lpc)) { if(strchr(lpc,' ') && lpc[0]!='"' && lpc[strlen(lpc)-1]!='"') { /* We are in the situation where adding the quotes is allowed. */ /* Time to add the quotes. */ /* Consistency test: we must have dest+size>dest+strlen(dest)+2 * or equivalently: strlen(dest)+20) { char * result = NULL; ++size; /* Create the memory storage */ if(NULL!=(result = (char *)malloc(size))) { char * dest = result; va_start (arg, first); temp = first; do { if((size = strlen(temp))>0) { /* There is something to merge */ if(dest != strncpy(dest,temp,size)) { _synctex_error("! _synctex_merge_strings: Copy problem"); free(result); result = NULL; return NULL; } dest += size; } } while( (temp = va_arg(arg, const char *)) != NULL); va_end(arg); dest[0]='\0';/* Terminate the merged string */ return result; } _synctex_error("! _synctex_merge_strings: Memory problem"); return NULL; } return NULL; } /* The purpose of _synctex_get_name is to find the name of the synctex file. * There is a list of possible filenames from which we return the most recent one and try to remove all the others. * With two runs of pdftex or xetex we are sure the the synctex file is really the most appropriate. */ int _synctex_get_name(const char * output, const char * build_directory, char ** synctex_name_ref, synctex_io_mode_t * io_mode_ref) { if(output && synctex_name_ref && io_mode_ref) { /* If output is already absolute, we just have to manage the quotes and the compress mode */ size_t size = 0; char * synctex_name = NULL; synctex_io_mode_t io_mode = *io_mode_ref; const char * base_name = _synctex_last_path_component(output); /* do not free, output is the owner. base name of output*/ /* Do we have a real base name ? */ if(strlen(base_name)>0) { /* Yes, we do. */ const char * temp = NULL; char * core_name = NULL; /* base name of output without path extension. */ char * dir_name = NULL; /* dir name of output */ char * quoted_core_name = NULL; char * basic_name = NULL; char * gz_name = NULL; char * quoted_name = NULL; char * quoted_gz_name = NULL; char * build_name = NULL; char * build_gz_name = NULL; char * build_quoted_name = NULL; char * build_quoted_gz_name = NULL; struct stat buf; time_t the_time = 0; /* Create core_name: let temp point to the dot before the path extension of base_name; * We start form the \0 terminating character and scan the string upward until we find a dot. * The leading dot is not accepted. */ if((temp = strrchr(base_name,'.')) && (size = temp - base_name)>0) { /* There is a dot and it is not at the leading position */ if(NULL == (core_name = (char *)malloc(size+1))) { _synctex_error("! _synctex_get_name: Memory problem 1"); return -1; } if(core_name != strncpy(core_name,base_name,size)) { _synctex_error("! _synctex_get_name: Copy problem 1"); free(core_name); dir_name = NULL; return -2; } core_name[size] = '\0'; } else { /* There is no path extension, * Just make a copy of base_name */ core_name = _synctex_merge_strings(base_name); } /* core_name is properly set up, owned by "self". */ /* creating dir_name. */ size = strlen(output)-strlen(base_name); if(size>0) { /* output contains more than one path component */ if(NULL == (dir_name = (char *)malloc(size+1))) { _synctex_error("! _synctex_get_name: Memory problem"); free(core_name); dir_name = NULL; return -1; } if(dir_name != strncpy(dir_name,output,size)) { _synctex_error("! _synctex_get_name: Copy problem"); free(dir_name); dir_name = NULL; free(core_name); dir_name = NULL; return -2; } dir_name[size] = '\0'; } /* dir_name is properly set up. It ends with a path separator, if non void. */ /* creating quoted_core_name. */ if(strchr(core_name,' ')) { quoted_core_name = _synctex_merge_strings("\"",core_name,"\""); } /* quoted_core_name is properly set up. */ if(dir_name &&strlen(dir_name)>0) { basic_name = _synctex_merge_strings(dir_name,core_name,synctex_suffix,NULL); if(quoted_core_name && strlen(quoted_core_name)>0) { quoted_name = _synctex_merge_strings(dir_name,quoted_core_name,synctex_suffix,NULL); } } else { basic_name = _synctex_merge_strings(core_name,synctex_suffix,NULL); if(quoted_core_name && strlen(quoted_core_name)>0) { quoted_name = _synctex_merge_strings(quoted_core_name,synctex_suffix,NULL); } } if(!_synctex_path_is_absolute(output) && build_directory && (size = strlen(build_directory))) { temp = build_directory + size - 1; if(_synctex_path_is_absolute(temp)) { build_name = _synctex_merge_strings(build_directory,basic_name,NULL); if(quoted_core_name && strlen(quoted_core_name)>0) { build_quoted_name = _synctex_merge_strings(build_directory,quoted_name,NULL); } } else { build_name = _synctex_merge_strings(build_directory,"/",basic_name,NULL); if(quoted_core_name && strlen(quoted_core_name)>0) { build_quoted_name = _synctex_merge_strings(build_directory,"/",quoted_name,NULL); } } } if(basic_name) { gz_name = _synctex_merge_strings(basic_name,synctex_suffix_gz,NULL); } if(quoted_name) { quoted_gz_name = _synctex_merge_strings(quoted_name,synctex_suffix_gz,NULL); } if(build_name) { build_gz_name = _synctex_merge_strings(build_name,synctex_suffix_gz,NULL); } if(build_quoted_name) { build_quoted_gz_name = _synctex_merge_strings(build_quoted_name,synctex_suffix_gz,NULL); } /* All the others names are properly set up... */ /* retain the most recently modified file */ # define TEST(FILENAME,COMPRESS_MODE) \ if(FILENAME) {\ if (stat(FILENAME, &buf)) { \ free(FILENAME);\ FILENAME = NULL;\ } else if (buf.st_mtime>the_time) { \ the_time=buf.st_mtime; \ synctex_name = FILENAME; \ if (COMPRESS_MODE) { \ io_mode |= synctex_io_gz_mask; \ } else { \ io_mode &= ~synctex_io_gz_mask; \ } \ } \ } TEST(basic_name,synctex_DONT_COMPRESS); TEST(gz_name,synctex_COMPRESS); TEST(quoted_name,synctex_DONT_COMPRESS); TEST(quoted_gz_name,synctex_COMPRESS); TEST(build_name,synctex_DONT_COMPRESS); TEST(build_gz_name,synctex_COMPRESS); TEST(build_quoted_name,synctex_DONT_COMPRESS); TEST(build_quoted_gz_name,synctex_COMPRESS); # undef TEST /* Free all the intermediate filenames, except the one that will be used as returned value. */ # define CLEAN_AND_REMOVE(FILENAME) \ if(FILENAME && (FILENAME!=synctex_name)) {\ remove(FILENAME);\ printf("synctex tool info: %s removed\n",FILENAME);\ free(FILENAME);\ FILENAME = NULL;\ } CLEAN_AND_REMOVE(basic_name); CLEAN_AND_REMOVE(gz_name); CLEAN_AND_REMOVE(quoted_name); CLEAN_AND_REMOVE(quoted_gz_name); CLEAN_AND_REMOVE(build_name); CLEAN_AND_REMOVE(build_gz_name); CLEAN_AND_REMOVE(build_quoted_name); CLEAN_AND_REMOVE(build_quoted_gz_name); # undef CLEAN_AND_REMOVE /* set up the returned values */ * synctex_name_ref = synctex_name; * io_mode_ref = io_mode; return 0; } return -1;/* bad argument */ } return -2; } const char * _synctex_get_io_mode_name(synctex_io_mode_t io_mode) { static const char * synctex_io_modes[4] = {"r","rb","a","ab"}; unsigned index = ((io_mode & synctex_io_gz_mask)?1:0) + ((io_mode & synctex_io_append_mask)?2:0);// bug pointed out by Jose Alliste return synctex_io_modes[index]; } gummi-0.6.5/src/syncTeX/synctex_parser_utils.h0000644000175000017500000001230312040524267016410 00000000000000/* Copyright (c) 2008, 2009, 2010, 2011 jerome DOT laurens AT u-bourgogne DOT fr This file is part of the SyncTeX package. Latest Revision: Tue Jun 14 08:23:30 UTC 2011 Version: 1.16 See synctex_parser_readme.txt for more details License: -------- 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE Except as contained in this notice, the name of the copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the copyright holder. */ /* The utilities declared here are subject to conditional implementation. * All the operating system special stuff goes here. * The problem mainly comes from file name management: path separator, encoding... */ # define synctex_bool_t int # define synctex_YES -1 # define synctex_ADD_QUOTES -1 # define synctex_COMPRESS -1 # define synctex_NO 0 # define synctex_DONT_ADD_QUOTES 0 # define synctex_DONT_COMPRESS 0 #ifndef __SYNCTEX_PARSER_UTILS__ # define __SYNCTEX_PARSER_UTILS__ #include #ifdef __cplusplus extern "C" { #endif # if _WIN32 # define SYNCTEX_IS_PATH_SEPARATOR(c) ('/' == c || '\\' == c) # else # define SYNCTEX_IS_PATH_SEPARATOR(c) ('/' == c) # endif # if _WIN32 # define SYNCTEX_IS_DOT(c) ('.' == c) # else # define SYNCTEX_IS_DOT(c) ('.' == c) # endif /* This custom malloc functions initializes to 0 the newly allocated memory. * There is no bzero function on windows. */ void *_synctex_malloc(size_t size); /* This is used to log some informational message to the standard error stream. * On Windows, the stderr stream is not exposed and another method is used. * The return value is the number of characters printed. */ int _synctex_error(const char * reason,...); /* strip the last extension of the given string, this string is modified! * This function depends on the OS because the path separator may differ. * This should be discussed more precisely. */ void _synctex_strip_last_path_extension(char * string); /* Compare two file names, windows is sometimes case insensitive... * The given strings may differ stricto sensu, but represent the same file name. * It might not be the real way of doing things. * The return value is an undefined non 0 value when the two file names are equivalent. * It is 0 otherwise. */ synctex_bool_t _synctex_is_equivalent_file_name(const char *lhs, const char *rhs); /* Description forthcoming.*/ synctex_bool_t _synctex_path_is_absolute(const char * name); /* Description forthcoming...*/ const char * _synctex_last_path_component(const char * name); /* If the core of the last path component of src is not already enclosed with double quotes ('"') * and contains a space character (' '), then a new buffer is created, the src is copied and quotes are added. * In all other cases, no destination buffer is created and the src is not copied. * 0 on success, which means no error, something non 0 means error, mainly due to memory allocation failure, or bad parameter. * This is used to fix a bug in the first version of pdftex with synctex (1.40.9) for which names with spaces * were not managed in a standard way. * On success, the caller owns the buffer pointed to by dest_ref (is any) and * is responsible of freeing the memory when done. * The size argument is the size of the src buffer. On return the dest_ref points to a buffer sized size+2.*/ int _synctex_copy_with_quoting_last_path_component(const char * src, char ** dest_ref, size_t size); /* These are the possible extensions of the synctex file */ extern const char * synctex_suffix; extern const char * synctex_suffix_gz; typedef unsigned int synctex_io_mode_t; typedef enum { synctex_io_append_mask = 1, synctex_io_gz_mask = synctex_io_append_mask<<1 } synctex_io_mode_masks_t; typedef enum { synctex_compress_mode_none = 0, synctex_compress_mode_gz = 1 } synctex_compress_mode_t; int _synctex_get_name(const char * output, const char * build_directory, char ** synctex_name_ref, synctex_io_mode_t * io_mode_ref); /* returns the correct mode required by fopen and gzopen from the given io_mode */ const char * _synctex_get_io_mode_name(synctex_io_mode_t io_mode); const char * synctex_ignore_leading_dot_slash(const char * name); #ifdef __cplusplus } #endif #endif gummi-0.6.5/src/syncTeX/synctex_parser.h0000644000175000017500000003561512040524267015203 00000000000000/* Copyright (c) 2008, 2009, 2010 , 2011 jerome DOT laurens AT u-bourgogne DOT fr This file is part of the SyncTeX package. Latest Revision: Tue Jun 14 08:23:30 UTC 2011 Version: 1.16 See synctex_parser_readme.txt for more details License: -------- 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE Except as contained in this notice, the name of the copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the copyright holder. Acknowledgments: ---------------- The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh, and significant help from XeTeX developer Jonathan Kew Nota Bene: ---------- If you include or use a significant part of the synctex package into a software, I would appreciate to be listed as contributor and see "SyncTeX" highlighted. Version 1 Thu Jun 19 09:39:21 UTC 2008 */ #ifndef __SYNCTEX_PARSER__ # define __SYNCTEX_PARSER__ #ifdef __cplusplus extern "C" { #endif /* synctex_node_t is the type for all synctex nodes. * The synctex file is parsed into a tree of nodes, either sheet, boxes, math nodes... */ typedef struct _synctex_node * synctex_node_t; /* The main synctex object is a scanner * Its implementation is considered private. * The basic workflow is * - create a "synctex scanner" with the contents of a file * - perform actions on that scanner like display or edit queries * - free the scanner when the work is done */ typedef struct __synctex_scanner_t _synctex_scanner_t; typedef _synctex_scanner_t * synctex_scanner_t; /* This is the designated method to create a new synctex scanner object. * output is the pdf/dvi/xdv file associated to the synctex file. * If necessary, it can be the tex file that originated the synctex file * but this might cause problems if the \jobname has a custom value. * Despite this method can accept a relative path in practice, * you should only pass a full path name. * The path should be encoded by the underlying file system, * assuming that it is based on 8 bits characters, including UTF8, * not 16 bits nor 32 bits. * The last file extension is removed and replaced by the proper extension. * Then the private method _synctex_scanner_new_with_contents_of_file is called. * NULL is returned in case of an error or non existent file. * Once you have a scanner, use the synctex_display_query and synctex_edit_query below. * The new "build_directory" argument is available since version 1.5. * It is the directory where all the auxiliary stuff is created. * Sometimes, the synctex output file and the pdf, dvi or xdv files are not created in the same directory. * This is the case in MikTeX (I will include this into TeX Live). * This directory path can be nil, it will be ignored then. * It can be either absolute or relative to the directory of the output pdf (dvi or xdv) file. * If no synctex file is found in the same directory as the output file, then we try to find one in the build directory. * Please note that this new "build_directory" is provided as a convenient argument but should not be used. * In fact, this is implempented as a work around of a bug in MikTeX where the synctex file does not follow the pdf file. * The new "parse" argument is available since version 1.5. In general, use 1. * Use 0 only if you do not want to parse the content but just check the existence. */ synctex_scanner_t synctex_scanner_new_with_output_file(const char * output, const char * build_directory, int parse); /* This is the designated method to delete a synctex scanner object. * Frees all the memory, you must call it when you are finished with the scanner. */ void synctex_scanner_free(synctex_scanner_t scanner); /* Send this message to force the scanner to parse the contents of the synctex output file. * Nothing is performed if the file was already parsed. * In each query below, this message is sent, but if you need to access information more directly, * you must be sure that the parsing did occur. * Usage: * if((my_scanner = synctex_scanner_parse(my_scanner))) { * continue with my_scanner... * } else { * there was a problem * } */ synctex_scanner_t synctex_scanner_parse(synctex_scanner_t scanner); /* The main entry points. * Given the file name, a line and a column number, synctex_display_query returns the number of nodes * satisfying the contrain. Use code like * * if(synctex_display_query(scanner,name,line,column)>0) { * synctex_node_t node; * while((node = synctex_next_result(scanner))) { * // do something with node * ... * } * } * * For example, one can * - highlight each resulting node in the output, using synctex_node_h and synctex_node_v * - highlight all the rectangles enclosing those nodes, using synctex_box_... functions * - highlight just the character using that information * * Given the page and the position in the page, synctex_edit_query returns the number of nodes * satisfying the contrain. Use code like * * if(synctex_edit_query(scanner,page,h,v)>0) { * synctex_node_t node; * while(node = synctex_next_result(scanner)) { * // do something with node * ... * } * } * * For example, one can * - highlight each resulting line in the input, * - highlight just the character using that information * * page is 1 based * h and v are coordinates in 72 dpi unit, relative to the top left corner of the page. * If you make a new query, the result of the previous one is discarded. * If one of this function returns a non positive integer, * it means that an error occurred. * * Both methods are conservative, in the sense that matching is weak. * If the exact column number is not found, there will be an answer with the whole line. * * Sumatra-PDF, Skim, iTeXMac2 and Texworks are examples of open source software that use this library. * You can browse their code for a concrete implementation. */ int synctex_display_query(synctex_scanner_t scanner,const char * name,int line,int column); int synctex_edit_query(synctex_scanner_t scanner,int page,float h,float v); synctex_node_t synctex_next_result(synctex_scanner_t scanner); /* Display all the information contained in the scanner object. * If the records are too numerous, only the first ones are displayed. * This is mainly for informatinal purpose to help developers. */ void synctex_scanner_display(synctex_scanner_t scanner); /* The x and y offset of the origin in TeX coordinates. The magnification These are used by pdf viewers that want to display the real box size. For example, getting the horizontal coordinates of a node would require synctex_node_box_h(node)*synctex_scanner_magnification(scanner)+synctex_scanner_x_offset(scanner) Getting its TeX width would simply require synctex_node_box_width(node)*synctex_scanner_magnification(scanner) but direct methods are available for that below. */ int synctex_scanner_x_offset(synctex_scanner_t scanner); int synctex_scanner_y_offset(synctex_scanner_t scanner); float synctex_scanner_magnification(synctex_scanner_t scanner); /* Managing the input file names. * Given a tag, synctex_scanner_get_name will return the corresponding file name. * Conversely, given a file name, synctex_scanner_get_tag will retur, the corresponding tag. * The file name must be the very same as understood by TeX. * For example, if you \input myDir/foo.tex, the file name is myDir/foo.tex. * No automatic path expansion is performed. * Finally, synctex_scanner_input is the first input node of the scanner. * To browse all the input node, use a loop like * * if((input_node = synctex_scanner_input(scanner))){ * do { * blah * } while((input_node=synctex_node_sibling(input_node))); * } * * The output is the name that was used to create the scanner. * The synctex is the real name of the synctex file, * it was obtained from output by setting the proper file extension. */ const char * synctex_scanner_get_name(synctex_scanner_t scanner,int tag); int synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name); synctex_node_t synctex_scanner_input(synctex_scanner_t scanner); const char * synctex_scanner_get_output(synctex_scanner_t scanner); const char * synctex_scanner_get_synctex(synctex_scanner_t scanner); /* Browsing the nodes * parent, child and sibling are standard names for tree nodes. * The parent is one level higher, the child is one level deeper, * and the sibling is at the same level. * The sheet of a node is the first ancestor, it is of type sheet. * A node and its sibling have the same parent. * A node is the parent of its child. * A node is either the child of its parent, * or belongs to the sibling chain of its parent's child. * The next node is either the child, the sibling or the parent's sibling, * unless the parent is a sheet. * This allows to navigate through all the nodes of a given sheet node: * * synctex_node_t node = sheet; * while((node = synctex_node_next(node))) { * // do something with node * } * * With synctex_sheet_content, you can retrieve the sheet node given the page. * The page is 1 based, according to TeX standards. * Conversely synctex_node_sheet allows to retrieve the sheet containing a given node. */ synctex_node_t synctex_node_parent(synctex_node_t node); synctex_node_t synctex_node_sheet(synctex_node_t node); synctex_node_t synctex_node_child(synctex_node_t node); synctex_node_t synctex_node_sibling(synctex_node_t node); synctex_node_t synctex_node_next(synctex_node_t node); synctex_node_t synctex_sheet_content(synctex_scanner_t scanner,int page); /* These are the types of the synctex nodes */ typedef enum { synctex_node_type_error = 0, synctex_node_type_input, synctex_node_type_sheet, synctex_node_type_vbox, synctex_node_type_void_vbox, synctex_node_type_hbox, synctex_node_type_void_hbox, synctex_node_type_kern, synctex_node_type_glue, synctex_node_type_math, synctex_node_type_boundary, synctex_node_number_of_types } synctex_node_type_t; /* synctex_node_type gives the type of a given node, * synctex_node_isa gives the same information as a human readable text. */ synctex_node_type_t synctex_node_type(synctex_node_t node); const char * synctex_node_isa(synctex_node_t node); /* This is primarily used for debugging purpose. * The second one logs information for the node and recursively displays information for its next node */ void synctex_node_log(synctex_node_t node); void synctex_node_display(synctex_node_t node); /* Given a node, access to its tag, line and column. * The line and column numbers are 1 based. * The latter is not yet fully supported in TeX, the default implementation returns 0 which means the whole line. * When the tag is known, the scanner of the node will give the corresponding file name. * When the tag is known, the scanner of the node will give the name. */ int synctex_node_tag(synctex_node_t node); int synctex_node_line(synctex_node_t node); int synctex_node_column(synctex_node_t node); /* This is the page where the node appears. * This is a 1 based index as given by TeX. */ int synctex_node_page(synctex_node_t node); /* For quite all nodes, horizontal, vertical coordinates, and width. * These are expressed in TeX small points coordinates, with origin at the top left corner. */ int synctex_node_h(synctex_node_t node); int synctex_node_v(synctex_node_t node); int synctex_node_width(synctex_node_t node); /* For all nodes, dimensions of the enclosing box. * These are expressed in TeX small points coordinates, with origin at the top left corner. * A box is enclosing itself. */ int synctex_node_box_h(synctex_node_t node); int synctex_node_box_v(synctex_node_t node); int synctex_node_box_width(synctex_node_t node); int synctex_node_box_height(synctex_node_t node); int synctex_node_box_depth(synctex_node_t node); /* For quite all nodes, horizontal, vertical coordinates, and width. * The visible dimensions are bigger than real ones to compensate 0 width boxes * that do contain nodes. * These are expressed in page coordinates, with origin at the top left corner. * A box is enclosing itself. */ float synctex_node_visible_h(synctex_node_t node); float synctex_node_visible_v(synctex_node_t node); float synctex_node_visible_width(synctex_node_t node); /* For all nodes, visible dimensions of the enclosing box. * A box is enclosing itself. * The visible dimensions are bigger than real ones to compensate 0 width boxes * that do contain nodes. */ float synctex_node_box_visible_h(synctex_node_t node); float synctex_node_box_visible_v(synctex_node_t node); float synctex_node_box_visible_width(synctex_node_t node); float synctex_node_box_visible_height(synctex_node_t node); float synctex_node_box_visible_depth(synctex_node_t node); /* The main synctex updater object. * This object is used to append information to the synctex file. * Its implementation is considered private. * It is used by the synctex command line tool to take into account modifications * that could occur while postprocessing files by dvipdf like filters. */ typedef struct __synctex_updater_t _synctex_updater_t; typedef _synctex_updater_t * synctex_updater_t; /* Designated initializer. * Once you are done with your whole job, * free the updater */ synctex_updater_t synctex_updater_new_with_output_file(const char * output, const char * directory); /* Use the next functions to append records to the synctex file, * no consistency tests made on the arguments */ void synctex_updater_append_magnification(synctex_updater_t updater, char * magnification); void synctex_updater_append_x_offset(synctex_updater_t updater, char * x_offset); void synctex_updater_append_y_offset(synctex_updater_t updater, char * y_offset); /* You MUST free the updater, once everything is properly appended */ void synctex_updater_free(synctex_updater_t updater); #ifdef __cplusplus } #endif #endif gummi-0.6.5/src/constants.h0000644000175000017500000000423212040524270012532 00000000000000/** * @file constants.h * @brief Constants used throughout the program * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "utils.h" #ifndef __GUMMI_CONSTANTS_H__ #define __GUMMI_CONSTANTS_H__ /* File constants */ #define C_WELCOMETEXT g_build_filename ( g_get_user_config_dir (), "gummi", "welcome.tex", NULL) #define C_DEFAULTTEXT g_build_filename (GUMMI_DATA, "misc", "default.tex", NULL) /* URL constants */ #define C_GUMMIGUIDE "http://dev.midnightcoding.org/projects/gummi/wiki/UserGuide" #define C_LATEX "latex" #define C_PDFLATEX "pdflatex" #define C_XELATEX "xelatex" #define C_RUBBER "rubber" #define C_LATEXMK "latexmk" #define C_CD_TMPDIR g_strdup_printf ("cd \"%s\"%s%s",C_TMPDIR,C_CMDSEP,C_TEXSEC) #define C_DIRSEP G_DIR_SEPARATOR_S /* Platform dependant constants : */ #ifdef WIN32 #define C_TMPDIR utils_get_tmp_tmp_dir() #define C_CMDSEP "&&" #define C_TEXSEC "" #else #define C_TMPDIR g_get_tmp_dir() #define C_CMDSEP ";" #define C_TEXSEC "env openout_any=a" #endif #endif /* __GUMMI_CONSTANTS_H__ */ gummi-0.6.5/src/motion.h0000644000175000017500000000464012040524270012026 00000000000000/** * @file motion.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_MOTION_H__ #define __GUMMI_MOTION_H__ #include #include #define GU_MOTION(x) ((GuMotion*)x) typedef struct _GuMotion GuMotion; struct _GuMotion { gint key_press_timer; GMutex* signal_mutex; GMutex* compile_mutex; GThread* compile_thread; GCond* compile_cv; pid_t* typesetter_pid; gboolean keep_running; gboolean pause; gboolean errormode; }; GuMotion* motion_init (void); void motion_start_compile_thread (GuMotion* m); void motion_stop_compile_thread (GuMotion* m); void motion_pause_compile_thread (GuMotion* m); void motion_resume_compile_thread (GuMotion* m); gboolean motion_do_compile (gpointer user); void motion_force_compile (GuMotion *mc); gpointer motion_compile_thread (gpointer data); gboolean motion_idle_cb (gpointer user); void motion_start_timer (GuMotion* mc); void motion_stop_timer (GuMotion* mc); void motion_kill_typesetter (GuMotion* m); void motion_start_errormode (GuMotion *mc, const gchar *msg); void motion_stop_errormode (GuMotion *mc); gboolean on_key_press_cb (GtkWidget* widget, GdkEventKey* event, void* user); gboolean on_key_release_cb (GtkWidget* widget, GdkEventKey* event, void* user); #endif /* __GUMMI_MOTION_H__ */ gummi-0.6.5/src/latex.h0000644000175000017500000000454512040524270011642 00000000000000/** * @file latex.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_LATEX_H__ #define __GUMMI_LATEX_H__ #include #include "editor.h" #include "gui/gui-preview.h" #define GU_LATEX(x) ((GuLatex*)x) typedef struct _GuLatex GuLatex; struct _GuLatex { gchar* typesetter; /* use fixed size for errorlines in consider of performance */ gint errorlines[BUFSIZ]; gchar* compilelog; gboolean modified_since_compile; int tex_version; }; GuLatex* latex_init (void); gboolean latex_precompile_check (gchar* editortext); gchar* latex_update_workfile (GuLatex* mc, GuEditor* ec); gboolean latex_update_pdffile (GuLatex* mc, GuEditor* ec); void latex_update_auxfile (GuLatex* mc, GuEditor* ec); void latex_export_pdffile (GuLatex* lc, GuEditor* ec, const gchar* path, gboolean prompt_overrite); gboolean latex_typesetter_detected (GuLatex* lc, gchar* typesetter); gboolean latex_typesetter_active (gchar* typesetter); gboolean latex_method_active (gchar* method); gboolean latex_run_makeindex (GuEditor* ec); int latex_remove_auxfile (GuEditor* ec); gboolean latex_can_synctex (void); gboolean latex_use_synctex (void); gboolean latex_use_shellescaping (void); #endif /* __GUMMI_LATEX_H__ */ gummi-0.6.5/src/template.c0000644000175000017500000001463312040524270012332 00000000000000/** * @file template.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "template.h" #include #include #include #include #include #include "configfile.h" #include "environment.h" #include "utils.h" //TODO: this should really be a gui class in 0.7.0 GuTemplate* template_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuTemplate* t = g_new0 (GuTemplate, 1); t->templatewindow = GTK_WINDOW (gtk_builder_get_object (builder, "templatewindow")); t->templateview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "template_treeview")); t->list_templates = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_templates")); t->template_label = GTK_LABEL (gtk_builder_get_object (builder, "template_label")); t->template_add = GTK_WIDGET (gtk_builder_get_object (builder, "template_add")); t->template_remove = GTK_WIDGET (gtk_builder_get_object (builder, "template_remove")); t->template_open = GTK_WIDGET (gtk_builder_get_object (builder, "template_open")); t->template_render = GTK_CELL_RENDERER_TEXT ( gtk_builder_get_object (builder, "template_renderer")); t->template_col = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object (builder, "template_column")); gtk_tree_view_column_set_sort_column_id (t->template_col, 0); return t; } void template_setup (GuTemplate* t) { const gchar *filename; char *filepath = NULL; GError *error = NULL; GtkTreeIter iter; gchar *dirpath = g_build_filename (g_get_user_config_dir (), "gummi", "templates" , NULL); GDir* dir = g_dir_open (dirpath, 0, &error); if (error) { /* print error if directory does not exist */ slog (L_INFO, "unable to read template directory, creating new..\n"); g_mkdir_with_parents (dirpath, DIR_PERMS); g_free (dirpath); return; } while ( (filename = g_dir_read_name (dir))) { filepath = g_build_filename (dirpath, filename, NULL); gtk_list_store_append (t->list_templates, &iter); gtk_list_store_set (t->list_templates, &iter, 0, filename, 1, filepath, -1); g_free (filepath); } g_free (dirpath); // disable the add button when there are no tabs opened (#388) if (!tabmanager_has_tabs()) { gtk_widget_set_sensitive (t->template_add, FALSE); } gtk_widget_set_sensitive (t->template_open, FALSE); } gchar* template_get_selected_path (GuTemplate* t) { GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; gchar *filepath = NULL; model = gtk_tree_view_get_model (t->templateview); selection = gtk_tree_view_get_selection (t->templateview); if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, 1, &filepath, -1); return filepath; } void template_add_new_entry (GuTemplate* t) { GtkTreeIter iter; GtkTreeModel* model = NULL; GtkTreePath* path = NULL; GtkTreeViewColumn* col = NULL; GList* cells = NULL; gtk_label_set_text (t->template_label, ""); gtk_list_store_append (t->list_templates, &iter); g_object_set (t->template_render, "editable", TRUE, NULL); gtk_widget_set_sensitive (t->template_add, FALSE); gtk_widget_set_sensitive (t->template_remove, FALSE); gtk_widget_set_sensitive (t->template_open, FALSE); col = gtk_tree_view_get_column (t->templateview, 0); model = gtk_tree_view_get_model (t->templateview); path = gtk_tree_model_get_path (model, &iter); cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (col)); gtk_tree_view_set_cursor_on_cell (t->templateview, path, col, cells->data, TRUE); g_list_free (cells); gtk_tree_path_free (path); } void template_remove_entry (GuTemplate* t) { GtkTreeModel* model = NULL; GtkTreeIter iter; GtkTreeSelection* selection = NULL; gchar* filepath = NULL; model = gtk_tree_view_get_model (t->templateview); selection = gtk_tree_view_get_selection (t->templateview); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, 1, &filepath, -1); gtk_list_store_remove (t->list_templates, &iter); g_remove (filepath); } gtk_widget_set_sensitive (t->template_open, FALSE); } void template_create_file (GuTemplate* t, gchar* filename, gchar* text) { const char* filepath = g_build_filename (g_get_user_config_dir (), "gummi", "templates", filename, NULL); if (g_file_test (filepath, G_FILE_TEST_EXISTS)) { gtk_label_set_text (t->template_label, "filename already exists"); template_remove_entry (t); } else { g_file_set_contents (filepath, text, strlen (text), NULL); } g_object_set (t->template_render, "editable", FALSE, NULL); gtk_widget_set_sensitive (t->template_add, TRUE); gtk_widget_set_sensitive (t->template_remove, TRUE); gtk_widget_set_sensitive (t->template_open, TRUE); } void template_data_free(templdata* data) { g_free(data->itemname); g_free(data->itemdata); } gummi-0.6.5/src/utils.c0000644000175000017500000002613612040524270011660 00000000000000/** * @file utils.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include #ifdef WIN32 #include #else #include #include #endif #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #include "constants.h" #include "environment.h" #include "utils.h" #ifdef WIN32 static gchar *slogmsg_info = "[Info] "; static gchar *slogmsg_thread = "[Thread]"; static gchar *slogmsg_debug = "[Debug] "; static gchar *slogmsg_fatal = "[Fatal] "; static gchar *slogmsg_error = "[Error] "; static gchar *slogmsg_warning = "[Warning] "; #else static gchar *slogmsg_info = "\e[1;34m[Info]\e[0m "; static gchar *slogmsg_thread = "\e[1;31m[Thread]\e[0m"; static gchar *slogmsg_debug = "\e[1;32m[Debug]\e[0m "; static gchar *slogmsg_fatal = "\e[1;37;41m[Fatal]\e[0m "; static gchar *slogmsg_error = "\e[1;31m[Error]\e[0m "; static gchar *slogmsg_warning = "\e[1;33m[Warning]\e[0m "; #endif static gint slog_debug = 0; static GtkWindow* parent = 0; GThread* main_thread = 0; extern pid_t typesetter_pid; void slog_init (gint debug) { slog_debug = debug; main_thread = g_thread_self (); } gboolean in_debug_mode() { return slog_debug; } void slog_set_gui_parent (GtkWindow* p) { parent = p; } void slog (gint level, const gchar *fmt, ...) { gchar message[BUFSIZ]; gchar* out; va_list vap; if (L_IS_TYPE (level, L_DEBUG) && !slog_debug) return; if (g_thread_self () != main_thread) g_fprintf (stderr, "%s", slogmsg_thread); if (L_IS_TYPE (level, L_DEBUG)) g_fprintf (stderr, "%s", slogmsg_debug); else if (L_IS_TYPE (level, L_FATAL) || L_IS_TYPE (level, L_G_FATAL)) g_fprintf (stderr, "%s", slogmsg_fatal); else if (L_IS_TYPE (level, L_ERROR) || L_IS_TYPE (level, L_G_ERROR)) g_fprintf (stderr, "%s", slogmsg_error); else if (L_IS_TYPE (level, L_WARNING)) g_fprintf (stderr, "%s", slogmsg_warning); else g_fprintf (stderr, "%s", slogmsg_info); va_start (vap, fmt); vsnprintf (message, BUFSIZ, fmt, vap); va_end (vap); fprintf (stderr, "%s", message); if (L_IS_GUI (level)) { GtkWidget* dialog; if (L_IS_TYPE (level, L_G_FATAL)) out = g_strdup_printf (_("%s has encountered a serious error and " "will require a restart. Your working data will be " "restored when you reload your document. Please " "report bugs at: http://dev.midnightcoding.org"), PACKAGE_NAME); else out = g_strdup (message); dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, L_IS_TYPE (level,L_G_INFO)? GTK_MESSAGE_INFO: GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", message); g_free (out); if (L_IS_TYPE (level, L_G_ERROR)) gtk_window_set_title (GTK_WINDOW (dialog), "Error!"); else if (L_IS_TYPE (level, L_G_FATAL)) gtk_window_set_title (GTK_WINDOW (dialog), "Fatal Error!"); else if (L_IS_TYPE (level, L_G_INFO)) gtk_window_set_title (GTK_WINDOW (dialog), "Info"); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } if (!L_IS_TYPE (level, L_INFO) && !L_IS_TYPE (level, L_DEBUG) && !L_IS_TYPE (level, L_ERROR) && !L_IS_TYPE (level, L_G_INFO) && !L_IS_TYPE (level, L_G_ERROR)) exit (1); } gint utils_yes_no_dialog (const gchar* message) { GtkWidget* dialog; gint ret = 0; g_return_val_if_fail (message != NULL, 0); dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", message); gtk_window_set_title (GTK_WINDOW (dialog), _("Confirmation")); ret = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); return ret; } gboolean utils_path_exists (const gchar* path) { if (NULL == path) return FALSE; gboolean result = FALSE; GFile* file = g_file_new_for_path (path); result = g_file_query_exists (file, NULL); g_object_unref (file); return result; } gboolean utils_set_file_contents (const gchar *filename, const gchar *text, gssize length) { /* g_file_set_contents may not work correctly on Windows. See the * API documentation of this function for details. Should Gummi * be affected, we might have to implement an alternative */ GError* error = NULL; if (!g_file_set_contents(filename, text, length, &error)) { slog (L_ERROR, "%s\n", error->message); g_error_free(error); return FALSE; } return TRUE; } gboolean utils_copy_file (const gchar* source, const gchar* dest, GError** err) { gchar* contents; gsize length; g_return_val_if_fail (source != NULL, FALSE); g_return_val_if_fail (dest != NULL, FALSE); g_return_val_if_fail (err == NULL || *err == NULL, FALSE); if (!g_file_get_contents (source, &contents, &length, err)) return FALSE; if (!g_file_set_contents (dest, contents, length, err)) return FALSE; g_free (contents); return TRUE; } Tuple2 utils_popen_r (const gchar* cmd, const gchar* chdir) { gchar buf[BUFSIZ]; int pout = 0; gchar* ret = NULL; gchar* rot = NULL; glong len = 0; gint status = 0; int n_args = 0; gchar** args = NULL; GError* error = NULL; g_assert (cmd != NULL); /* XXX: Set process pid, ugly... */ if (!g_shell_parse_argv(cmd, &n_args, &args, &error)) { slog(L_G_FATAL, "%s", error->message); /* Not reached */ } if (!g_spawn_async_with_pipes (chdir, args, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &typesetter_pid, NULL, &pout, NULL, &error)) { slog(L_G_FATAL, "%s", error->message); /* Not reached */ } // TODO: replace with GIOChannel implementation: while ((len = read (pout, buf, BUFSIZ)) > 0) { buf[len - (len == BUFSIZ)] = 0; rot = g_strdup (ret); g_free (ret); if (ret) ret = g_strconcat (rot, buf, NULL); else ret = g_strdup (buf); g_free (rot); } // close the file descriptor: close(pout); #ifdef WIN32 // TODO: check this status = WaitForSingleObject(typesetter_pid, INFINITE); #else waitpid(typesetter_pid, &status, 0); #endif // See bug 446: if (ret) { if (!g_utf8_validate (ret, -1, NULL)) { ret = g_convert_with_fallback (ret, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL, NULL); } } return (Tuple2){NULL, (gpointer)(glong)status, (gpointer)ret}; } gchar* utils_path_to_relative (const gchar* root, const gchar* target) { gchar* tstr = NULL; if ( (root != NULL) && (0 == strncmp (target, root, strlen (root)))) tstr = g_strdup (target + strlen (root) + 1); else tstr = g_strdup (target); return tstr; } gchar* utils_get_tmp_tmp_dir (void) { /* brb, gonna go punch a wall */ gchar *tmp_tmp = g_build_path (C_DIRSEP, g_get_home_dir(), "gtmp", NULL); g_mkdir_with_parents (tmp_tmp, DIR_PERMS); return tmp_tmp; } gboolean utils_glist_is_member (GList* list, gchar* item) { int nrofitems = g_list_length (list); int i; for (i=0;ifirst, term, strlen (term))) return current; } else { if (STR_EQU (current->first, term)) return current; } prev = current; current = current->next; } if (create) { slog (L_WARNING, "can't find `%s', creating new field for it...\n", term); prev->next = g_new0 (slist, 1); current = prev->next; current->first = g_strdup (term); current->second = g_strdup (""); } else current = NULL; return current; } slist* slist_append (slist* head, slist* node) { slist* current = head; slist* prev = NULL; while (current) { prev = current; current = current->next; } prev->next = node; return head; } slist* slist_remove (slist* head, slist* node) { slist* current = head; slist* prev = NULL; while (current) { if (current == node) break; prev = current; current = current->next; } if (current) { if (current == head) head = head->next; else prev->next = current->next; } return head; } gummi-0.6.5/src/gui/0000755000175000017500000000000012040524317011212 500000000000000gummi-0.6.5/src/gui/gui-project.c0000644000175000017500000001576212040524267013545 00000000000000/** * @file gui-project.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-project.h" #include #include #include "environment.h" #include "gui-main.h" #include "gui-tabmanager.h" #include "project.h" extern GummiGui* gui; extern Gummi* gummi; GuProjectGui* projectgui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuProjectGui* p = g_new0 (GuProjectGui, 1); p->proj_name = GTK_LABEL (gtk_builder_get_object (builder, "proj_name")); p->proj_path = GTK_LABEL (gtk_builder_get_object (builder, "proj_path")); p->proj_nroffiles = GTK_LABEL (gtk_builder_get_object (builder, "proj_nroffiles")); p->proj_addbutton = GTK_BUTTON (gtk_builder_get_object (builder, "proj_addbutton")); p->proj_rembutton = GTK_BUTTON (gtk_builder_get_object (builder, "proj_rembutton")); p->list_projfiles = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_projfiles")); p->proj_treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "proj_treeview")); return p; } void projectgui_set_rootfile (gint position) { tabmanagergui_set_current_page (position); tablabel_set_bold_text (g_active_tab->page); } int projectgui_list_projfiles (gchar* active_proj) { gchar* content = NULL; GtkTreeIter iter; GError* err = NULL; GList* files = NULL; gint amount, i; gchar* name; gchar* path; GtkListStore* store = gui->projectgui->list_projfiles; gtk_list_store_clear (store); if (!g_file_get_contents (active_proj, &content, NULL, &err)) { slog (L_ERROR, "%s\n", err->message); return -1; } files = project_list_files (content); amount = g_list_length (files); for (i=0; i < amount; i++) { GdkPixbuf* pic = NULL; gchar* tmp = g_list_nth_data (files, i); name = g_path_get_basename (tmp); path = g_path_get_dirname (tmp); gtk_list_store_append (store, &iter); // 0=ROOT, 1=ERROR if (i == 0) pic = projectgui_get_status_pixbuf (0); if (!g_file_test (tmp, G_FILE_TEST_EXISTS)) { pic = projectgui_get_status_pixbuf (1); } gtk_list_store_set (store, &iter, 0, pic, 1, name, 2, path, 3, tmp, -1); } return amount; } GdkPixbuf* projectgui_get_status_pixbuf (int status) { GtkWidget* iv = GTK_WIDGET (gtk_invisible_new()); switch (status) { case 0: return gtk_widget_render_icon (iv, GTK_STOCK_HOME, GTK_ICON_SIZE_MENU, NULL); case 1: return gtk_widget_render_icon (iv, GTK_STOCK_STOP, GTK_ICON_SIZE_MENU, NULL); default: return NULL; } } void projectgui_enable (GuProject* pr, GuProjectGui* prgui) { const gchar* projbasename = g_path_get_basename (pr->projfile); const gchar* projrootpath = g_path_get_dirname (pr->rootfile); gtk_label_set_text (prgui->proj_name, projbasename); gtk_label_set_text (prgui->proj_path, projrootpath); gtk_label_set_text (prgui->proj_nroffiles, g_strdup_printf("%d", pr->nroffiles)); // for visible information when window is shrinked, see #439 -A gtk_widget_set_tooltip_text (GTK_WIDGET (prgui->proj_name), projbasename); gtk_widget_set_tooltip_text (GTK_WIDGET (prgui->proj_path), projrootpath); gtk_widget_set_sensitive (GTK_WIDGET (prgui->proj_addbutton), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (prgui->proj_rembutton), TRUE); tablabel_set_bold_text (g_active_tab->page); } void projectgui_disable (GuProject* pr, GuProjectGui* prgui) { gtk_list_store_clear (gui->projectgui->list_projfiles); gtk_label_set_text (prgui->proj_name, ""); gtk_label_set_text (prgui->proj_path, ""); gtk_label_set_text (prgui->proj_nroffiles, ""); gtk_widget_set_tooltip_text (GTK_WIDGET (prgui->proj_name), ""); gtk_widget_set_tooltip_text (GTK_WIDGET (prgui->proj_path), ""); gtk_widget_set_sensitive (GTK_WIDGET (prgui->proj_addbutton), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (prgui->proj_rembutton), FALSE); } G_MODULE_EXPORT void on_projfile_add_clicked (GtkWidget* widget, void* user) { gchar* selected = NULL; selected = get_open_filename (TYPE_LATEX); if (selected) { if (project_add_document (gummi->project->projfile, selected)) { int amount = projectgui_list_projfiles (gummi->project->projfile); gtk_label_set_text (gui->projectgui->proj_nroffiles, g_strdup_printf("%d", amount)); gui_open_file (selected); } else { statusbar_set_message ("Error adding document to the project.."); } } g_free (selected); } G_MODULE_EXPORT void on_projfile_rem_clicked (GtkWidget* widget, void* user) { GtkTreeIter iter; gchar* value; GtkTreeModel* model = GTK_TREE_MODEL (gui->projectgui->list_projfiles); GtkTreeSelection* selection = gtk_tree_view_get_selection (gui->projectgui->proj_treeview); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, 3, &value, -1); if (project_remove_document (gummi->project->projfile, value)) { int amount = projectgui_list_projfiles (gummi->project->projfile); gtk_label_set_text (gui->projectgui->proj_nroffiles, g_strdup_printf("%d", amount)); } } } gummi-0.6.5/src/gui/gui-main.c0000644000175000017500000010424312040524267013014 00000000000000/** * @file gui-main.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-main.h" #include #include #include #ifndef WIN32 # include #endif #include #include #include "biblio.h" #include "configfile.h" #include "editor.h" #include "environment.h" #include "importer.h" #include "utils.h" #include "template.h" #include "compile/rubber.h" #include "compile/latexmk.h" #include "compile/texlive.h" extern Gummi* gummi; extern GummiGui* gui; /* Many of the functions in this file are based on the excellent GTK+ * tutorials written by Micah Carrick that can be found on: * http://www.micahcarrick.com/gtk-glade-tutorial-part-3.html */ /* These widgets are (de-)sensitised using the gui_has_tabs_sensitive function * for when we switch from 0 to 1 tabs and vice versa */ const gchar* insens_widgets_str[] = { "rightpanebox", "tool_save", "tool_bold", "tool_italic", "tool_unline", "tool_left", "tool_center", "tool_right", "menu_save", "menu_saveas", "menu_exportpdf", "import_tabs", "menu_close", "menu_export", "menu_undo", "menu_redo", "menu_cut", "menu_copy", "menu_paste", "menu_delete", "menu_selectall", "menu_preferences", "menu_find", "menu_prev", "menu_next", "menu_pdfcompile", "menu_compileopts", "menu_runmakeindex", "menu_runbibtex", "menu_docstat", "menu_spelling", "menu_snippets", "menu_edit", "menu_document", "menu_search", "menu_cleanup" }; GummiGui* gui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GtkWidget* hpaned; gint i = 0, wx = 0, wy = 0, width = 0, height = 0; GummiGui* g = g_new0 (GummiGui, 1); g->builder = builder; g->mainwindow = GTK_WINDOW (gtk_builder_get_object (builder, "mainwindow")); g->toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "maintoolbar")); g->statusbar = GTK_STATUSBAR (gtk_builder_get_object (builder, "statusbar")); g->rightpane = GTK_VBOX (gtk_builder_get_object (builder, "rightpanebox")); g->previewoff = GTK_TOGGLE_TOOL_BUTTON ( gtk_builder_get_object (builder, "tool_previewoff")); g->errorview = GTK_TEXT_VIEW (gtk_builder_get_object (builder, "errorview")); g->errorbuff = gtk_text_view_get_buffer (GTK_TEXT_VIEW (g->errorview)); g->menu_spelling = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu_spelling")); g->menu_snippets = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu_snippets")); g->menu_toolbar = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu_toolbar")); g->menu_statusbar = GTK_CHECK_MENU_ITEM(gtk_builder_get_object (builder, "menu_statusbar")); g->menu_rightpane = GTK_CHECK_MENU_ITEM(gtk_builder_get_object (builder, "menu_rightpane")); g->statusid = gtk_statusbar_get_context_id (GTK_STATUSBAR (g->statusbar), "Gummi"); g->recent[0] = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_recent1")); g->recent[1] = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_recent2")); g->recent[2] = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_recent3")); g->recent[3] = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_recent4")); g->recent[4] = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_recent5")); g->docstatswindow = GTK_WIDGET (gtk_builder_get_object (builder, "docstatswindow")); g->menu_runbibtex = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_runbibtex")); g->menu_runmakeindex = GTK_MENU_ITEM (gtk_builder_get_object (builder, "menu_runmakeindex")); g->bibcompile = GTK_WIDGET (gtk_builder_get_object (builder, "bibcompile")); g->insens_widget_size = sizeof(insens_widgets_str) / sizeof(gchar*); g->insens_widgets = g_new0(GtkWidget*, g->insens_widget_size); for (i = 0; i < g->insens_widget_size; ++i) g->insens_widgets[i] = GTK_WIDGET(gtk_builder_get_object (builder, insens_widgets_str[i])); g->menugui = menugui_init (builder); g->importgui = importgui_init (builder); g->previewgui = previewgui_init (builder); g->searchgui = searchgui_init (builder); g->prefsgui = prefsgui_init (g->mainwindow); g->snippetsgui = snippetsgui_init (g->mainwindow); g->tabmanagergui = tabmanagergui_init (builder); g->infoscreengui = infoscreengui_init (builder); g->projectgui = projectgui_init (builder); gchar* icon_file = g_build_filename (GUMMI_DATA, "icons", "icon.png", NULL); gtk_window_set_icon_from_file (g->mainwindow, icon_file, NULL); g_free (icon_file); gtk_window_resize (g->mainwindow, atoi (config_get_value ("mainwindow_w")), atoi (config_get_value ("mainwindow_h"))); wx = atoi (config_get_value ("mainwindow_x")); wy = atoi (config_get_value ("mainwindow_y")); if (wx && wy) gtk_window_move (g->mainwindow, wx, wy); else gtk_window_set_position (g->mainwindow, GTK_WIN_POS_CENTER); PangoFontDescription* font_desc = pango_font_description_from_string ("Monospace 8"); gtk_widget_modify_font (GTK_WIDGET (g->errorview), font_desc); pango_font_description_free (font_desc); gtk_window_get_size (g->mainwindow, &width, &height); hpaned= GTK_WIDGET (gtk_builder_get_object (builder, "hpaned")); gtk_paned_set_position (GTK_PANED (hpaned), (width/2)); #ifndef USE_GTKSPELL gtk_widget_set_sensitive (GTK_WIDGET (g->menu_spelling), FALSE); #else if (config_get_value ("spelling")) gtk_check_menu_item_set_active (g->menu_spelling, TRUE); #endif if (config_get_value ("snippets")) { gtk_check_menu_item_set_active (g->menu_snippets, TRUE); gtk_widget_show (GTK_WIDGET (g->menu_snippets)); } if (config_get_value ("toolbar")) { gtk_check_menu_item_set_active (g->menu_toolbar, TRUE); gtk_widget_show (g->toolbar); } else { config_set_value ("toolbar", "False"); gtk_check_menu_item_set_active (g->menu_toolbar, FALSE); gtk_widget_hide (g->toolbar); } if (config_get_value ("statusbar")) { gtk_check_menu_item_set_active (g->menu_statusbar, TRUE); gtk_widget_show (GTK_WIDGET (g->statusbar)); } else { config_set_value ("statusbar", "False"); gtk_check_menu_item_set_active (g->menu_statusbar, FALSE); gtk_widget_hide (GTK_WIDGET (g->statusbar)); } if (config_get_value ("rightpane")) { gtk_check_menu_item_set_active (g->menu_rightpane, TRUE); gtk_widget_show (GTK_WIDGET (g->rightpane)); } else { config_set_value ("compile_status", "False"); gtk_toggle_tool_button_set_active (g->previewoff, FALSE); gtk_widget_hide (GTK_WIDGET (g->rightpane)); } g->menu_autosync = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "menu_autosync")); if (latex_can_synctex() && config_get_value ("synctex")) { gtk_widget_set_sensitive (GTK_WIDGET (g->menu_autosync), TRUE); gboolean async = latex_use_synctex(); gtk_check_menu_item_set_active (g->menu_autosync, (async? TRUE: FALSE)); } if (!config_get_value ("compile_status")) gtk_toggle_tool_button_set_active (g->previewoff, TRUE); g->recent_list[0] = g_strdup (config_get_value ("recent1")); g->recent_list[1] = g_strdup (config_get_value ("recent2")); g->recent_list[2] = g_strdup (config_get_value ("recent3")); g->recent_list[3] = g_strdup (config_get_value ("recent4")); g->recent_list[4] = g_strdup (config_get_value ("recent5")); display_recent_files (g); return g; } G_MODULE_EXPORT gboolean on_w32button_clicked (GtkWidget* widget, void* user) { #ifdef WIN32 gtk_widget_hide (gui->w32window); #endif return TRUE; } #ifdef WIN32 gboolean w32popup_wait_event (void *builder) { const gchar* count = gtk_label_get_text (GTK_LABEL (gui->w32label)); gint number = atoi (count) - 1; if (number == 0) { gtk_label_set_text (GTK_LABEL (gui->w32label), ""); gtk_widget_set_sensitive (gui->w32button, TRUE); return FALSE; } gtk_label_set_text (GTK_LABEL (gui->w32label), g_strdup_printf("%d", number)); return TRUE; } #endif void gui_main (GtkBuilder* builder) { gtk_builder_connect_signals (builder, NULL); gtk_widget_show_all (GTK_WIDGET (gui->mainwindow)); #ifdef WIN32 gui->w32window = GTK_WIDGET (gtk_builder_get_object (builder, "w32popup")); gui->w32button = GTK_WIDGET (gtk_builder_get_object (builder, "w32button")); gui->w32label = GTK_WIDGET (gtk_builder_get_object (builder, "w32label")); gtk_widget_show (gui->w32window); g_timeout_add_seconds (1, w32popup_wait_event, NULL); #endif gdk_threads_enter(); gtk_main (); gdk_threads_leave(); } G_MODULE_EXPORT void on_menu_autosync_toggled (GtkCheckMenuItem *menu_autosync, void* user) { if (gtk_check_menu_item_get_active(menu_autosync)) { config_set_value("autosync", "True"); } else { config_set_value("autosync", "False"); } } G_MODULE_EXPORT void on_tab_notebook_switch_page(GtkNotebook *notebook, GtkWidget *nbpage, int pagenr, void *data) { slog (L_DEBUG, "Switched to environment at page %d\n", pagenr); /* Kill typesetter command */ motion_kill_typesetter(gummi->motion); /* set the active tab/editor pointers */ tabmanager_set_active_tab (pagenr); /* update the title of the mainwindow */ gui_set_filename_display (g_active_tab, TRUE, FALSE); /* clear the build log output window */ gui_buildlog_set_text (""); previewgui_reset (gui->previewgui); } G_MODULE_EXPORT void on_right_notebook_switch_page(GtkNotebook *notebook, GtkWidget *nbpage, int page, void *data) { if (page == 2) { if (gummi_project_active ()) { //projectgui_enable (gummi->project, gui->projectgui); } else { //projectgui_disable (gummi->project, gui->projectgui); } } } void gui_set_filename_display (GuTabContext* tc, gboolean title, gboolean label) { gchar* filetext = tabmanager_get_tabname (tc); if (label) tabmanagergui_update_label (tc->page, filetext); if (title) gui_set_window_title (tc->editor->filename, filetext); } void gui_set_window_title (const gchar* filename, const gchar* text) { gchar* dirname; gchar* title; if (filename != NULL) { dirname = g_strdup_printf("(%s)", g_path_get_dirname (filename)); title = g_strdup_printf ("%s %s - %s", text, dirname, PACKAGE_NAME); } else { title = g_strdup_printf ("%s - %s", text, PACKAGE_NAME); } gtk_window_set_title (gui->mainwindow, title); g_free (title); } void on_recovery_infobar_response (GtkInfoBar* bar, gint res, gpointer filename) { gchar* prev_workfile = iofunctions_get_swapfile (filename); if (res == GTK_RESPONSE_YES) { tabmanager_set_content (A_LOAD_OPT, filename, prev_workfile); } else { // NO tabmanager_set_content (A_LOAD, filename, NULL); } gui_recovery_mode_disable (bar); } void gui_recovery_mode_enable (GuTabContext* tab, const gchar* filename) { gchar* prev_workfile = iofunctions_get_swapfile (filename); slog (L_WARNING, "Swap file `%s' found.\n", prev_workfile); gchar* msg = g_strdup_printf (_("Swap file exists for %s, " "do you want to recover from it?"), filename); gtk_label_set_text (GTK_LABEL (tab->page->barlabel), msg); g_free (msg); gchar* data = g_strconcat (filename, NULL); tab->page->infosignal = g_signal_connect (g_active_tab->page->infobar, "response", G_CALLBACK (on_recovery_infobar_response), (gpointer)data); gtk_widget_set_sensitive (GTK_WIDGET (tab->editor->view), FALSE); gtk_widget_show (tab->page->infobar); } void gui_recovery_mode_disable (GtkInfoBar *infobar) { gint id = g_active_tab->page->infosignal; g_signal_handler_disconnect (infobar, id); gtk_widget_hide (GTK_WIDGET(infobar)); gtk_widget_set_sensitive (GTK_WIDGET (g_active_editor->view), TRUE); } void gui_open_file (const gchar* filename) { if (!g_file_test(filename, G_FILE_TEST_EXISTS)) { slog(L_G_ERROR, "Failed to open file '%s': No such file or " "directory\n", filename); return; } tabmanager_create_tab (A_LOAD, filename, NULL); if (!gtk_widget_get_sensitive (GTK_WIDGET (gui->rightpane))) { gui_set_hastabs_sensitive (TRUE); } } void gui_save_file (GuTabContext* tab, gboolean saveas) { gboolean new = FALSE; gchar* filename = NULL; gchar* pdfname = NULL; gchar* prev = NULL; gint ret = 0; if (saveas || !(filename = tab->editor->filename)) { if ((filename = get_save_filename (TYPE_LATEX))) { new = TRUE; if (!STR_EQU (filename + strlen (filename) -4, ".tex")) { prev = filename; filename = g_strdup_printf ("%s.tex", filename); g_free (prev); } if (utils_path_exists (filename)) { ret = utils_yes_no_dialog ( _("The file already exists. Overwrite?")); if (GTK_RESPONSE_YES != ret) goto cleanup; } } else goto cleanup; } gchar *text; GtkWidget* focus = NULL; focus = gtk_window_get_focus (gummi_get_gui ()->mainwindow); text = editor_grab_buffer (tab->editor); gtk_widget_grab_focus (focus); iofunctions_save_file (gummi->io, filename, text); if (config_get_value ("autoexport")) { pdfname = g_strdup (filename); pdfname[strlen (pdfname) -4] = 0; latex_export_pdffile (gummi->latex, tab->editor, pdfname, FALSE); } if (new) tabmanager_update_tab (filename); gui_set_filename_display (tab, TRUE, TRUE); gtk_widget_grab_focus (GTK_WIDGET (tab->editor->view)); cleanup: if (new) g_free (filename); g_free (pdfname); } void gui_set_hastabs_sensitive (gboolean enable) { gint i = 0; for (i = 0; i < gui->insens_widget_size; ++i) gtk_widget_set_sensitive (gui->insens_widgets[i], enable); } G_MODULE_EXPORT void on_menu_bibupdate_activate (GtkWidget *widget, void * user) { biblio_compile_bibliography (gummi->biblio, g_active_editor, gummi->latex); } G_MODULE_EXPORT gboolean on_docstats_close_clicked (GtkWidget* widget, void* user) { gtk_widget_hide (GTK_WIDGET (gui->docstatswindow)); return TRUE; } G_MODULE_EXPORT void on_tool_previewoff_toggled (GtkWidget *widget, void * user) { gboolean value = gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (widget)); config_set_value ("compile_status", (!value)? "True": "False"); if (value) previewgui_stop_preview (gui->previewgui); else previewgui_start_preview (gui->previewgui); } G_MODULE_EXPORT void on_tool_textstyle_bold_activate (GtkWidget* widget, void* user) { editor_set_selection_textstyle (g_active_editor, "tool_bold"); } G_MODULE_EXPORT void on_tool_textstyle_italic_activate (GtkWidget* widget, void* user) { editor_set_selection_textstyle (g_active_editor, "tool_italic"); } G_MODULE_EXPORT void on_tool_textstyle_underline_activate (GtkWidget* widget, void* user) { editor_set_selection_textstyle (g_active_editor, "tool_unline"); } G_MODULE_EXPORT void on_tool_textstyle_left_activate (GtkWidget* widget, void* user) { editor_set_selection_textstyle (g_active_editor, "tool_left"); } G_MODULE_EXPORT void on_tool_textstyle_center_activate (GtkWidget* widget, void* user) { editor_set_selection_textstyle (g_active_editor, "tool_center"); } G_MODULE_EXPORT void on_tool_textstyle_right_activate (GtkWidget* widget, void* user) { editor_set_selection_textstyle (g_active_editor, "tool_right"); } G_MODULE_EXPORT void on_button_template_add_clicked (GtkWidget* widget, void* user) { template_add_new_entry (gummi->templ); } G_MODULE_EXPORT void on_button_template_remove_clicked (GtkWidget* widget, void* user) { template_remove_entry (gummi->templ); } G_MODULE_EXPORT void on_button_template_open_clicked (GtkWidget* widget, void* user) { gchar* status = NULL; gchar* templ_name = template_get_selected_path (gummi->templ); if (templ_name) { /* add Loading message to status bar */ status = g_strdup_printf (_("Loading template ...")); statusbar_set_message (status); g_free (status); tabmanager_create_tab (A_LOAD_OPT, NULL, templ_name); gtk_widget_hide (GTK_WIDGET (gummi->templ->templatewindow)); } g_free(templ_name); if (!gtk_widget_get_sensitive (GTK_WIDGET (gui->rightpane))) gui_set_hastabs_sensitive (TRUE); } G_MODULE_EXPORT void on_button_template_close_clicked (GtkWidget* widget, void* user) { gtk_widget_set_sensitive (GTK_WIDGET (gummi->templ->template_add), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (gummi->templ->template_remove), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (gummi->templ->template_open), TRUE); gtk_widget_hide (GTK_WIDGET (gummi->templ->templatewindow)); } G_MODULE_EXPORT void on_template_rowitem_edited (GtkWidget* widget, gchar *path, gchar* filenm, void* user) { GtkTreeIter iter; GtkTreeModel* model = NULL; GtkTreeSelection* selection = NULL; gchar* text = NULL; gchar* filepath = g_build_filename (g_get_user_config_dir (), "gummi", "templates", filenm, NULL); model = gtk_tree_view_get_model (gummi->templ->templateview); selection = gtk_tree_view_get_selection (gummi->templ->templateview); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_list_store_set (gummi->templ->list_templates, &iter, 0, filenm, 1, filepath, -1); text = editor_grab_buffer (g_active_editor); template_create_file (gummi->templ, filenm, text); } g_free (text); g_free (filepath); } G_MODULE_EXPORT void on_template_cursor_changed (GtkTreeView *tree, gpointer data) { if (!gtk_tree_view_get_selection (tree) == 0) { gtk_widget_set_sensitive (gummi->templ->template_open, TRUE); } } G_MODULE_EXPORT void on_bibcolumn_clicked (GtkWidget* widget, void* user) { gint id = gtk_tree_view_column_get_sort_column_id (GTK_TREE_VIEW_COLUMN (widget)); gtk_tree_view_column_set_sort_column_id (GTK_TREE_VIEW_COLUMN (widget), id); } G_MODULE_EXPORT void on_button_biblio_compile_clicked (GtkWidget* widget, void* user) { gummi->biblio->progressval = 0.0; gtk_widget_set_sensitive (widget, FALSE); g_timeout_add (10, on_bibprogressbar_update, NULL); if (biblio_compile_bibliography (gummi->biblio, g_active_editor, gummi->latex)) { statusbar_set_message (_("Compiling bibliography file...")); gtk_progress_bar_set_text (gummi->biblio->progressbar, _("Bibliography compiled without errors")); motion_force_compile (gummi->motion); } else { statusbar_set_message (_("Error compiling bibliography file or none detected...")); gtk_progress_bar_set_text (gummi->biblio->progressbar, _("Error compiling bibliography file")); } } G_MODULE_EXPORT void on_button_biblio_detect_clicked (GtkWidget* widget, void* user) { gchar* text = 0; gchar* str = 0; gchar* basename = 0; GError* err = NULL; gint number = 0; gummi->biblio->progressval = 0.0; g_timeout_add (2, on_bibprogressbar_update, NULL); gtk_list_store_clear (gummi->biblio->list_biblios); if (biblio_detect_bibliography (gummi->biblio, g_active_editor)) { editor_insert_bib (g_active_editor, g_active_editor->bibfile); if (!g_file_get_contents(g_active_editor->bibfile, &text, NULL, &err)) { slog (L_G_ERROR, "g_file_get_contents (): %s\n", err->message); g_error_free (err); return; } gtk_widget_set_sensitive (GTK_WIDGET(gummi->biblio->list_filter), TRUE); number = biblio_parse_entries (gummi->biblio, text); basename = g_path_get_basename (g_active_editor->bibfile); gtk_label_set_text (gummi->biblio->filenm_label, basename); str = g_strdup_printf ("%d", number); gtk_label_set_text (gummi->biblio->refnr_label, str); g_free (str); str = g_strdup_printf (_("%s loaded"), basename); gtk_progress_bar_set_text (gummi->biblio->progressbar, str); g_free (basename); g_free (str); } else { gtk_widget_set_sensitive (GTK_WIDGET(gummi->biblio->list_filter), FALSE); gtk_progress_bar_set_text (gummi->biblio->progressbar, _("no bibliography file detected")); gtk_label_set_text (gummi->biblio->filenm_label, _("none")); gtk_label_set_text (gummi->biblio->refnr_label, _("N/A")); } } G_MODULE_EXPORT void on_bibreference_clicked (GtkTreeView* view, GtkTreePath* Path, GtkTreeViewColumn* column, void* user) { GtkTreeIter iter; gchar* value; gchar* out; GtkTreeModel* model = GTK_TREE_MODEL (gummi->biblio->list_biblios); GtkTreeSelection* selection = gtk_tree_view_get_selection (view); gtk_tree_selection_get_selected (selection, &model, &iter); gtk_tree_model_get (model, &iter, 0, &value, -1); out = g_strdup_printf ("\\cite{%s}", value); gtk_text_buffer_insert_at_cursor (g_e_buffer, out, strlen (out)); g_free (out); } static gboolean visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gboolean row_visible = FALSE; gchar* title; gchar* author; gchar* year; /* make all entries visible again when filter buffer is empty */ if (strlen(data) == 0) return TRUE; gtk_tree_model_get (model, iter, 1, &title, 2, &author, 3, &year, -1); if (utils_subinstr (data, title , TRUE)) row_visible = TRUE; if (utils_subinstr (data, author , TRUE)) row_visible = TRUE; if (utils_subinstr (data, year , TRUE)) row_visible = TRUE; g_free(title); g_free(author); g_free(year); return row_visible; } G_MODULE_EXPORT void on_biblio_filter_changed (GtkWidget* widget, void* user) { GtkTreeModel *filter; const gchar *entry = gtk_entry_get_text(GTK_ENTRY(widget)); filter = gtk_tree_model_filter_new ( GTK_TREE_MODEL(gummi->biblio->list_biblios),NULL); gtk_tree_model_filter_set_visible_func( GTK_TREE_MODEL_FILTER(filter), visible_func, (gpointer)entry, NULL); gtk_tree_view_set_model ( GTK_TREE_VIEW( gummi->biblio->biblio_treeview ),filter); g_object_unref (G_OBJECT(filter)); } void typesetter_setup (void) { // change the pref gui options on changing typesetter: gboolean status = texlive_active(); gtk_widget_set_sensitive (GTK_WIDGET (gui->menu_runbibtex), status); gtk_widget_set_sensitive (GTK_WIDGET (gui->menu_runmakeindex), status); gtk_widget_set_sensitive (GTK_WIDGET (gui->prefsgui->opt_shellescape), status); gboolean texormk = (texlive_active() || latexmk_active()); if (config_get_value("synctex") && texormk) { gtk_toggle_button_set_active (gui->prefsgui->opt_synctex, TRUE); } else { gtk_toggle_button_set_active (gui->prefsgui->opt_synctex, FALSE); } gtk_widget_set_sensitive (GTK_WIDGET (gui->prefsgui->opt_synctex), texormk); slog (L_INFO, "Typesetter %s configured.\n",config_get_value("typesetter")); } gboolean on_bibprogressbar_update (void* user) { gtk_adjustment_set_value (gummi->biblio->progressmon, gummi->biblio->progressval); gummi->biblio->progressval += 1.0; if (gummi->biblio->progressval > 60) { gtk_widget_set_sensitive (gui->bibcompile, TRUE); return FALSE; } return TRUE; } gint check_for_save (GuEditor* editor) { GtkWidget* dialog; gint ret = 0; if (editor && editor_buffer_changed (editor)){ dialog = gtk_message_dialog_new (gui->mainwindow, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _("Do you want to save the changes to %s?"), editor->filename != NULL ? g_path_get_basename (editor->filename) : _("this document")); gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_DISCARD, GTK_RESPONSE_NO, GTK_STOCK_SAVE, GTK_RESPONSE_YES, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); gtk_window_set_title (GTK_WINDOW (dialog), _("Unsaved Changes")); ret = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } return ret; } gchar* get_open_filename (GuFilterType type) { GtkFileChooser* chooser = NULL; gchar* active_cwd = NULL; gchar* filename = NULL; /* check if both active_editor and filename are defined. when zero tabs * are open, the g_active_editor object is destroyed causing a segfault * on the (filename != null) check. */ if (g_active_editor != NULL && g_active_editor->filename != NULL) { active_cwd = g_path_get_dirname(g_active_editor->filename); } const gchar* chooser_title[] = { _("Open LaTeX document"), "shouldn't happen", "shouldn't happen", _("Select an image to insert"), _("Select bibliography file") }; chooser = GTK_FILE_CHOOSER (gtk_file_chooser_dialog_new ( chooser_title[type], gui->mainwindow, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL)); file_dialog_set_filter (chooser, type); if (active_cwd) gtk_file_chooser_set_current_folder (chooser, active_cwd); else gtk_file_chooser_set_current_folder (chooser, g_get_home_dir ()); if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK) filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); if (filename) { g_free (active_cwd); } gtk_widget_destroy (GTK_WIDGET (chooser)); return filename; } gchar* get_save_filename (GuFilterType type) { GtkFileChooser* chooser = NULL; gchar* filename = NULL; const gchar* chooser_title[] = { _("Save LaTeX document"), _("Save as LaTeX document"), _("Export to PDF"), "shouldn't happen", "shouldn't happen", _("Create project") }; chooser = GTK_FILE_CHOOSER (gtk_file_chooser_dialog_new ( chooser_title[type], gui->mainwindow, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_OK, NULL)); file_dialog_set_filter (chooser, type); gtk_file_chooser_set_current_folder (chooser, g_get_home_dir ()); if (g_active_editor->filename) { gchar* dirname = g_path_get_dirname (g_active_editor->filename); gchar* basename = g_path_get_basename (g_active_editor->filename); gtk_file_chooser_set_current_folder (chooser, dirname); if (TYPE_PDF == type) { basename[strlen (basename) -4] = 0; gchar* path = g_strdup_printf ("%s.pdf", basename); gtk_file_chooser_set_current_name (chooser, path); g_free (path); } else if (TYPE_LATEX_SAVEAS == type) gtk_file_chooser_set_current_name (chooser, basename); g_free (dirname); g_free (basename); } if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK) filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); gtk_widget_destroy (GTK_WIDGET (chooser)); return filename; } void file_dialog_set_filter (GtkFileChooser* dialog, GuFilterType type) { GtkFileFilter* filter = gtk_file_filter_new (); switch (type) { case TYPE_LATEX: case TYPE_LATEX_SAVEAS: gtk_file_filter_set_name (filter, _("LaTeX files")); gtk_file_filter_add_pattern (filter, "*.tex"); gtk_file_chooser_add_filter (dialog, filter); gtk_file_chooser_set_filter (dialog, filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Text files")); gtk_file_filter_add_mime_type (filter, "text/plain"); gtk_file_chooser_add_filter (dialog, filter); break; case TYPE_PDF: gtk_file_filter_set_name (filter, _(("PDF files"))); gtk_file_filter_add_pattern (filter, "*.pdf"); gtk_file_chooser_add_filter (dialog, filter); gtk_file_chooser_set_filter (dialog, filter); break; case TYPE_IMAGE: /* Only \insertgraphics uses this section now. Make sure * the patterns & mimes are correct before assigning it * for other functions */ gtk_file_filter_set_name (filter, _("Supported Image files")); /* Pdflatex supports different formats than pure latex */ if (latex_method_active ("texpdf")) { gtk_file_filter_add_pattern (filter, "*.jpg"); gtk_file_filter_add_pattern (filter, "*.jpeg"); gtk_file_filter_add_pattern (filter, "*.png"); gtk_file_filter_add_pattern (filter, "*.pdf"); } gtk_file_filter_add_pattern (filter, "*.eps"); gtk_file_chooser_add_filter (dialog, filter); gtk_file_chooser_set_filter (dialog, filter); break; case TYPE_BIBLIO: gtk_file_filter_set_name (filter, _("Bibtex files")); gtk_file_filter_add_pattern (filter, "*.bib"); gtk_file_chooser_add_filter (dialog, filter); gtk_file_chooser_set_filter (dialog, filter); break; case TYPE_PROJECT: gtk_file_filter_set_name (filter, _("Gummi project files")); gtk_file_filter_add_pattern (filter, "*.gummi"); gtk_file_chooser_add_filter (dialog, filter); gtk_file_chooser_set_filter (dialog, filter); break; } } void add_to_recent_list (const gchar* filename) { if (!filename) return; gint i = 0; /* check if it already exists */ for (i = 0; i < 5; ++i) if (STR_EQU (filename, gui->recent_list[i])) return; /* add to recent list */ g_free (gui->recent_list[RECENT_FILES_NUM -1]); for (i = RECENT_FILES_NUM -2; i >= 0; --i) gui->recent_list[i + 1] = gui->recent_list[i]; gui->recent_list[0] = g_strdup (filename); display_recent_files (gui); } void display_recent_files (GummiGui* gui) { gchar* tstr = 0; gchar* basename = 0; gint i = 0, count = 0; for (i = 0; i < 5; ++i) gtk_widget_hide (GTK_WIDGET (gui->recent[i])); for (i = 0; i < RECENT_FILES_NUM; ++i) { if (!STR_EQU (gui->recent_list[i], "__NULL__")) { basename = g_path_get_basename (gui->recent_list[i]); tstr = g_strdup_printf ("%d. %s", count + 1, basename); gtk_menu_item_set_label (gui->recent[i], tstr); gtk_widget_set_tooltip_text (GTK_WIDGET (gui->recent[i]), gui->recent_list[i]); gtk_widget_show (GTK_WIDGET (gui->recent[i])); g_free (tstr); g_free (basename); ++count; } } /* update recent files */ for (i = 0; i < RECENT_FILES_NUM; ++i) { tstr = g_strdup_printf ("recent%d", i + 1); config_set_value (tstr, gui->recent_list[i]); g_free (tstr); } } void gui_buildlog_set_text (const gchar *message) { if (message) { GtkTextIter iter; gtk_text_buffer_set_text (gui->errorbuff, message, -1); gtk_text_buffer_get_end_iter (gui->errorbuff, &iter); // The following lines are commented out, as they seem to cause // Bug #252. //GtkTextMark *mark = gtk_text_buffer_create_mark(gui->errorbuff, NULL, &iter, FALSE); //gtk_text_view_scroll_to_mark (gui->errorview, mark, 0.25, FALSE, 0, 0); //gtk_text_view_scroll_to_iter (gui->errorview, &iter, 0.25, FALSE, 0, 0); } } void statusbar_set_message (const gchar *message) { gtk_statusbar_push (GTK_STATUSBAR (gui->statusbar), gui->statusid, message); g_timeout_add_seconds (4, statusbar_del_message, NULL); } gboolean statusbar_del_message (void* user) { gtk_statusbar_pop (GTK_STATUSBAR (gui->statusbar), gui->statusid); return FALSE; } /** * @brief "changed" signal callback for editor->buffer * Automatically check whether to start timer if buffer changed. * Also set_modified for buffer */ void check_preview_timer (void) { g_return_if_fail (g_active_tab != NULL); gtk_text_buffer_set_modified (g_e_buffer, TRUE); gummi->latex->modified_since_compile = TRUE; gui_set_filename_display (g_active_tab, TRUE, TRUE); motion_start_timer (gummi->motion); } gummi-0.6.5/src/gui/gui-menu.c0000644000175000017500000006247212040524267013043 00000000000000/** * @file gui-menu.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-menu.h" #include "configfile.h" #include "constants.h" #include "editor.h" #include "environment.h" #include "external.h" #include "gui-main.h" #include "motion.h" #include "project.h" #include "update.h" extern Gummi* gummi; extern GummiGui* gui; /* TODO: split the gui struct up into smaller pieces and try to remove all * non-gui functions and the "extern gummi" from this file */ GuMenuGui* menugui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuMenuGui* m = g_new0 (GuMenuGui, 1); m->menu_projcreate = GTK_MENU_ITEM( gtk_builder_get_object (builder, "menu_projcreate")); m->menu_projopen = GTK_MENU_ITEM( gtk_builder_get_object (builder, "menu_projopen")); m->menu_projclose = GTK_MENU_ITEM( gtk_builder_get_object (builder, "menu_projclose")); #ifdef WIN32 // Please do NOT enable for nix, it has no place on a free OS ;) GtkWidget* donate = gtk_image_menu_item_new_with_label ("Support this Project"); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(donate), GTK_WIDGET(gtk_image_new_from_stock( GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_MENU))); GtkWidget* helpmenu = GTK_WIDGET (gtk_builder_get_object (builder, "menu11")); gtk_menu_prepend (GTK_MENU (helpmenu), donate); gtk_signal_connect_object (GTK_OBJECT (donate), "activate", GTK_SIGNAL_FUNC (on_menu_donate_activate), NULL); #endif /* TODO: There has to be a better way than this.. (bug 246) GtkSettings *settings = gtk_settings_get_default(); gchar *iconsizes; g_object_get(settings, "gtk-icon-sizes", &iconsizes, NULL); if (iconsizes != NULL) { printf("%s\n", iconsizes); }*/ #ifdef WIN32 // The 2 non-stock menu items have their pixel size values set // to the default 16x16 in GLADE. The normal icon-size value is // normally set by the GTK theme in gtkrc. For themes using // non-default icon sizes or Windows, this 16x16 value will be // wrong. This code sets it to match the gtkrc file that we // supply with the Windows builds: GtkWidget* export = gtk_image_menu_item_get_image ( GTK_IMAGE_MENU_ITEM (gtk_builder_get_object (builder, "menu_export"))); GtkWidget* update = gtk_image_menu_item_get_image ( GTK_IMAGE_MENU_ITEM (gtk_builder_get_object (builder, "menu_update"))); gtk_image_set_pixel_size (GTK_IMAGE(export), 13); gtk_image_set_pixel_size (GTK_IMAGE(update), 13); #endif return m; } #ifdef WIN32 G_MODULE_EXPORT void on_menu_donate_activate (GtkWidget* widget, void* user) { //TODO: enhance GtkWidget* dialog; dialog = gtk_message_dialog_new (gui->mainwindow, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Gummi is released as free open-source software under the MIT " "license. Development is carried out and continued as a spare " "time activity. \nIf you are interested in supporting this " "project with a donation, please visit our official website. " "Thank you!"); gtk_window_set_title (GTK_WINDOW (dialog), "Support this project"); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } #endif /******************************************************************************* * FILE MENU * ******************************************************************************/ G_MODULE_EXPORT void on_menu_new_activate (GtkWidget *widget, void* user) { if (!gtk_widget_get_sensitive (GTK_WIDGET (gui->rightpane))) gui_set_hastabs_sensitive (TRUE); tabmanager_create_tab (A_NONE, NULL, NULL); } G_MODULE_EXPORT void on_menu_template_activate (GtkWidget *widget, void *user) { gtk_list_store_clear (gummi->templ->list_templates); template_setup (gummi->templ); gtk_widget_show_all (GTK_WIDGET (gummi->templ->templatewindow)); } G_MODULE_EXPORT void on_menu_open_activate (GtkWidget *widget, void* user) { gchar *filename = NULL; if ( (filename = get_open_filename (TYPE_LATEX))) gui_open_file (filename); g_free (filename); if (g_active_editor) gtk_widget_grab_focus (GTK_WIDGET (g_active_editor->view)); } G_MODULE_EXPORT void on_menu_save_activate (GtkWidget *widget, void* user) { gui_save_file (g_active_tab, FALSE); } G_MODULE_EXPORT void on_menu_saveas_activate (GtkWidget *widget, void* user) { gui_save_file (g_active_tab, TRUE); } G_MODULE_EXPORT void on_menu_export_activate (GtkWidget *widget, void *user) { gchar* filename = NULL; filename = get_save_filename (TYPE_PDF); if (filename) latex_export_pdffile (gummi->latex, g_active_editor, filename, TRUE); g_free (filename); } G_MODULE_EXPORT void on_menu_recent_activate (GtkWidget *widget, void *user) { const gchar* name = gtk_menu_item_get_label (GTK_MENU_ITEM (widget)); gchar* tstr; gint index = name[0] - '0' -1; if (utils_path_exists (gui->recent_list[index])) { gui_open_file (gui->recent_list[index]); } else { tstr = g_strdup_printf (_("Error loading recent file: %s"), gui->recent_list[index]); slog (L_ERROR, "%s\n", tstr); slog (L_G_ERROR, "Could not find the file %s.\n", gui->recent_list[index]); statusbar_set_message (tstr); g_free (tstr); g_free (gui->recent_list[index]); gui->recent_list[index] = NULL; while (index < RECENT_FILES_NUM -1) { gui->recent_list[index] = gui->recent_list[index+1]; ++index; } gui->recent_list[RECENT_FILES_NUM -1] = g_strdup ("__NULL__"); } display_recent_files (gui); } G_MODULE_EXPORT void on_menu_close_activate (GtkWidget *widget, void* user) { GuTabContext* tab = NULL; tab = (user)? GU_TAB_CONTEXT (user): g_active_tab; gint ret = check_for_save (tab->editor); if (GTK_RESPONSE_YES == ret) gui_save_file (tab, FALSE); else if (GTK_RESPONSE_CANCEL == ret || GTK_RESPONSE_DELETE_EVENT == ret) return; /* Kill typesetter command */ motion_kill_typesetter(gummi->motion); if (!tabmanager_remove_tab (tab)) { motion_start_errormode (gummi->motion, ""); gui_set_hastabs_sensitive (FALSE); } else { gui_set_filename_display (g_active_tab, TRUE, FALSE); } } G_MODULE_EXPORT gboolean on_menu_quit_activate (void) { gint wx = 0, wy = 0, width = 0, height = 0; gchar buf[16]; int i = 0; gint length = g_list_length (gummi->tabmanager->tabs); motion_pause_compile_thread (gummi->motion); for(i = 0; i < length; i++){ gtk_notebook_set_current_page(gui->tabmanagergui->notebook, i); tabmanager_set_active_tab (i); gint ret = check_for_save (g_active_editor); if (GTK_RESPONSE_YES == ret) gui_save_file (g_active_tab, FALSE); else if (GTK_RESPONSE_CANCEL == ret || GTK_RESPONSE_DELETE_EVENT == ret) return TRUE; } /* Stop compile thread */ if (length > 0) motion_stop_compile_thread (gummi->motion); gtk_window_get_size (gui->mainwindow, &width, &height); gtk_window_get_position (gui->mainwindow, &wx, &wy); config_begin(); config_set_value ("mainwindow_x", g_ascii_dtostr (buf, 16, (double)wx)); config_set_value ("mainwindow_y", g_ascii_dtostr (buf, 16, (double)wy)); config_set_value ("mainwindow_w", g_ascii_dtostr (buf, 16, (double)width)); config_set_value ("mainwindow_h", g_ascii_dtostr (buf, 16, (double)height)); config_commit(); gtk_main_quit (); for(i = 0; i < length; i++) editor_destroy (GU_TAB_CONTEXT (g_list_nth_data (gummi->tabmanager->tabs, i))->editor); printf (" ___ \n" " {o,o} Thanks for using Gummi!\n" " |)__) I welcome your feedback at:\n" " -\"-\"- http://gummi.midnightcoding.org\n\n"); return FALSE; } /******************************************************************************* * EDIT MENU * ******************************************************************************/ G_MODULE_EXPORT void on_menu_undo_activate (GtkWidget *widget, void* user) { editor_undo_change (g_active_editor); } G_MODULE_EXPORT void on_menu_redo_activate (GtkWidget *widget, void* user) { editor_redo_change (g_active_editor); } G_MODULE_EXPORT void on_menu_cut_activate (GtkWidget *widget, void* user) { GtkClipboard *clipboard; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_text_buffer_cut_clipboard (g_e_buffer, clipboard, TRUE); } G_MODULE_EXPORT void on_menu_copy_activate (GtkWidget *widget, void* user) { GtkClipboard *clipboard; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_text_buffer_copy_clipboard (g_e_buffer, clipboard); } G_MODULE_EXPORT void on_menu_paste_activate (GtkWidget *widget, void* user) { GtkClipboard *clipboard; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_text_buffer_paste_clipboard (g_e_buffer, clipboard, NULL, TRUE); } G_MODULE_EXPORT void on_menu_delete_activate (GtkWidget *widget, void *user) { gtk_text_buffer_delete_selection (g_e_buffer, FALSE, TRUE); } G_MODULE_EXPORT void on_menu_selectall_activate (GtkWidget *widget, void *user) { GtkTextIter start, end; gtk_text_buffer_get_bounds (g_e_buffer, &start, &end); gtk_text_buffer_select_range (g_e_buffer, &start, &end); } G_MODULE_EXPORT void on_menu_preferences_activate (GtkWidget *widget, void *user) { prefsgui_main (gui->prefsgui, 0); } /******************************************************************************* * VIEW MENU * ******************************************************************************/ G_MODULE_EXPORT void on_menu_statusbar_toggled (GtkWidget *widget, void *user) { if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { gtk_widget_show (GTK_WIDGET (gui->statusbar)); config_set_value ("statusbar", "True"); } else { gtk_widget_hide (GTK_WIDGET (gui->statusbar)); config_set_value ("statusbar", "False"); } } G_MODULE_EXPORT void on_menu_toolbar_toggled (GtkWidget *widget, void *user) { if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { gtk_widget_show (gui->toolbar); config_set_value ("toolbar", "True"); } else { gtk_widget_hide (gui->toolbar); config_set_value ("toolbar", "False"); } } G_MODULE_EXPORT void on_menu_rightpane_toggled (GtkWidget *widget, void *user) { if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { gtk_widget_show (GTK_WIDGET (gui->rightpane)); config_set_value ("rightpane", "True"); gtk_toggle_tool_button_set_active (gui->previewoff, FALSE); } else { gtk_widget_hide (GTK_WIDGET (gui->rightpane)); config_set_value ("rightpane", "False"); gtk_toggle_tool_button_set_active (gui->previewoff, TRUE); } } G_MODULE_EXPORT void on_menu_fullscreen_toggled (GtkWidget *widget, void *user) { if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) gtk_window_fullscreen (gui->mainwindow); else gtk_window_unfullscreen (gui->mainwindow); } /******************************************************************************* * SEARCH MENU * ******************************************************************************/ G_MODULE_EXPORT void on_menu_find_activate (GtkWidget *widget, void* user) { searchgui_main (gui->searchgui); } G_MODULE_EXPORT void on_menu_findnext_activate (GtkWidget *widget, void *user) { editor_jumpto_search_result (g_active_editor, 1); } G_MODULE_EXPORT void on_menu_findprev_activate (GtkWidget *widget, void *user) { editor_jumpto_search_result (g_active_editor, -1); } /******************************************************************************* * DOCUMENT MENU * ******************************************************************************/ G_MODULE_EXPORT void on_menu_pdfcompile_activate (GtkWidget *widget, void* user) { gummi->latex->modified_since_compile = TRUE; motion_do_compile (gummi->motion); } G_MODULE_EXPORT void on_menu_compileopts_activate (GtkWidget* widget, void* user) { prefsgui_main(gui->prefsgui, 4); } G_MODULE_EXPORT void on_menu_cleanup_activate (GtkWidget *widget, void *user) { int result = latex_remove_auxfile (g_active_editor); if (result == 0) { statusbar_set_message (_("Succesfully removed build files..")); } else { statusbar_set_message (_("Error removing build files..")); } } G_MODULE_EXPORT void on_menu_runmakeindex_activate (GtkWidget *widget, void *user) { if (latex_run_makeindex (g_active_editor)) { statusbar_set_message (_("Running Makeindex..")); } else { statusbar_set_message (_("Error running Makeindex..")); } motion_force_compile (gummi->motion); } G_MODULE_EXPORT void on_menu_runbibtex_activate (GtkWidget *widget, void *user) { on_button_biblio_compile_clicked (widget, user); } G_MODULE_EXPORT void on_menu_docstat_activate (GtkWidget *widget, void *user) { gint i = 0; gchar* output = 0; gchar* cmd = 0; gchar** matched = NULL; GError* err = NULL; GMatchInfo* match_info; GRegex* regexs[TEXCOUNT_OUTPUT_LINES]; gchar* res[TEXCOUNT_OUTPUT_LINES] = { 0 }; /* TODO: can we deprecate this? */ const gchar* terms[] = { _("Words in text"), _("Words in headers"), _("Words in float captions"), _("Number of headers"), _("Number of floats"), _("Number of math inlines"), _("Number of math displayed") }; const gchar* terms_regex[] = { "Words in text: ([0-9]*)", "Words in headers: ([0-9]*)", "Words in float captions: ([0-9]*)", "Number of headers: ([0-9]*)", "Number of floats: ([0-9]*)", "Number of math inlines: ([0-9]*)", "Number of math displayed: ([0-9]*)" }; /* TODO: move to non gui class (latex perhaps) */ if (external_exists ("texcount")) { /* Copy workfile to /tmp to remove any spaces in filename to avoid * segfaults */ gchar* tmpfile = g_strdup_printf ("%s.state", g_active_editor->fdname); if (!utils_copy_file (g_active_editor->workfile, tmpfile, &err)) { slog (L_G_ERROR, "utils_copy_file (): %s\n", err->message); g_free (tmpfile); g_error_free (err); goto cleanup; } cmd = g_strdup_printf ("texcount '%s'", tmpfile); Tuple2 result = utils_popen_r (cmd, NULL); for (i = 0; i < TEXCOUNT_OUTPUT_LINES; ++i) if (! (regexs[i] = g_regex_new (terms_regex[i], 0, 0, &err))) { slog (L_G_ERROR, "utils_copy_file (): %s\n", err->message); g_free (tmpfile); g_error_free (err); goto cleanup; } for (i = 0; i < TEXCOUNT_OUTPUT_LINES; ++i) { if (g_regex_match (regexs[i], result.second, 0, &match_info)) { matched = g_match_info_fetch_all (match_info); if (NULL == matched[1]) { slog (L_WARNING, "can't extract info: %s\n", terms[i]); res[i] = g_strdup ("N/A"); } else { res[i] = g_strdup (matched[1]); } g_strfreev (matched); g_match_info_free (match_info); } } g_free (result.second); g_free (tmpfile); } else { cmd = NULL; slog (L_G_ERROR, "The 'texcount' utility could not be found.\n"); return; } gchararray items[6] = {"stats_words", "stats_head", "stats_float", "stats_nrhead", "stats_nrfloat", "stats_nrmath"}; int j = 0; GtkLabel *tmp; for (j = 0; j < 6; j++) { gchar *value = items[j]; tmp = GTK_LABEL(gtk_builder_get_object (gui->builder, value)); gtk_label_set_text (tmp, res[j]); } gtk_label_set_text (GTK_LABEL (gtk_builder_get_object (gui->builder, "stats_filename")), tabmanagergui_get_labeltext (g_active_tab->page)); gtk_widget_show (gui->docstatswindow); return; cleanup: for (i = 0; i < TEXCOUNT_OUTPUT_LINES; ++i) { g_regex_unref (regexs[i]); g_free (res[i]); } g_free (cmd); g_free (output); } G_MODULE_EXPORT void on_menu_spelling_toggled (GtkWidget *widget, void *user) { #ifdef USE_GTKSPELL GList *editors; GuEditor* ec; int ectotal, i; gboolean activate = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); editors = gummi_get_all_editors (); ectotal = g_list_length (editors); for (i=0; imenugui->menu_projcreate), _("This function requires an active document")); return; } if (!gummi_project_active()) { gtk_widget_set_sensitive (GTK_WIDGET (gui->menugui->menu_projopen), TRUE); // TODO we should probably have functions for calls like this: if (g_active_editor->filename != NULL) { gtk_widget_set_sensitive (GTK_WIDGET (gui->menugui->menu_projcreate), TRUE); } else { gtk_widget_set_tooltip_text (GTK_WIDGET (gui->menugui->menu_projcreate), _("This function requires the current\n" "active document to be saved. ")); } } else { gtk_widget_set_sensitive (GTK_WIDGET (gui->menugui->menu_projclose), TRUE); } } G_MODULE_EXPORT void on_menu_project_deselect (GtkWidget *widget, void *user) { gtk_widget_set_sensitive (GTK_WIDGET( gui->menugui->menu_projcreate), FALSE); gtk_widget_set_sensitive (GTK_WIDGET( gui->menugui->menu_projopen), FALSE); gtk_widget_set_sensitive (GTK_WIDGET( gui->menugui->menu_projclose), FALSE); } G_MODULE_EXPORT void on_menu_projcreate_activate (GtkWidget *widget, void *user) { gchar* filename = get_save_filename (TYPE_PROJECT); if (!filename) return; if (project_create_new (filename)) { projectgui_enable (gummi->project, gui->projectgui); projectgui_list_projfiles (gummi->project->projfile); } } G_MODULE_EXPORT void on_menu_projopen_activate (GtkWidget *widget, void *user) { gchar* filename = get_open_filename (TYPE_PROJECT); if (!filename) return; if (project_open_existing (filename)) { statusbar_set_message (g_strdup_printf("Loading project %s", filename)); projectgui_enable (gummi->project, gui->projectgui); projectgui_list_projfiles (gummi->project->projfile); } else { statusbar_set_message (g_strdup_printf("An error ocurred while " "loading project %s", filename)); } g_free (filename); } G_MODULE_EXPORT void on_menu_projclose_activate (GtkWidget *widget, void *user) { if (!gummi->project->projfile) return; if (project_close ()) { projectgui_disable (gummi->project, gui->projectgui); } } /******************************************************************************* * HELP MENU * ******************************************************************************/ G_MODULE_EXPORT void on_menu_guide_activate (GtkWidget *widget, void *user) { GError *error = NULL; gtk_show_uri (gdk_screen_get_default(), C_GUMMIGUIDE, GDK_CURRENT_TIME, &error); if (error) { slog (L_ERROR, "Can't open user guide: %s\n", error->message); } } G_MODULE_EXPORT void on_menu_update_activate (GtkWidget *widget, void *user) { #ifdef WIN32 slog (L_G_INFO, "To be implemented for win32..\n"); #else gboolean ret = updatecheck (gui->mainwindow); if (!ret) slog (L_G_ERROR, "Update check failed!\n"); #endif } G_MODULE_EXPORT void on_menu_about_activate (GtkWidget *widget, void *user) { GError* err = NULL; gchar* icon_file = g_build_filename (GUMMI_DATA, "icons", "gummi.png", NULL); GdkPixbuf* icon = gdk_pixbuf_new_from_file_at_size (icon_file, 80, 80, &err); g_free (icon_file); const gchar* authors[] = { "Alexander van der Mey\n" "", "Wei-Ning Huang\n" "", "Dion Timmermann", "", "Robert Schroll", "\n", "Former contributors:", "Thomas van der Burgt", "Cameron Grout", NULL }; const gchar* translators = "** Visit our website for instructions on **\n" "** contributing or updating a translation **\n" "\n" "Arabic: Hamad Mohammad\n" "Brazilian-Portugese: Fernando Cruz & Alexandre Guimarães\n" "Catalan: Marc Vinyals\n" "Chinese (Simplified): Mathlab pass\n" "Chinese (Traditional): Wei-Ning Huang\n" "Czech: Přemysl Janouch\n" "Danish: Jack Olsen\n" "Dutch: Alexander van der Mey\n" "French: Yvan Duron & Olivier Brousse\n" "German: Thomas Niederprüm\n" "Greek: Dimitris Leventeas\n" "Hungarian: Balázs Meskó\n" "Italian: Salvatore Vassallo\n" "Polish: Hubert Kowalski\n" "Portugese: Alexandre Guimarães\n" "Romanian: Alexandru-Eugen Ichim\n" "Russian: Kruvalig\n" "Swedish: Kess Vargavind\n" "Spanish: Carlos Salas Contreras\n"; const gchar* documenters[] = {"Guy Edwards", NULL}; GtkAboutDialog* dialog = GTK_ABOUT_DIALOG (gtk_about_dialog_new ()); gtk_window_set_transient_for (GTK_WINDOW (dialog), gui->mainwindow); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); gtk_about_dialog_set_authors (dialog, authors); gtk_about_dialog_set_program_name (dialog, PACKAGE_NAME); gtk_about_dialog_set_version (dialog, PACKAGE_VERSION); gtk_about_dialog_set_website (dialog, PACKAGE_URL); gtk_about_dialog_set_copyright (dialog, PACKAGE_COPYRIGHT); gtk_about_dialog_set_license (dialog, PACKAGE_LICENSE); gtk_about_dialog_set_logo (dialog, icon); gtk_about_dialog_set_comments (dialog, PACKAGE_COMMENTS); gtk_about_dialog_set_translator_credits (dialog, translators); gtk_about_dialog_set_documenters (dialog, documenters); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (GTK_WIDGET (dialog)); } gummi-0.6.5/src/gui/gui-main.h0000644000175000017500000001400312040524267013013 00000000000000/** * @file gui-main.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_MAIN_H__ #define __GUMMI_GUI_MAIN_H__ #include #include #include "gui-import.h" #include "gui-prefs.h" #include "gui-preview.h" #include "gui-search.h" #include "gui-snippets.h" #include "gui-tabmanager.h" #include "gui-infoscreen.h" #include "gui-menu.h" #include "gui-project.h" #define RECENT_FILES_NUM 5 #define TEXCOUNT_OUTPUT_LINES 7 /* These macros should be only used in GUI related classes * which acted as syntax sugar */ /* These macros should be only used in GUI related classes * which acted as syntax sugar */ #define g_e_buffer GTK_TEXT_BUFFER (g_active_editor->buffer) #define g_e_view GTK_TEXT_VIEW (g_active_editor->view) #define g_active_tab gummi->tabmanager->active_tab #define g_active_editor gummi->tabmanager->active_editor #define g_tabs gummi->tabmanager->tabs #define GUMMI_GUI(x) ((GummiGui*)x) typedef struct _GummiGui GummiGui; struct _GummiGui { GuMenuGui* menugui; GuImportGui* importgui; GuPrefsGui* prefsgui; GuPreviewGui* previewgui; GuSearchGui* searchgui; GuSnippetsGui* snippetsgui; GuTabmanagerGui* tabmanagergui; GuInfoscreenGui* infoscreengui; GuProjectGui* projectgui; GtkWindow* mainwindow; GtkTextBuffer* errorbuff; GtkTextView* errorview; GtkVBox* rightpane; GtkWidget* toolbar; GtkStatusbar* statusbar; GtkToggleToolButton* previewoff; GtkCheckMenuItem* menu_spelling; GtkCheckMenuItem* menu_snippets; GtkCheckMenuItem* menu_toolbar; GtkCheckMenuItem* menu_statusbar; GtkCheckMenuItem* menu_rightpane; GtkCheckMenuItem* menu_autosync; GtkMenuItem* recent[5]; gint insens_widget_size; GtkWidget** insens_widgets; GtkBuilder *builder; GtkWidget *docstatswindow; GtkWidget *bibcompile; GtkMenuItem* menu_runbibtex; GtkMenuItem* menu_runmakeindex; #ifdef WIN32 GtkWidget* w32label; GtkWidget* w32button; GtkWidget* w32window; #endif guint statusid; gchar* recent_list[5]; }; typedef enum _GuFilterType { TYPE_LATEX = 0, TYPE_LATEX_SAVEAS, TYPE_PDF, TYPE_IMAGE, TYPE_BIBLIO, TYPE_PROJECT } GuFilterType; /* Main GUI */ GummiGui* gui_init (GtkBuilder* builder); void gui_main (GtkBuilder* builder); gboolean gui_quit (void); void gui_set_filename_display (GuTabContext* tc, gboolean title, gboolean label); void gui_set_window_title (const gchar* filename, const gchar* text); void gui_open_file (const gchar* filename); void gui_save_file (GuTabContext* tab, gboolean saveas); void gui_set_hastabs_sensitive (gboolean enable); void on_tab_notebook_switch_page(GtkNotebook *notebook, GtkWidget* nbpage, int page, void* data); void on_tool_previewoff_toggled (GtkWidget *widget, void * user); void on_tool_textstyle_bold_activate (GtkWidget* widget, void* user); void on_tool_textstyle_italic_activate (GtkWidget* widget, void* user); void on_tool_textstyle_underline_activate (GtkWidget* widget, void* user); void on_tool_textstyle_left_activate (GtkWidget* widget, void* user); void on_tool_textstyle_center_activate (GtkWidget* widget, void* user); void on_tool_textstyle_right_activate (GtkWidget* widget, void* user); void on_button_template_add_clicked (GtkWidget* widget, void* user); void on_button_template_remove_clicked (GtkWidget* widget, void* user); void on_button_template_open_clicked (GtkWidget* widget, void* user); void on_button_template_close_clicked (GtkWidget* widget, void* user); void on_template_rowitem_edited (GtkWidget* widget, gchar *path, gchar* filenm, void* user); void gui_recover_from_swapfile (const gchar* filename); void on_menu_autosync_toggled (GtkCheckMenuItem *menu_autosync, void* user); void on_button_biblio_compile_clicked (GtkWidget* widget, void* user); void on_button_biblio_detect_clicked (GtkWidget* widget, void* user); void on_bibreference_clicked (GtkTreeView* view, GtkTreePath* Path, GtkTreeViewColumn* column, void* user); void on_biblio_filter_changed (GtkWidget* widget, void* user); gboolean on_bibprogressbar_update (void* user); void on_recovery_infobar_response (GtkInfoBar* bar, gint res, gpointer filename); void gui_recovery_mode_enable (GuTabContext* tab, const gchar* filename); void gui_recovery_mode_disable (GtkInfoBar *infobar); /* misc functions */ gchar* get_open_filename (GuFilterType type); gchar* get_save_filename (GuFilterType type); void file_dialog_set_filter (GtkFileChooser* dialog, GuFilterType type); gint check_for_save (GuEditor* editor); void add_to_recent_list (const gchar* filename); void display_recent_files (GummiGui* gui); void gui_buildlog_set_text (const gchar *message); void statusbar_set_message (const gchar* message); gboolean statusbar_del_message (void* user); void typesetter_setup (void); void check_preview_timer (void); #endif /* __GUMMI_GUI_MAIN_H__ */ gummi-0.6.5/src/gui/gui-prefs.c0000644000175000017500000007053412040524267013214 00000000000000/** * @file gui-prefs.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-prefs.h" #include #include #include #include #include "constants.h" #include "configfile.h" #include "environment.h" #include "gui/gui-main.h" #include "latex.h" #include "utils.h" #include "compile/rubber.h" #include "compile/latexmk.h" #include "compile/texlive.h" /* TODO: needs mayor cleanup */ extern GummiGui* gui; extern Gummi* gummi; static void set_all_tab_settings (GuPrefsGui* prefs); static void set_tab_view_settings (GuPrefsGui* prefs); static void set_tab_editor_settings (GuPrefsGui* prefs); static void set_tab_fontcolor_settings (GuPrefsGui* prefs); static void set_tab_defaulttext_settings (GuPrefsGui* prefs); static void set_tab_compilation_settings (GuPrefsGui* prefs); static void set_tab_preview_settings (GuPrefsGui* prefs); static void set_tab_miscellaneous_settings (GuPrefsGui* prefs); GuPrefsGui* prefsgui_init (GtkWindow* mainwindow) { GuPrefsGui* p = g_new0 (GuPrefsGui, 1); GtkBuilder* builder = gtk_builder_new (); gchar* ui = g_build_filename (GUMMI_DATA, "ui", "prefs.glade", NULL); gtk_builder_add_from_file (builder, ui, NULL); gtk_builder_set_translation_domain (builder, PACKAGE); g_free (ui); p->prefwindow = GTK_WIDGET (gtk_builder_get_object (builder, "prefwindow")); p->notebook = GTK_NOTEBOOK (gtk_builder_get_object (builder, "notebook1")); p->textwrap_button = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "textwrapping")); p->wordwrap_button = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "wordwrapping")); p->line_numbers = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "line_numbers")); p->highlighting = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "highlighting")); p->tabwidth = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "tabwidth")); p->spaces_instof_tabs = GTK_CHECK_BUTTON(gtk_builder_get_object(builder, "spaces_instof_tabs")); p->autoindentation = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "autoindentation")); p->autosaving = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "autosaving")); p->compile_status = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "compile_status")); p->autosave_timer = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "autosave_timer")); p->combo_languages = GTK_COMBO_BOX (gtk_builder_get_object (builder, "combo_languages")); p->list_languages = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_languages")); p->styleschemes_treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "styleschemes_treeview")); p->list_styleschemes = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_styleschemes")); p->default_text = GTK_TEXT_VIEW (gtk_builder_get_object (builder, "default_text")); p->default_buffer = gtk_text_view_get_buffer (p->default_text); p->editor_font = GTK_FONT_BUTTON (gtk_builder_get_object (builder, "editor_font")); p->compile_scheme = GTK_COMBO_BOX (gtk_builder_get_object (builder, "combo_compilescheme")); p->compile_timer = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "compile_timer")); p->autoexport = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "auto_export")); p->typ_pdflatex = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "typ_pdflatex")); p->typ_xelatex = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "typ_xelatex")); p->typ_rubber = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "typ_rubber")); p->typ_latexmk = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "typ_latexmk")); p->method_texpdf = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "method_texpdf")); p->method_texdvipdf = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "method_texdvipdf")); p->method_texdvipspdf = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "method_texdvipspdf")); p->opt_shellescape = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "opt_shellescape")); p->opt_synctex = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "opt_synctex")); p->combo_animated_scroll = GTK_COMBO_BOX (gtk_builder_get_object (builder, "combo_animated_scroll")); p->spin_cache_size = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "spin_cache_size")); p->view_box = GTK_VBOX (gtk_builder_get_object (builder, "view_box")); p->editor_box = GTK_HBOX (gtk_builder_get_object (builder, "editor_box")); p->compile_box = GTK_HBOX (gtk_builder_get_object (builder, "compile_box")); gtk_window_set_transient_for (GTK_WINDOW (p->prefwindow), mainwindow); #ifdef USE_GTKSPELL /* list available languages */ if (g_file_test ( g_find_program_in_path("enchant-lsmod"), G_FILE_TEST_EXISTS)) { Tuple2 pret = utils_popen_r ("enchant-lsmod -list-dicts", NULL); if (pret.second != NULL) { gchar** output = g_strsplit((gchar*)pret.second, "\n", BUFSIZ); gchar** elems = NULL; int i; for(i = 0; output[i] != NULL; i++) { GtkTreeIter iter; elems = g_strsplit (output[i], " ", BUFSIZ); if (elems[0] != NULL) { gtk_list_store_append (p->list_languages, &iter); gtk_list_store_set (p->list_languages, &iter, 0, elems[0], -1); } } g_strfreev(output); g_strfreev(elems); } gtk_combo_box_set_active (p->combo_languages, 0); g_free ((gchar*)pret.second); } #else /* desensitise gtkspell related GUI elements if not used */ GtkWidget* box = GTK_WIDGET ( gtk_builder_get_object (builder, "box_spellcheck")); gtk_widget_set_sensitive (box, FALSE); #endif GList* schemes = editor_list_style_scheme_sorted (); GList* schemes_iter = schemes; gchar* desc = NULL; GtkTreeIter iter; while (schemes_iter) { desc = g_markup_printf_escaped ("%s - %s", gtk_source_style_scheme_get_name (schemes_iter->data), gtk_source_style_scheme_get_description (schemes_iter->data)); gtk_list_store_append (p->list_styleschemes, &iter); gtk_list_store_set (p->list_styleschemes, &iter, 0, desc, 1, gtk_source_style_scheme_get_id (schemes_iter->data), -1); schemes_iter = g_list_next (schemes_iter); g_free (desc); } g_list_free (schemes); gtk_builder_connect_signals (builder, NULL); return p; } void prefsgui_main (GuPrefsGui* prefs, int page) { gtk_notebook_set_current_page(prefs->notebook, page); set_all_tab_settings (prefs); gtk_widget_show_all (GTK_WIDGET (prefs->prefwindow)); } static void set_all_tab_settings (GuPrefsGui* prefs) { set_tab_view_settings (prefs); set_tab_editor_settings (prefs); set_tab_fontcolor_settings (prefs); set_tab_defaulttext_settings (prefs); set_tab_compilation_settings (prefs); set_tab_preview_settings (prefs); set_tab_miscellaneous_settings (prefs); } static void set_tab_view_settings (GuPrefsGui* prefs) { gboolean value = FALSE; value = TO_BOOL (config_get_value ("textwrapping")); if (value) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(prefs->textwrap_button), value); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(prefs->wordwrap_button), TO_BOOL (config_get_value ("wordwrapping"))); } else gtk_widget_set_sensitive (GTK_WIDGET (prefs->wordwrap_button), FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->line_numbers), TO_BOOL (config_get_value ("line_numbers"))); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->highlighting), TO_BOOL (config_get_value ("highlighting"))); } static void set_tab_editor_settings (GuPrefsGui* prefs) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->autoindentation), TO_BOOL (config_get_value ("autoindentation"))); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->spaces_instof_tabs), TO_BOOL (config_get_value ("spaces_instof_tabs"))); gtk_spin_button_set_value (prefs->tabwidth, atoi (config_get_value ("tabwidth"))); gtk_spin_button_set_value (prefs->autosave_timer, atoi (config_get_value ("autosave_timer"))); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->autosaving), TO_BOOL (config_get_value ("autosaving"))); if (!config_get_value ("autosaving")) gtk_widget_set_sensitive (GTK_WIDGET (prefs->autosave_timer), FALSE); } static void set_tab_fontcolor_settings (GuPrefsGui* prefs) { const gchar* font = config_get_value ("font"); PangoFontDescription* font_desc = pango_font_description_from_string (font); gtk_widget_modify_font (GTK_WIDGET (prefs->default_text), font_desc); pango_font_description_free (font_desc); gtk_font_button_set_font_name (prefs->editor_font, config_get_value ("font")); prefsgui_apply_style_scheme(prefs); } static void set_tab_defaulttext_settings (GuPrefsGui* prefs) { gchar* text = NULL; if (!g_file_get_contents (C_WELCOMETEXT, &text, NULL, NULL)) { gtk_widget_set_sensitive (GTK_WIDGET(prefs->default_text), FALSE); return; } gtk_text_buffer_set_text (prefs->default_buffer, text, -1); gtk_text_buffer_set_modified (prefs->default_buffer, FALSE); g_free (text); } static void set_tab_compilation_settings (GuPrefsGui* prefs) { /* Setting available typesetters and the active one */ /* TODO: iterate the available typesetter list and gtk_builder the objects * maybe.. or not.. */ if (pdflatex_detected()) { if (pdflatex_active()) gtk_toggle_button_set_active (prefs->typ_pdflatex, TRUE); gtk_widget_set_sensitive (GTK_WIDGET(prefs->typ_pdflatex), TRUE); gtk_widget_set_tooltip_text (GTK_WIDGET(prefs->typ_pdflatex), ""); } if (xelatex_detected()) { if (xelatex_active()) gtk_toggle_button_set_active (prefs->typ_xelatex, TRUE); gtk_widget_set_sensitive (GTK_WIDGET(prefs->typ_xelatex), TRUE); gtk_widget_set_tooltip_text (GTK_WIDGET(prefs->typ_xelatex), ""); } if (rubber_detected()) { if (rubber_active()) gtk_toggle_button_set_active (prefs->typ_rubber, TRUE); gtk_widget_set_sensitive (GTK_WIDGET(prefs->typ_rubber), TRUE); gtk_widget_set_tooltip_text (GTK_WIDGET(prefs->typ_rubber), ""); } if (latexmk_detected()) { if (latexmk_active()) gtk_toggle_button_set_active (prefs->typ_latexmk, TRUE); gtk_widget_set_sensitive (GTK_WIDGET(prefs->typ_latexmk), TRUE); gtk_widget_set_tooltip_text (GTK_WIDGET(prefs->typ_latexmk), ""); } if (latex_method_active ("texpdf")) { gtk_toggle_button_set_active (prefs->method_texpdf, TRUE); } else if (latex_method_active ("texdvipdf")) { gtk_toggle_button_set_active (prefs->method_texdvipdf, TRUE); } else if (latex_method_active ("texdvipspdf")) { gtk_toggle_button_set_active (prefs->method_texdvipspdf, TRUE); } if (!latex_use_shellescaping()) gtk_toggle_button_set_active (prefs->opt_shellescape, FALSE); else { gtk_toggle_button_set_active (prefs->opt_shellescape, TRUE); } if (latex_can_synctex()) { if (config_get_value ("synctex")) { gtk_toggle_button_set_active (prefs->opt_synctex, TRUE); } else { gtk_toggle_button_set_active (prefs->opt_synctex, FALSE); } } } static void set_tab_preview_settings (GuPrefsGui* prefs) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->compile_status), TO_BOOL (config_get_value ("compile_status"))); if (!config_get_value ("compile_status")) gtk_widget_set_sensitive (GTK_WIDGET (prefs->compile_timer), FALSE); gtk_spin_button_set_value (prefs->compile_timer, atoi (config_get_value ("compile_timer"))); /* compile scheme */ if (STR_EQU (config_get_value ("compile_scheme"), "real_time")) gtk_combo_box_set_active (prefs->compile_scheme, 1); if (STR_EQU (config_get_value ("animated_scroll"), "always")) { gtk_combo_box_set_active (prefs->combo_animated_scroll, 0); } else if (STR_EQU (config_get_value ("animated_scroll"), "never")) { gtk_combo_box_set_active (prefs->combo_animated_scroll, 2); } else { gtk_combo_box_set_active (prefs->combo_animated_scroll, 1); } gtk_spin_button_set_value (prefs->spin_cache_size, atoi (config_get_value ("cache_size"))); } static void set_tab_miscellaneous_settings (GuPrefsGui* prefs) { GtkTreeModel* combo_lang = 0; GtkTreeIter iter; const gchar* lang = 0; gint count = 0; gboolean valid = FALSE; combo_lang = gtk_combo_box_get_model (prefs->combo_languages); lang = config_get_value ("spell_language"); valid = gtk_tree_model_get_iter_first (combo_lang, &iter); while (valid) { const gchar* str_value; gtk_tree_model_get (combo_lang, &iter, 0, &str_value, -1); if (STR_EQU (lang, str_value)) { gtk_combo_box_set_active (prefs->combo_languages, count); break; } ++count; valid = gtk_tree_model_iter_next (combo_lang, &iter); } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->autoexport), TO_BOOL (config_get_value ("autoexport"))); } void prefsgui_apply_style_scheme(GuPrefsGui* prefs) { const gchar* scheme = config_get_value ("style_scheme"); GList* schemes = editor_list_style_scheme_sorted (); GList* schemes_iter = schemes; GList* tab = gummi->tabmanager->tabs; gint column = 0; GtkTreePath* treepath; while (schemes_iter) { if (STR_EQU (gtk_source_style_scheme_get_id (schemes_iter->data), scheme)) { gchar* path = g_strdup_printf ("%d", column); treepath = gtk_tree_path_new_from_string (path); gtk_tree_view_set_cursor (prefs->styleschemes_treeview, treepath, NULL, FALSE); gtk_tree_path_free (treepath); g_free (path); break; } ++column; schemes_iter = g_list_next (schemes_iter); } g_list_free (schemes); if (schemes && !schemes_iter) { treepath = gtk_tree_path_new_from_string ("0"); gtk_tree_view_set_cursor (prefs->styleschemes_treeview, treepath, NULL, FALSE); gtk_tree_path_free (treepath); while (tab) { editor_set_style_scheme_by_id (GU_TAB_CONTEXT (tab->data)->editor, "classic"); tab = g_list_next (tab); } } } G_MODULE_EXPORT void toggle_linenumbers (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("line_numbers", newval? "True": "False"); while (tab) { gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW (GU_TAB_CONTEXT (tab->data)->editor->view), newval); tab = g_list_next (tab); } } G_MODULE_EXPORT void toggle_highlighting (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("highlighting", newval? "True": "False"); while (tab) { gtk_source_view_set_highlight_current_line (GTK_SOURCE_VIEW (GU_TAB_CONTEXT (tab->data)->editor->view), newval); tab = g_list_next (tab); } } G_MODULE_EXPORT void toggle_textwrapping (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("textwrapping", newval? "True": "False"); if (newval) { while (tab) { gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (GU_TAB_CONTEXT (tab->data)->editor->view), GTK_WRAP_CHAR); tab = g_list_next (tab); } gtk_widget_set_sensitive (GTK_WIDGET (gui->prefsgui->wordwrap_button), TRUE); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gui->prefsgui->wordwrap_button), FALSE); /* NOTE: gtk_text_vew_set_wrap_mode () must be placed after * gtk_toggle_button_set_active () since gtk_toggle_button_set_active () * will trigger the 'activate' event of the corresponding button and * cause wrapmode to be changed after we set it */ while (tab) { gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (GU_TAB_CONTEXT (tab->data)->editor->view), GTK_WRAP_NONE); tab = g_list_next (tab); } gtk_widget_set_sensitive (GTK_WIDGET (gui->prefsgui->wordwrap_button), FALSE); } } G_MODULE_EXPORT void toggle_wordwrapping (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("wordwrapping", newval? "True": "False"); while (tab) { if (newval) gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (GU_TAB_CONTEXT (tab->data)->editor->view), GTK_WRAP_WORD); else gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (GU_TAB_CONTEXT (tab->data)->editor->view), GTK_WRAP_CHAR); tab = g_list_next (tab); } } G_MODULE_EXPORT void toggle_compilestatus (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); config_set_value ("compile_status", newval? "True": "False"); gtk_widget_set_sensitive (GTK_WIDGET(gui->prefsgui->compile_timer), newval); gtk_toggle_tool_button_set_active (gui->previewoff, !newval); } G_MODULE_EXPORT void toggle_spaces_instof_tabs (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("spaces_instof_tabs", newval? "True": "False"); while (tab) { gtk_source_view_set_insert_spaces_instead_of_tabs (GU_TAB_CONTEXT (tab->data)->editor->view, newval); tab = g_list_next (tab); } } G_MODULE_EXPORT void toggle_autoindentation (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("autoindentation", newval? "True": "False"); while (tab) { gtk_source_view_set_auto_indent (GU_TAB_CONTEXT (tab->data)->editor->view, newval); tab = g_list_next (tab); } } G_MODULE_EXPORT void toggle_autosaving (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); config_set_value ("autosaving", newval? "True": "False"); if (newval) { gtk_widget_set_sensitive ( GTK_WIDGET (gui->prefsgui->autosave_timer), TRUE); gint time = atoi (config_get_value ("autosave_timer")); gtk_spin_button_set_value (gui->prefsgui->autosave_timer, time); iofunctions_reset_autosave (g_active_editor->filename); } else { gtk_widget_set_sensitive ( GTK_WIDGET (gui->prefsgui->autosave_timer), FALSE); iofunctions_stop_autosave (); } } G_MODULE_EXPORT void toggle_autoexport (GtkWidget* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); config_set_value ("autoexport", newval? "True": "False"); } G_MODULE_EXPORT void on_prefs_close_clicked (GtkWidget* widget, void* user) { GtkTextIter start, end; gchar* text = NULL; if (gtk_text_buffer_get_modified (gui->prefsgui->default_buffer)) { gtk_text_buffer_get_start_iter (gui->prefsgui->default_buffer, &start); gtk_text_buffer_get_end_iter (gui->prefsgui->default_buffer, &end); text = gtk_text_buffer_get_text (gui->prefsgui->default_buffer, &start, &end, FALSE); utils_set_file_contents (C_WELCOMETEXT, text, -1); } g_free (text); gtk_widget_hide (GTK_WIDGET (gui->prefsgui->prefwindow)); } G_MODULE_EXPORT void on_prefs_reset_clicked (GtkWidget* widget, void* user) { config_set_default (); utils_copy_file (C_DEFAULTTEXT, C_WELCOMETEXT, NULL); set_all_tab_settings (gui->prefsgui); } G_MODULE_EXPORT void on_tabwidth_value_changed (GtkWidget* widget, void* user) { gint newval = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget)); gchar buf[16]; GList* tab = gummi->tabmanager->tabs; config_set_value ("tabwidth", g_ascii_dtostr (buf, 16, (double)newval)); while (tab) { gtk_source_view_set_tab_width (GU_TAB_CONTEXT (tab->data)->editor->view, newval); tab = g_list_next (tab); } } G_MODULE_EXPORT void on_configure_snippets_clicked (GtkWidget* widget, void* user) { snippetsgui_main (gui->snippetsgui); } G_MODULE_EXPORT void on_autosave_value_changed (GtkWidget* widget, void* user) { gint newval = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget)); gchar buf[16]; config_set_value("autosave_timer", g_ascii_dtostr(buf, 16, (double)newval)); iofunctions_reset_autosave (g_active_editor->filename); } G_MODULE_EXPORT void on_compile_value_changed (GtkWidget* widget, void* user) { gint newval = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget)); gchar buf[16]; config_set_value("compile_timer", g_ascii_dtostr (buf, 16, (double)newval)); previewgui_reset (gui->previewgui); } G_MODULE_EXPORT void on_cache_size_value_changed(GtkWidget* widget, void* user) { gint newval = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget)); gchar buf[16]; config_set_value("cache_size", g_ascii_dtostr (buf, 16, (double)newval)); g_idle_add((GSourceFunc) run_garbage_collector, gui->previewgui); } G_MODULE_EXPORT void on_editor_font_set (GtkWidget* widget, void* user) { const gchar* font = gtk_font_button_get_font_name(GTK_FONT_BUTTON (widget)); PangoFontDescription* font_desc = pango_font_description_from_string (font); GList* tab = gummi->tabmanager->tabs; slog (L_INFO, "setting font to %s\n", font); config_set_value ("font", font); while (tab) { gtk_widget_modify_font (GTK_WIDGET (GU_TAB_CONTEXT (tab->data)->editor->view), font_desc); tab = g_list_next (tab); } pango_font_description_free (font_desc); } G_MODULE_EXPORT void on_typ_pdflatex_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("typesetter", "pdflatex"); typesetter_setup (); } } G_MODULE_EXPORT void on_typ_xelatex_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("typesetter", "xelatex"); typesetter_setup (); } } G_MODULE_EXPORT void on_typ_rubber_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("typesetter", "rubber"); typesetter_setup (); } } G_MODULE_EXPORT void on_typ_latexmk_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("typesetter", "latexmk"); typesetter_setup (); } } G_MODULE_EXPORT void on_method_texpdf_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("compile_steps", "texpdf"); slog (L_INFO, "Changed compile method to \"tex->pdf\"\n"); } } G_MODULE_EXPORT void on_method_texdvipdf_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("compile_steps", "texdvipdf"); slog (L_INFO, "Changed compile method to \"tex->dvi->pdf\"\n"); } } G_MODULE_EXPORT void on_method_texdvipspdf_toggled (GtkToggleButton* widget, void* user) { if (gtk_toggle_button_get_active (widget)) { config_set_value ("compile_steps", "texdvipspdf"); slog (L_INFO, "Changed compile method to \"tex->dvi->ps->pdf\"\n"); } } G_MODULE_EXPORT void toggle_shellescape (GtkToggleButton* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); config_set_value ("shellescape", newval? "True": "False"); } G_MODULE_EXPORT void on_synctex_toggled (GtkToggleButton* widget, void* user) { gboolean newval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); config_set_value ("synctex", newval? "True": "False"); gtk_widget_set_sensitive (GTK_WIDGET (gui->menu_autosync), newval); } G_MODULE_EXPORT void on_combo_language_changed (GtkWidget* widget, void* user) { #ifdef USE_GTKSPELL gchar* selected = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)); GList* tab = gummi->tabmanager->tabs; config_set_value ("spell_language", selected); if (config_get_value ("spelling")) { while (tab) { editor_activate_spellchecking (GU_TAB_CONTEXT (tab->data)->editor, FALSE); editor_activate_spellchecking (GU_TAB_CONTEXT (tab->data)->editor, TRUE); tab = g_list_next (tab); } } #endif } G_MODULE_EXPORT void on_combo_compilescheme_changed (GtkWidget* widget, void* user) { gint selected = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); const gchar scheme[][16] = { "on_idle", "real_time" }; slog (L_INFO, "compile scheme set to %s\n", scheme[selected]); config_set_value ("compile_scheme", scheme[selected]); previewgui_reset (gui->previewgui); } G_MODULE_EXPORT void on_combo_animated_scroll_changed (GtkWidget* widget, void* user) { gint selected = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); const gchar scheme[][16] = { "always", "autosync", "never" }; config_set_value ("animated_scroll", scheme[selected]); } G_MODULE_EXPORT void on_styleschemes_treeview_cursor_changed (GtkTreeView* treeview, void* user) { gchar* id = NULL; gchar* name = NULL; GList* tab = gummi->tabmanager->tabs; GtkTreeIter iter; GtkTreeModel* model = GTK_TREE_MODEL (gtk_tree_view_get_model (treeview)); GtkTreeSelection* selection = gtk_tree_view_get_selection (treeview); gtk_tree_selection_get_selected (selection, &model, &iter); gtk_tree_model_get (model, &iter, 0, &name, 1, &id, -1); tab = gummi->tabmanager->tabs; while (tab) { editor_set_style_scheme_by_id (GU_TAB_CONTEXT (tab->data)->editor, id); tab = g_list_next (tab); } config_set_value ("style_scheme", id); } gummi-0.6.5/src/gui/gui-snippets.h0000644000175000017500000000646212040524267013746 00000000000000/** * @file gui-snippet.h * @brief Handle snippets and provide edit/new/delete function * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_SNIPPETS__ #define __GUMMI_GUI_SNIPPETS__ #include #include #include "snippets.h" #define GU_SNIPPETS_GUI(x) ((GuSnippetsGui*)x) typedef struct _GuSnippetsGui GuSnippetsGui; struct _GuSnippetsGui { GtkWindow* snippetswindow; GtkTreeView* snippets_tree_view; GtkScrolledWindow* snippet_scroll; GtkEntry* tab_trigger_entry; GtkEntry* accelerator_entry; GtkListStore* list_snippets; GtkCellRendererText* snippet_renderer; GtkButton* button_new; GtkButton* button_remove; GtkSourceView* view; GtkSourceBuffer* buffer; slist* current; }; GuSnippetsGui* snippetsgui_init (GtkWindow* mainwindow); void snippetsgui_main (GuSnippetsGui* sc); void snippetsgui_load_snippets (GuSnippetsGui* sc); void snippetsgui_move_cursor_to_row (GuSnippetsGui* sc, gint row); void snippetsgui_update_snippet (GuSnippets* sc); void on_button_new_snippet_clicked (GtkWidget* widget, void* user); void on_button_remove_snippet_clicked (GtkWidget* widget, void* user); gboolean on_tab_trigger_entry_key_release_event (GtkEntry* entry, void* user); void on_accelerator_entry_focus_in_event (GtkWidget* widget, void* user); void on_accelerator_entry_focus_out_event (GtkWidget* widget, void* user); gboolean on_accelerator_entry_key_press_event (GtkWidget* widget, GdkEventKey* event, void* user); void on_snippetsgui_close_clicked (GtkWidget* widget, void* user); void on_snippetsgui_reset_clicked (GtkWidget* widget, void* user); void on_snippetsgui_selected_text_clicked (GtkWidget* widget, void* user); void on_snippetsgui_filename_clicked (GtkWidget* widget, void* user); void on_snippetsgui_basename_clicked (GtkWidget* widget, void* user); void on_snippets_tree_view_cursor_changed (GtkTreeView* view, void* user); void on_snippet_renderer_edited (GtkCellRendererText* renderer, gchar *path, gchar* name, void* user); void on_snippet_renderer_editing_canceled (GtkCellRenderer* rend, void* user); gboolean on_snippet_source_buffer_key_release (GtkWidget* widget, void* user); #endif /* __GUMMI_GUI_SNIPPETS__ */ gummi-0.6.5/src/gui/gui-prefs.h0000644000175000017500000001003412040524267013206 00000000000000/** * @file gui-prefs.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_PREFS_H__ #define __GUMMI_GUI_PREFS_H__ #include #include #define GU_PREFS_GUI(x) ((GuPrefsGui*)x) typedef struct _GuPrefsGui GuPrefsGui; struct _GuPrefsGui { GtkWidget* prefwindow; GtkNotebook* notebook; GtkCheckButton* textwrap_button; GtkCheckButton* wordwrap_button; GtkCheckButton* line_numbers; GtkCheckButton* highlighting; GtkCheckButton* autosaving; GtkCheckButton* autoexport; GtkCheckButton* compile_status; GtkToggleButton* opt_shellescape; GtkToggleButton* opt_synctex; GtkSpinButton* tabwidth; GtkCheckButton* spaces_instof_tabs; GtkCheckButton* autoindentation; GtkSpinButton* autosave_timer; GtkComboBox* combo_languages; GtkListStore* list_languages; GtkTreeView* styleschemes_treeview; GtkListStore* list_styleschemes; GtkTextView* default_text; GtkTextBuffer* default_buffer; GtkFontButton* editor_font; GtkComboBox* compile_scheme; GtkSpinButton* compile_timer; GtkSpinButton* spin_cache_size; GtkToggleButton* typ_pdflatex; GtkToggleButton* typ_xelatex; GtkToggleButton* typ_rubber; GtkToggleButton* typ_latexmk; GtkToggleButton* method_texpdf; GtkToggleButton* method_texdvipdf; GtkToggleButton* method_texdvipspdf; GtkComboBox* combo_animated_scroll; GtkVBox* view_box; GtkHBox* editor_box; GtkHBox* compile_box; }; GuPrefsGui* prefsgui_init (GtkWindow* mainwindow); void prefsgui_main (GuPrefsGui* prefs, int page); void prefsgui_apply_style_scheme(GuPrefsGui* prefs); void toggle_linenumbers (GtkWidget* widget, void* user); void toggle_highlighting (GtkWidget* widget, void* user); void toggle_textwrapping (GtkWidget* widget, void* user); void toggle_wordwrapping (GtkWidget* widget, void* user); void toggle_compilestatus (GtkWidget* widget, void* user); void toggle_spaces_instof_tabs (GtkWidget* widget, void* user); void toggle_autosaving (GtkWidget* widget, void* user); void on_prefs_close_clicked (GtkWidget* widget, void* user); void on_prefs_reset_clicked (GtkWidget* widget, void* user); void on_tabwidth_value_changed (GtkWidget* widget, void* user); void on_configure_snippets_clicked (GtkWidget* widget, void* user); void on_autosave_value_changed (GtkWidget* widget, void* user); void on_compile_value_changed (GtkWidget* widget, void* user); void on_editor_font_set (GtkWidget* widget, void* user); void on_combo_typesetter_changed (GtkWidget* widget, void* user); void on_combo_language_changed (GtkWidget* widget, void* user); void on_combo_compilescheme_changed (GtkWidget* widget, void* user); void on_combo_animated_scroll_changed (GtkWidget* widget, void* user); void on_cache_size_value_changed(GtkWidget* widget, void* user); void on_styleschemes_treeview_cursor_changed (GtkTreeView* treeview, void* user); #endif /* __GUMMI_GUI_PREFS_H__ */ gummi-0.6.5/src/gui/gui-search.h0000644000175000017500000000445612040524267013347 00000000000000/** * @file gui-search.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_SEARCH_H__ #define __GUMMI_GUI_SEARCH_H__ #include #include #define GU_SEARCH_GUI(x) ((GuSearchGui*)x) typedef struct _GuSearchGui GuSearchGui; struct _GuSearchGui { GtkWidget* searchwindow; GtkEntry* searchentry; GtkEntry* replaceentry; gboolean backwards; gboolean matchcase; gboolean wholeword; gchar* prev_search; gchar* prev_replace; }; GuSearchGui* searchgui_init (GtkBuilder* builder); void searchgui_main (GuSearchGui* gc); void on_toggle_matchcase_toggled (GtkWidget* widget, void* user); void on_toggle_wholeword_toggled (GtkWidget* widget, void* user); void on_toggle_backwards_toggled (GtkWidget* widget, void* user); void on_searchgui_text_changed (GtkEditable* editable, void* user); gboolean on_button_searchwindow_close_clicked (GtkWidget* widget, void* user); void on_button_searchwindow_find_clicked (GtkWidget* widget, void* user); void on_button_searchwindow_replace_next_clicked (GtkWidget* widget, void* user); void on_button_searchwindow_replace_all_clicked (GtkWidget* widget, void* user); #endif /* __GUMMI_GUI_SEARCH_H__ */ gummi-0.6.5/src/gui/gui-tabmanager.h0000644000175000017500000000532012040524267014172 00000000000000/** * @file gui-tabmanager.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_TABMANAGER_H__ #define __GUMMI_GUI_TABMANAGER_H__ #include #include #include "editor.h" #define g_tabnotebook gui->tabmanagergui->notebook #define GU_TAB_PAGE(x) ((GuTabPage*)x) typedef struct _GuTabPage GuTabPage; struct _GuTabPage { GtkWidget* scrollw; GtkWidget* editorbox; GtkWidget* infobar; GtkWidget* barlabel; gint infosignal; GtkWidget* labelbox; GtkLabel* label; gint position; GtkButton* button; unsigned unsavednr; gboolean bold; }; #define GU_TAB_CONTEXT(x) ((GuTabContext*)x) typedef struct _GuTabContext GuTabContext; struct _GuTabContext { GuEditor* editor; GuTabPage* page; }; #define GU_TABMANAGER_GUI(x) ((GuTabmanagerGui*)x) typedef struct _GuTabmanagerGui GuTabmanagerGui; struct _GuTabmanagerGui { GtkNotebook* notebook; int unsavednr; }; GuTabmanagerGui* tabmanagergui_init (GtkBuilder* builder); int tabmanagergui_create_page (GuTabContext* tc, GuEditor* editor); void tabmanagergui_create_label (GuTabPage* tp, gchar* labeltext); void tabmanagergui_create_infobar (GuTabPage* tp); gchar* tabmanagergui_get_labeltext (GuTabPage* tp); gint tabmanagergui_replace_page (GuTabContext* tc, GuEditor* newec); void tabmanagergui_set_current_page (gint position); gint tabmanagergui_get_current_page (void); gint tabmanagergui_get_n_pages (void); void tabmanagergui_update_label (GuTabPage* tp, const gchar* text); void tablabel_set_bold_text (GuTabPage* tp); #endif /* __GUMMI_GUI_TABMANAGER_H__ */ gummi-0.6.5/src/gui/gui-infoscreen.h0000644000175000017500000000361512040524267014231 00000000000000/** * @file gui-infoscreen.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_ERRORSCREEN_H__ #define __GUMMI_GUI_ERRORSCREEN_H__ #include #define g_infoscreengui gui->infoscreengui #define GU_INFOSCREEN_GUI(x) ((GuInfoscreenGui*)x) typedef struct _GuInfoscreenGui GuInfoscreenGui; struct _GuInfoscreenGui { GtkViewport* viewport; GtkWidget* errorpanel; GtkWidget* drawarea; GtkLabel *header; GtkImage *image; GtkLabel *details; }; GuInfoscreenGui* infoscreengui_init (GtkBuilder* builder); void infoscreengui_enable (GuInfoscreenGui *is, const gchar *msg); void infoscreengui_disable (GuInfoscreenGui *is); void infoscreengui_set_message (GuInfoscreenGui *is, const gchar *msg); #endif /* __GUMMI_GUI_ERRORSCREEN_H__ */ gummi-0.6.5/src/gui/gui-tabmanager.c0000644000175000017500000001521612040524267014172 00000000000000/** * @file gui-tabmanager.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-tabmanager.h" #include "gui-main.h" #include "environment.h" extern Gummi* gummi; extern GummiGui* gui; GuTabmanagerGui* tabmanagergui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuTabmanagerGui* tm = g_new0 (GuTabmanagerGui, 1); tm->notebook = GTK_NOTEBOOK (gtk_builder_get_object (builder, "tab_notebook")); g_object_set (tm->notebook, "tab-border", 0, NULL); tm->unsavednr = 0; return tm; } int tabmanagergui_create_page (GuTabContext* tc, GuEditor* editor) { GuTabPage* tp = g_new0(GuTabPage, 1); tc->page = tp; int pos; tp->scrollw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(tp->scrollw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gchar* labeltext = tabmanager_get_tabname (tc); tabmanagergui_create_label (tp, labeltext); g_signal_connect (tp->button, "clicked", G_CALLBACK (on_menu_close_activate), tc); tabmanagergui_create_infobar (tp); gtk_container_add (GTK_CONTAINER (tp->scrollw), GTK_WIDGET (editor->view)); tp->editorbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (tp->editorbox), tp->infobar, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (tp->editorbox), tp->scrollw, TRUE, TRUE, 0); pos = gtk_notebook_append_page (GTK_NOTEBOOK (g_tabnotebook), tp->editorbox, GTK_WIDGET (tp->labelbox)); gtk_widget_show_all (tp->editorbox); return pos; } void tabmanagergui_create_infobar (GuTabPage* tp) { // we will probably want to make a separate file for infobar // procedures that we can attach to hboxes in both the editor // and the preview window, TODO for 0.7.0 -Alex GtkWidget* infobar = NULL; GtkWidget* message = NULL; GtkWidget* area = NULL; infobar = gtk_info_bar_new (); gtk_widget_set_no_show_all (infobar, TRUE); message = gtk_label_new (""); gtk_label_set_line_wrap (GTK_LABEL(message), TRUE); gtk_widget_show (message); area = gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar)); gtk_container_add (GTK_CONTAINER (area), message); gtk_info_bar_add_button (GTK_INFO_BAR (infobar), GTK_STOCK_YES, GTK_RESPONSE_YES); gtk_info_bar_add_button (GTK_INFO_BAR (infobar), GTK_STOCK_NO, GTK_RESPONSE_NO); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING); tp->barlabel = message; tp->infobar = infobar; } void tabmanagergui_create_label (GuTabPage* tp, gchar* labeltext) { static unsigned count = 0; GtkRcStyle* rcstyle = NULL; GtkWidget* image = NULL; GtkHBox* hbox; tp->labelbox = gtk_event_box_new (); hbox = GTK_HBOX (gtk_hbox_new (FALSE, 0)); tp->unsavednr = ++count; gtk_event_box_set_visible_window (GTK_EVENT_BOX (tp->labelbox), FALSE); gtk_container_add (GTK_CONTAINER(tp->labelbox), GTK_WIDGET (hbox)); tp->label = GTK_LABEL (gtk_label_new (labeltext)); gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (tp->label), TRUE, TRUE, 5); tp->button = GTK_BUTTON (gtk_button_new()); image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); gtk_button_set_image (tp->button, image); g_object_set (tp->button, "relief", GTK_RELIEF_NONE, "focus-on-click", FALSE, NULL); gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (tp->button), FALSE,FALSE,0); rcstyle = gtk_rc_style_new (); rcstyle->xthickness = rcstyle->ythickness = 0; gtk_widget_modify_style (GTK_WIDGET (tp->button), rcstyle); g_object_unref (rcstyle); gtk_widget_show_all (GTK_WIDGET (hbox)); } gchar* tabmanagergui_get_labeltext (GuTabPage* tp) { const gchar* text = gtk_label_get_text (GTK_LABEL(tp->label)); return (gchar*)text; } gint tabmanagergui_replace_page (GuTabContext* tc, GuEditor* newec) { gummi->tabmanager->active_tab->editor = newec; gtk_container_remove (GTK_CONTAINER (tc->page->scrollw), GTK_WIDGET (g_active_editor->view)); editor_destroy (g_active_editor); gtk_container_add (GTK_CONTAINER (tc->page->scrollw), GTK_WIDGET (newec->view)); gtk_widget_show (GTK_WIDGET(newec->view)); int pos = gtk_notebook_page_num (g_tabnotebook, gummi->tabmanager->active_tab->page->editorbox); return pos; } void tabmanagergui_set_current_page (gint position) { gtk_notebook_set_current_page (g_tabnotebook, position); } gint tabmanagergui_get_current_page (void) { return gtk_notebook_get_current_page (g_tabnotebook); } gint tabmanagergui_get_n_pages (void) { return gtk_notebook_get_n_pages (g_tabnotebook); } void tabmanagergui_update_label (GuTabPage* tp, const gchar* text) { g_return_if_fail (tp != NULL); gtk_label_set_text (tp->label, text); if (tp->bold) tablabel_set_bold_text (tp); } void tablabel_set_bold_text (GuTabPage* tp) { gchar* markup; const gchar* cur = gtk_label_get_text (tp->label); markup = g_markup_printf_escaped ("%s", cur); gtk_label_set_markup (GTK_LABEL (tp->label), markup); g_free (markup); if (!tp->bold) tp->bold = TRUE; } gummi-0.6.5/src/gui/gui-import.c0000644000175000017500000002715212040524267013405 00000000000000/** * @file gui-import.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-import.h" #include #include #include #include "environment.h" #include "utils.h" #include "gui/gui-main.h" extern Gummi* gummi; extern GummiGui* gui; GuImportGui* importgui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuImportGui* i = g_new0 (GuImportGui, 1); i->import_panel = GTK_HBOX (gtk_builder_get_object (builder, "import_panel")); i->image_pane = GTK_VIEWPORT (gtk_builder_get_object (builder, "imp_pane_image")); i->table_pane = GTK_VIEWPORT (gtk_builder_get_object (builder, "imp_pane_table")); i->matrix_pane = GTK_VIEWPORT (gtk_builder_get_object (builder, "imp_pane_matrix")); i->biblio_pane = GTK_VIEWPORT (gtk_builder_get_object (builder, "imp_pane_biblio")); i->image_file = GTK_ENTRY (gtk_builder_get_object (builder, "image_file")); i->image_caption = GTK_ENTRY (gtk_builder_get_object (builder, "image_caption")); i->image_label = GTK_ENTRY (gtk_builder_get_object (builder, "image_label")); i->image_scale = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "image_scale")); i->scaler = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "image_scaler")); i->table_comboalign = GTK_COMBO_BOX (gtk_builder_get_object (builder, "table_comboalign")); i->table_comboborder = GTK_COMBO_BOX (gtk_builder_get_object (builder, "table_comboborder")); i->table_rows = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "table_rows")); i->table_cols = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "table_cols")); i->matrix_rows = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "matrix_rows")); i->matrix_cols = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "matrix_cols")); i->matrix_combobracket = GTK_COMBO_BOX (gtk_builder_get_object (builder,"matrix_combobracket")); i->biblio_file = GTK_ENTRY (gtk_builder_get_object (builder, "biblio_file")); gtk_adjustment_set_value (i->table_cols, 3); gtk_adjustment_set_value (i->table_rows, 3); gtk_adjustment_set_value (i->matrix_cols, 3); gtk_adjustment_set_value (i->matrix_rows, 3); return i; } /* G_MODULE_EXPORT void on_import_tabs_switch_page (GtkNotebook* notebook, GtkNotebookPage* page, guint page_num, void* user) { GList* list = NULL; list = gtk_container_get_children ( GTK_CONTAINER (g_importgui->box_image)); while (list) { gtk_container_remove (GTK_CONTAINER (g_importgui->box_image), GTK_WIDGET (list->data)); list = list->next; } list = gtk_container_get_children ( GTK_CONTAINER (g_importgui->box_table)); while (list) { gtk_container_remove (GTK_CONTAINER (g_importgui->box_table), GTK_WIDGET (list->data)); list = list->next; } list = gtk_container_get_children ( GTK_CONTAINER (g_importgui->box_matrix)); while (list) { gtk_container_remove (GTK_CONTAINER (g_importgui->box_matrix), GTK_WIDGET (list->data)); list = list->next; } list = gtk_container_get_children ( GTK_CONTAINER (g_importgui->box_biblio)); while (list) { gtk_container_remove (GTK_CONTAINER (g_importgui->box_biblio), GTK_WIDGET (list->data)); list = list->next; } switch (page_num) { case 1: gtk_container_add (GTK_CONTAINER (g_importgui->box_image), GTK_WIDGET (g_importgui->image_pane)); break; case 2: gtk_container_add (GTK_CONTAINER (g_importgui->box_table), GTK_WIDGET (g_importgui->table_pane)); break; case 3: gtk_container_add (GTK_CONTAINER (g_importgui->box_matrix), GTK_WIDGET (g_importgui->matrix_pane)); case 4: gtk_container_add (GTK_CONTAINER (g_importgui->box_biblio), GTK_WIDGET (g_importgui->biblio_pane)); break; } } */ void importgui_remove_all_panels () { GList* list = NULL; list = gtk_container_get_children ( GTK_CONTAINER (g_importgui->import_panel)); while (list) { gtk_container_remove (GTK_CONTAINER (g_importgui->import_panel), GTK_WIDGET (list->data)); list = list->next; } } G_MODULE_EXPORT void on_imp_panel_image_clicked (GtkWidget* widget, void* user) { importgui_remove_all_panels (); gtk_container_add (GTK_CONTAINER (g_importgui->import_panel), GTK_WIDGET (g_importgui->image_pane)); } G_MODULE_EXPORT void on_imp_panel_table_clicked (GtkWidget* widget, void* user) { importgui_remove_all_panels (); gtk_container_add (GTK_CONTAINER (g_importgui->import_panel), GTK_WIDGET (g_importgui->table_pane)); } G_MODULE_EXPORT void on_imp_panel_matrix_clicked (GtkWidget* widget, void* user) { importgui_remove_all_panels (); gtk_container_add (GTK_CONTAINER (g_importgui->import_panel), GTK_WIDGET (g_importgui->matrix_pane)); } G_MODULE_EXPORT void on_imp_panel_biblio_clicked (GtkWidget* widget, void* user) { importgui_remove_all_panels (); gtk_container_add (GTK_CONTAINER (g_importgui->import_panel), GTK_WIDGET (g_importgui->biblio_pane)); } G_MODULE_EXPORT void on_imp_minimize_clicked (GtkWidget* widget, void* user) { importgui_remove_all_panels (); } G_MODULE_EXPORT void on_import_table_apply_clicked (GtkWidget* widget, void* user) { GtkTextIter current; gint rows = gtk_adjustment_get_value (g_importgui->table_rows); gint cols = gtk_adjustment_get_value (g_importgui->table_cols); gint border = gtk_combo_box_get_active (g_importgui->table_comboborder); gint align = gtk_combo_box_get_active (g_importgui->table_comboalign); const gchar* text = importer_generate_table (rows, cols, border, align); editor_get_current_iter (g_active_editor, ¤t); gtk_text_buffer_begin_user_action (g_e_buffer); gtk_text_buffer_insert (g_e_buffer, ¤t, text, strlen (text)); gtk_text_buffer_end_user_action (g_e_buffer); gtk_text_buffer_set_modified (g_e_buffer, TRUE); importgui_remove_all_panels (); } G_MODULE_EXPORT void on_import_image_apply_clicked (GtkWidget* widget, void* user) { GtkTextIter current; const gchar* imagefile = gtk_entry_get_text (g_importgui->image_file); const gchar* caption = gtk_entry_get_text (g_importgui->image_caption); const gchar* label = gtk_entry_get_text (g_importgui->image_label); gdouble scale = gtk_adjustment_get_value (g_importgui->scaler); gchar* root_path = NULL; gchar* relative_path = NULL; const gchar* text = 0; if (0 != strlen (imagefile)) { if (!utils_path_exists (imagefile)) { slog (L_G_ERROR, _("%s: No such file or directory\n"), imagefile); } else { if (g_active_editor->filename) root_path = g_path_get_dirname (g_active_editor->filename); relative_path = utils_path_to_relative (root_path, imagefile); text =importer_generate_image(relative_path, caption, label, scale); editor_insert_package (g_active_editor, "graphicx"); editor_get_current_iter (g_active_editor, ¤t); gtk_text_buffer_begin_user_action (g_e_buffer); gtk_text_buffer_insert (g_e_buffer, ¤t,text,strlen (text)); gtk_text_buffer_end_user_action (g_e_buffer); gtk_text_buffer_set_modified (g_e_buffer, TRUE); importer_imagegui_set_sensitive ("", FALSE); } } importgui_remove_all_panels (); g_free (relative_path); g_free (root_path); } G_MODULE_EXPORT void on_import_matrix_apply_clicked (GtkWidget* widget, void* user) { GtkTextIter current; gint bracket = gtk_combo_box_get_active (g_importgui->matrix_combobracket); gint rows = gtk_adjustment_get_value (g_importgui->matrix_rows); gint cols = gtk_adjustment_get_value (g_importgui->matrix_cols); const gchar* text = importer_generate_matrix (bracket, rows, cols); editor_insert_package (g_active_editor, "amsmath"); editor_get_current_iter (g_active_editor, ¤t); gtk_text_buffer_begin_user_action (g_e_buffer); gtk_text_buffer_insert (g_e_buffer, ¤t, text, strlen (text)); gtk_text_buffer_end_user_action (g_e_buffer); gtk_text_buffer_set_modified (g_e_buffer, TRUE); importgui_remove_all_panels (); } G_MODULE_EXPORT void on_import_biblio_apply_clicked (GtkWidget* widget, void* user) { gchar* basename = NULL; gchar* root_path = NULL; gchar* relative_path = NULL; const gchar* filename = gtk_entry_get_text (g_importgui->biblio_file); if ((filename) && (strlen(filename) != 0)) { if (g_active_editor->filename) root_path = g_path_get_dirname (g_active_editor->filename); relative_path = utils_path_to_relative (root_path, filename); editor_insert_bib (g_active_editor, relative_path); basename = g_path_get_basename (filename); gtk_label_set_text (gummi->biblio->filenm_label, basename); g_free (relative_path); g_free (root_path); g_free (basename); gtk_entry_set_text (g_importgui->biblio_file, ""); } importgui_remove_all_panels (); } G_MODULE_EXPORT void on_image_file_activate (void) { gchar* filename = NULL; filename = get_open_filename (TYPE_IMAGE); if (filename) { importer_imagegui_set_sensitive (filename, TRUE); } g_free (filename); } G_MODULE_EXPORT void on_biblio_file_activate (GtkWidget *widget, void * user) { gchar* filename = NULL; filename = get_open_filename (TYPE_BIBLIO); if (filename) { gtk_entry_set_text (g_importgui->biblio_file, filename); } g_free (filename); } G_MODULE_EXPORT void importer_imagegui_set_sensitive (const gchar* name, gboolean mode) { gtk_widget_set_sensitive (GTK_WIDGET (g_importgui->image_label), mode); gtk_widget_set_sensitive (GTK_WIDGET (g_importgui->image_caption), mode); gtk_widget_set_sensitive (GTK_WIDGET (g_importgui->image_scale), mode); gtk_entry_set_text (g_importgui->image_file, name); gtk_entry_set_text (g_importgui->image_label, ""); gtk_entry_set_text (g_importgui->image_caption, ""); gtk_adjustment_set_value (g_importgui->scaler, 1.00); } gummi-0.6.5/src/gui/gui-snippets.c0000644000175000017500000004202012040524267013727 00000000000000/** * @file gui-snippets.c * @brief Handle snippets and provide edit/new/delete function * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui/gui-snippets.h" #include #include #include #include #include #include #include #include #include #include "environment.h" #include "gui/gui-main.h" #include "porting.h" #include "snippets.h" extern Gummi* gummi; extern GummiGui* gui; static void snippetsgui_insert_at_current(GuSnippetsGui* sc, gchar* text); GuSnippetsGui* snippetsgui_init (GtkWindow* mainwindow) { GuSnippetsGui* s = g_new0 (GuSnippetsGui, 1); GtkSourceLanguageManager* manager = NULL; GtkSourceLanguage* lang = NULL; gchar* lang_dir = NULL; gchar** langs = NULL; gchar** new_langs = NULL; gint len = 0, i = 0; GtkBuilder* builder = gtk_builder_new (); gchar* ui = g_build_filename (GUMMI_DATA, "ui", "snippets.glade", NULL); gtk_builder_add_from_file (builder, ui, NULL); gtk_builder_set_translation_domain (builder, PACKAGE); g_free (ui); s->snippetswindow = GTK_WINDOW (gtk_builder_get_object (builder, "snippetswindow")); s->snippets_tree_view = GTK_TREE_VIEW (gtk_builder_get_object (builder, "snippets_tree_view")); s->snippet_scroll = GTK_SCROLLED_WINDOW(gtk_builder_get_object (builder, "snippet_scroll")); s->tab_trigger_entry = GTK_ENTRY (gtk_builder_get_object (builder, "tab_trigger_entry")); s->accelerator_entry = GTK_ENTRY (gtk_builder_get_object (builder, "accelerator_entry")); s->list_snippets = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_snippets")); s->snippet_renderer = GTK_CELL_RENDERER_TEXT (gtk_builder_get_object (builder, "snippet_renderer")); s->button_new = GTK_BUTTON (gtk_builder_get_object (builder, "button_new_snippet")); s->button_remove = GTK_BUTTON (gtk_builder_get_object (builder, "button_remove_snippet")); /* Initialize GtkSourceView */ manager = gtk_source_language_manager_new (); lang_dir = g_build_filename (GUMMI_DATA, "snippets", NULL); langs = g_strdupv ((gchar**)gtk_source_language_manager_get_search_path ( manager)); len = g_strv_length (langs); new_langs = g_new0 (gchar*, len + 2); for (i = 0; i < len; ++i) new_langs[i] = langs[i]; new_langs[len] = lang_dir; gtk_source_language_manager_set_search_path (manager, new_langs); lang = gtk_source_language_manager_get_language (manager, "snippets"); g_strfreev (langs); g_free (new_langs); g_free (lang_dir); s->buffer = gtk_source_buffer_new_with_language (lang); s->view = GTK_SOURCE_VIEW (gtk_source_view_new_with_buffer (s->buffer)); gtk_container_add (GTK_CONTAINER (s->snippet_scroll), GTK_WIDGET (s->view)); snippetsgui_load_snippets (s); g_signal_connect (s->view, "key-release-event", G_CALLBACK (on_snippet_source_buffer_key_release), NULL); gtk_window_set_transient_for (s->snippetswindow, mainwindow); gtk_builder_connect_signals (builder, NULL); return s; } void snippetsgui_main (GuSnippetsGui* s) { gtk_widget_show_all (GTK_WIDGET (s->snippetswindow)); } static void snippetsgui_insert_at_current(GuSnippetsGui* sc, gchar* text) { GtkTextIter start; GtkTextBuffer* buffer = GTK_TEXT_BUFFER(sc->buffer); GtkTextMark* mark = gtk_text_buffer_get_insert (buffer); gtk_text_buffer_get_iter_at_mark (buffer, &start, mark); gtk_text_buffer_insert (buffer, &start, text, -1); } void snippetsgui_load_snippets (GuSnippetsGui* s) { slist* current = gummi->snippets->head; GtkTreeIter iter; gchar** configs = NULL; gtk_list_store_clear (s->list_snippets); while (current) { if (current->second) { gtk_list_store_append (s->list_snippets, &iter); configs = g_strsplit (current->first, ",", 0); gtk_list_store_set (s->list_snippets, &iter, 0, configs[2], 1, configs[0], 2, configs[1], -1); g_strfreev (configs); } current = current->next; } } void snippetsgui_move_cursor_to_row (GuSnippetsGui* s, gint row) { gchar* path_str = NULL; GtkTreePath* path = NULL; GtkTreeViewColumn* col = NULL; path_str = g_strdup_printf ("%d", (row >= 0)? row: 0); path = gtk_tree_path_new_from_string (path_str); col = gtk_tree_view_get_column (s->snippets_tree_view, 0); gtk_tree_view_set_cursor (s->snippets_tree_view, path, col, FALSE); gtk_tree_path_free (path); g_free (path_str); } void snippetsgui_update_snippet (GuSnippets* sc) { GuSnippetsGui* s = gui->snippetsgui; const gchar* new_accel = NULL; const gchar* new_key = NULL; gchar** configs = NULL; GtkTreeIter iter; GtkTreeModel* model =NULL; GtkTreeSelection* selection = NULL; slist* target = s->current; configs = g_strsplit (target->first, ",", 0); new_key = gtk_entry_get_text (s->tab_trigger_entry); new_accel = gtk_entry_get_text (s->accelerator_entry); model = GTK_TREE_MODEL (gtk_tree_view_get_model (s->snippets_tree_view)); selection = gtk_tree_view_get_selection (s->snippets_tree_view); gtk_tree_selection_get_selected (selection, &model, &iter); g_free (target->first); target->first = g_strdup_printf("%s,%s,%s", new_key, new_accel, configs[2]); gtk_list_store_set (s->list_snippets, &iter, 0, configs[2], 1, new_key, 2, new_accel, -1); /* Disconnect old accelerator */ snippets_accel_disconnect (sc, configs[0]); /* Update acceleartor */ if (strlen (new_accel)) { GClosure* new_closure = NULL;; GdkModifierType mod; guint keyval = 0; Tuple2* data = g_new0 (Tuple2, 1); Tuple2* new_closure_data = g_new0 (Tuple2, 1); data->first = (gpointer)sc; data->second = (gpointer)g_strdup (new_key); new_closure = g_cclosure_new(G_CALLBACK(snippets_accel_cb), data, NULL); new_closure_data->first = data->second; new_closure_data->second = new_closure; /* Connect new accelerator */ gtk_accelerator_parse (new_accel, &keyval, &mod); sc->closure_data = g_list_append (sc->closure_data, new_closure_data); snippets_accel_connect (sc, keyval, mod, new_closure); } g_strfreev (configs); } G_MODULE_EXPORT void on_snippetsgui_close_clicked (GtkWidget* widget, void* user) { gtk_widget_hide (GTK_WIDGET (gui->snippetsgui->snippetswindow)); snippets_save (gummi->snippets); } G_MODULE_EXPORT void on_snippetsgui_reset_clicked (GtkWidget* widget, void* user) { snippets_set_default (gummi->snippets); snippetsgui_load_snippets (gui->snippetsgui); snippetsgui_move_cursor_to_row (gui->snippetsgui, 0); } G_MODULE_EXPORT void on_snippetsgui_selected_text_clicked (GtkWidget* widget, void* user) { snippetsgui_insert_at_current(gui->snippetsgui, "$SELECTED_TEXT"); } G_MODULE_EXPORT void on_snippetsgui_filename_clicked (GtkWidget* widget, void* user) { snippetsgui_insert_at_current(gui->snippetsgui, "$FILENAME"); } G_MODULE_EXPORT void on_snippetsgui_basename_clicked (GtkWidget* widget, void* user) { snippetsgui_insert_at_current(gui->snippetsgui, "$BASENAME"); } G_MODULE_EXPORT void on_button_new_snippet_clicked (GtkWidget* widget, void* user) { GuSnippetsGui* s = gui->snippetsgui; GtkTreeIter iter; GtkTreeModel *model = NULL; GtkTreePath *path = NULL; GtkTreeViewColumn *col = NULL; gtk_list_store_append (s->list_snippets, &iter); g_object_set (s->snippet_renderer, "editable", TRUE, NULL); col = gtk_tree_view_get_column (s->snippets_tree_view, 0); model = gtk_tree_view_get_model (s->snippets_tree_view); path = gtk_tree_model_get_path (model, &iter); gtk_widget_set_sensitive (GTK_WIDGET (s->button_new), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (s->button_remove), FALSE); gtk_tree_view_set_cursor(s->snippets_tree_view, path, col, TRUE); gtk_tree_path_free (path); } G_MODULE_EXPORT void on_button_remove_snippet_clicked (GtkWidget* widget, void* user) { GuSnippetsGui* s = gui->snippetsgui; gchar* path_str = NULL; GtkTreeIter iter; GtkTreeModel* model = NULL; GtkTreePath* path = NULL; GtkTreeSelection* selection = NULL; model = gtk_tree_view_get_model (s->snippets_tree_view); selection = gtk_tree_view_get_selection (s->snippets_tree_view); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gchar* accel = NULL; gchar* config = NULL; gchar* key = NULL; gchar* name = NULL; slist* target = NULL; gtk_tree_model_get (model, &iter, 0, &name, 1, &key, 2, &accel, -1); path = gtk_tree_model_get_path (model, &iter); path_str = gtk_tree_path_to_string (path); /* Because this function is also called by on_snippet_renderer_edited * where the snippet to be remove isn't inserted into slist, we only * remove if the snippets is already in the slist */ if (widget) { config = g_strdup_printf ("%s,%s,%s", key, accel, name); target = slist_find (gummi->snippets->head, config, FALSE, FALSE); slist_remove (gummi->snippets->head, target); } /* Disconnect accelerator */ if (key) snippets_accel_disconnect (gummi->snippets, key); /* Activate previous item if the removed snippet is not the last one */ if (gtk_list_store_remove (s->list_snippets, &iter)) { snippetsgui_move_cursor_to_row (gui->snippetsgui, atoi (path_str)); } else if (gtk_tree_model_get_iter_first (model, &iter)) { snippetsgui_move_cursor_to_row(gui->snippetsgui, atoi(path_str) -1); } else { gtk_text_buffer_set_text (GTK_TEXT_BUFFER (s->buffer), "", -1); gtk_entry_set_text (s->tab_trigger_entry, ""); gtk_entry_set_text (s->accelerator_entry, ""); } g_free (accel); g_free (config); g_free (key); g_free (name); g_free (path_str); } } G_MODULE_EXPORT gboolean on_tab_trigger_entry_key_release_event (GtkEntry* entry, void* user) { GuSnippetsGui* s = gui->snippetsgui; const gchar* new_key = gtk_entry_get_text (entry); gchar* search_key = NULL; slist* index = NULL; /* Check dumplicate key */ search_key = g_strdup_printf ("%s,", new_key); index = slist_find (gummi->snippets->head, search_key, TRUE, FALSE); if (index && index != s->current) { gtk_entry_set_text (entry, ""); slog (L_G_ERROR, _("Duplicate activation tab trigger dectected! Please " "choose another one.\n")); } else { snippetsgui_update_snippet (gummi->snippets); } g_free (search_key); return FALSE; } G_MODULE_EXPORT void on_accelerator_entry_focus_in_event (GtkWidget* widget, void* user) { GuSnippetsGui* s = gui->snippetsgui; if (!strlen (gtk_entry_get_text (s->accelerator_entry))) gtk_entry_set_text (s->accelerator_entry, _("Type a new shortcut")); else gtk_entry_set_text (s->accelerator_entry, _("Type a new shortcut, or press Backspace to clear")); } G_MODULE_EXPORT void on_accelerator_entry_focus_out_event (GtkWidget* widget, void* user) { GuSnippetsGui* s = gui->snippetsgui; gchar** configs = NULL; configs = g_strsplit (s->current->first, ",", 0); gtk_entry_set_text (s->accelerator_entry, configs[1]); g_strfreev (configs); } G_MODULE_EXPORT gboolean on_accelerator_entry_key_press_event (GtkWidget* widget, GdkEventKey* event, void* user) { GuSnippetsGui* s = gui->snippetsgui; gchar* new_accel = NULL; if (event->keyval == GDK_KEY_Escape) { /* Reset */ gtk_entry_set_text (s->accelerator_entry, ""); snippetsgui_update_snippet (gummi->snippets); gtk_widget_grab_focus (GTK_WIDGET (s->snippets_tree_view)); } else if (event->keyval == GDK_KEY_BackSpace || event->keyval == GDK_KEY_Delete) { /* Remove accelerator */ gtk_entry_set_text (s->accelerator_entry, ""); snippetsgui_update_snippet (gummi->snippets); gtk_widget_grab_focus (GTK_WIDGET (s->snippets_tree_view)); } else if (gtk_accelerator_valid (event->keyval, event->state)) { /* New accelerator */ new_accel = gtk_accelerator_name (event->keyval, gtk_accelerator_get_default_mod_mask () & event->state); gtk_entry_set_text (s->accelerator_entry, new_accel); snippetsgui_update_snippet (gummi->snippets); g_free (new_accel); gtk_widget_grab_focus (GTK_WIDGET (s->snippets_tree_view)); } return TRUE; } G_MODULE_EXPORT void on_snippets_tree_view_cursor_changed (GtkTreeView* view, void* user) { GuSnippetsGui* s = gui->snippetsgui; gchar* accel = NULL; gchar* config = NULL; gchar* key = NULL; gchar* name = NULL; gchar* snippet = NULL; GtkTreeIter iter; GtkTreeModel* model = NULL; GtkTreeSelection* selection = NULL; model = GTK_TREE_MODEL (gtk_tree_view_get_model (view)); selection = gtk_tree_view_get_selection (view); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, 0, &name, 1, &key, 2, &accel, -1); /* New entry */ if (!name && !key && !accel) return; /* Record current activated snippet */ config = g_strdup_printf ("%s,%s,%s", key, accel, name); s->current = slist_find (gummi->snippets->head, config, FALSE, FALSE); snippet = snippets_get_value (gummi->snippets, key); gtk_text_buffer_set_text (GTK_TEXT_BUFFER (s->buffer), snippet, -1); gtk_entry_set_text (s->tab_trigger_entry, key); gtk_entry_set_text (s->accelerator_entry, accel); g_free (config); g_free (name); g_free (key); g_free (accel); } } G_MODULE_EXPORT void on_snippet_renderer_edited (GtkCellRendererText* renderer, gchar *path, gchar* name, void* user) { GuSnippetsGui* s = gui->snippetsgui; GtkTreeIter iter; GtkTreeModel* model = NULL; GtkTreeSelection* selection = NULL; g_object_set (renderer, "editable", FALSE, NULL); model = gtk_tree_view_get_model (s->snippets_tree_view); selection = gtk_tree_view_get_selection (s->snippets_tree_view); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_list_store_set (s->list_snippets, &iter, 0, name, 1, "", 2, "", -1); if (strlen (name)) { slist* node = g_new0 (slist, 1); node->first = g_strdup_printf (",,%s", name); node->second = g_strdup (""); gummi->snippets->head = slist_append (gummi->snippets->head, node); s->current = node; on_snippets_tree_view_cursor_changed (s->snippets_tree_view, NULL); } else { on_button_remove_snippet_clicked (NULL, NULL); } } gtk_widget_set_sensitive (GTK_WIDGET (s->button_new), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (s->button_remove), TRUE); } G_MODULE_EXPORT void on_snippet_renderer_editing_canceled (GtkCellRenderer* rend, void* user) { on_snippet_renderer_edited (GTK_CELL_RENDERER_TEXT (rend), "", "", NULL); } gboolean on_snippet_source_buffer_key_release (GtkWidget* widget, void* user) { GuSnippetsGui* s = gui->snippetsgui; GtkTextIter start, end; gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (gui->snippetsgui->buffer), &start, &end); gchar* text = gtk_text_iter_get_text (&start, &end); g_free (s->current->second); s->current->second = g_strdup (text); g_free (text); return FALSE; } gummi-0.6.5/src/gui/gui-project.h0000644000175000017500000000405312040524267013541 00000000000000/** * @file gui-project.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_PROJECT_H__ #define __GUMMI_GUI_PROJECT_H__ #include #include #include "project.h" #define g_menugui gui->menugui #define GU_PROJECT_GUI(x) ((GuProjectGui*)x) typedef struct _GuProjectGui GuProjectGui; struct _GuProjectGui { GtkListStore* list_projfiles; GtkTreeView* proj_treeview; GtkButton* proj_addbutton; GtkButton* proj_rembutton; GtkLabel* proj_name; GtkLabel* proj_path; GtkLabel* proj_nroffiles; }; GuProjectGui* projectgui_init (GtkBuilder* builder); void projectgui_enable (GuProject* pr, GuProjectGui* prgui); void projectgui_disable (GuProject* pr, GuProjectGui* prgui); GdkPixbuf* projectgui_get_status_pixbuf (int status); void projectgui_set_rootfile (gint position); int projectgui_list_projfiles (gchar* active_proj); #endif /* __GUMMI_GUI_PROJECT_H__ */ gummi-0.6.5/src/gui/gui-search.c0000644000175000017500000001160212040524267013331 00000000000000/** * @file gui-search.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui-search.h" #include #include #include "editor.h" #include "environment.h" #include "utils.h" #include "gui/gui-main.h" extern Gummi* gummi; extern GummiGui* gui; GuSearchGui* searchgui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuSearchGui* s = g_new0 (GuSearchGui, 1); s->searchwindow = GTK_WIDGET (gtk_builder_get_object (builder, "searchwindow")); s->searchentry = GTK_ENTRY (gtk_builder_get_object (builder, "searchentry")); s->replaceentry = GTK_ENTRY (gtk_builder_get_object (builder, "replaceentry")); s->matchcase = FALSE; s->backwards = FALSE; s->wholeword = FALSE; s->prev_search = NULL; s->prev_replace = NULL; g_signal_connect (s->searchentry, "changed", G_CALLBACK (on_searchgui_text_changed), NULL); return s; } void searchgui_main (GuSearchGui* gc) { gtk_entry_set_text (gc->searchentry, gc->prev_search? gc->prev_search:""); gtk_entry_set_text (gc->replaceentry, gc->prev_replace? gc->prev_replace:""); gtk_widget_grab_focus (GTK_WIDGET (gc->searchentry)); gtk_widget_show_all (GTK_WIDGET (gc->searchwindow)); slog_set_gui_parent (GTK_WINDOW (gc->searchwindow)); } G_MODULE_EXPORT void on_toggle_matchcase_toggled (GtkWidget *widget, void* user) { gui->searchgui->matchcase = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); g_active_editor->replace_activated = FALSE; } G_MODULE_EXPORT void on_toggle_wholeword_toggled (GtkWidget *widget, void* user) { gui->searchgui->wholeword = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); g_active_editor->replace_activated = FALSE; } G_MODULE_EXPORT void on_toggle_backwards_toggled (GtkWidget *widget, void* user) { gui->searchgui->backwards = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); g_active_editor->replace_activated = FALSE; } void on_searchgui_text_changed (GtkEditable *editable, void* user) { g_active_editor->replace_activated = FALSE; } G_MODULE_EXPORT gboolean on_button_searchwindow_close_clicked (GtkWidget* widget, void* user) { g_free (gui->searchgui->prev_search); g_free (gui->searchgui->prev_replace); gui->searchgui->prev_search = g_strdup (gtk_entry_get_text ( gui->searchgui->searchentry)); gui->searchgui->prev_replace = g_strdup (gtk_entry_get_text ( gui->searchgui->replaceentry)); gtk_widget_hide (GTK_WIDGET (gui->searchgui->searchwindow)); slog_set_gui_parent (GTK_WINDOW (gui->mainwindow)); return TRUE; } G_MODULE_EXPORT void on_button_searchwindow_find_clicked (GtkWidget* widget, void* user) { editor_start_search (g_active_editor, gtk_entry_get_text (gui->searchgui->searchentry), gui->searchgui->backwards, gui->searchgui->wholeword, gui->searchgui->matchcase ); } G_MODULE_EXPORT void on_button_searchwindow_replace_next_clicked (GtkWidget* widget, void* user) { editor_start_replace_next (g_active_editor, gtk_entry_get_text (gui->searchgui->searchentry), gtk_entry_get_text (gui->searchgui->replaceentry), gui->searchgui->backwards, gui->searchgui->wholeword, gui->searchgui->matchcase ); } G_MODULE_EXPORT void on_button_searchwindow_replace_all_clicked (GtkWidget* widget, void* user) { editor_start_replace_all (g_active_editor, gtk_entry_get_text (gui->searchgui->searchentry), gtk_entry_get_text (gui->searchgui->replaceentry), gui->searchgui->backwards, gui->searchgui->wholeword, gui->searchgui->matchcase ); } gummi-0.6.5/src/gui/gui-preview.c0000644000175000017500000020440612040524267013553 00000000000000/** * @file gui-preview.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui/gui-preview.h" #include #include #include #include #include #include #include #include #include #include "configfile.h" #include "constants.h" #include "gui/gui-main.h" #include "environment.h" #include "motion.h" #include "porting.h" #include "syncTeX/synctex_parser.h" /* set up uri using appropriate formatting for OS http://en.wikipedia.org/wiki/File_URI_scheme#Linux */ #ifdef WIN32 gint usize = 8; #else gint usize = 7; #endif enum { ZOOM_FIT_BOTH = 0, ZOOM_FIT_WIDTH, ZOOM_50, ZOOM_70, ZOOM_85, ZOOM_100, ZOOM_125, ZOOM_150, ZOOM_200, ZOOM_300, ZOOM_400, N_ZOOM_SIZES }; static gfloat list_sizes[] = {-1, -1, 0.50, 0.70, 0.85, 1.0, 1.25, 1.5, 2.0, 3.0, 4.0}; extern Gummi* gummi; extern GummiGui* gui; typedef struct { gint page; gint x; // of lower left corner gint y; // of lower left corner gint width; gint height; gint score; } SyncNode; static void previewgui_set_scale(GuPreviewGui* pc, gdouble scale, gdouble x, gdouble y); /* Update functions, to update cached values and gui-parameters after changes */ static void update_scaled_size(GuPreviewGui* pc); static void update_fit_scale(GuPreviewGui* pc); static void update_current_page(GuPreviewGui* pc); static void update_drawarea_size(GuPreviewGui *pc); static void update_page_sizes(GuPreviewGui* pc); static void update_prev_next_page(GuPreviewGui* pc); static void update_page_input(GuPreviewGui* pc); /* Simplicity functions for page layout */ inline static gboolean is_continuous(GuPreviewGui* pc); /* Functions for infos about the GUI */ inline static gboolean is_vscrollbar_visible(GuPreviewGui* pc); inline static gboolean is_hscrollbar_visible(GuPreviewGui* pc); /* Functions for simpler accessing of the array and struct data */ inline static gdouble get_page_height(GuPreviewGui* pc, int page); inline static gdouble get_page_width(GuPreviewGui* pc, int page); inline static gint get_document_margin(GuPreviewGui* pc); inline static gint get_page_margin(GuPreviewGui* pc); /* Other functions */ static void block_handlers_current_page(GuPreviewGui* pc); static void unblock_handlers_current_page(GuPreviewGui* pc); static void set_fit_mode(GuPreviewGui* pc, enum GuPreviewFitMode fit_mode); static gboolean on_page_input_lost_focus(GtkWidget *widget, GdkEvent *event, gpointer user_data); static gboolean on_button_pressed(GtkWidget* w, GdkEventButton* e, void* user); /* Functions for layout and painting */ static gint page_offset_x(GuPreviewGui* pc, gint page, gdouble x); static gint page_offset_y(GuPreviewGui* pc, gint page, gdouble x); static void paint_page(cairo_t *cr, GuPreviewGui* pc, gint page, gint x, gint y); static cairo_surface_t* get_page_rendering(GuPreviewGui* pc, int page); static gboolean remove_page_rendering(GuPreviewGui* pc, gint page); /* Functions for scronizing editor and preview via SyncTeX */ static gboolean synctex_run_parser(GuPreviewGui* pc, GtkTextIter *sync_to, gchar* tex_file); #if HAVE_POPPLER_PAGE_GET_SELECTED_TEXT static void synctex_filter_results(GuPreviewGui* pc, GtkTextIter *sync_to); #endif static void synctex_scroll_to_node(GuPreviewGui* pc, SyncNode* node); static SyncNode* synctex_one_node_found(GuPreviewGui* pc); static void synctex_merge_nodes(GuPreviewGui* pc); static void synctex_clear_sync_nodes(GuPreviewGui* pc); /* (Page) Layout functions */ static inline LayeredRectangle get_fov(GuPreviewGui* pc); static void update_page_positions(GuPreviewGui* pc); static gboolean layered_rectangle_intersect(const LayeredRectangle *src1, const LayeredRectangle *src2, LayeredRectangle *dest); //static gboolean layered_rectangle_union(const LayeredRectangle *src1, // const LayeredRectangle *src2, // LayeredRectangle *dest); #define page_inner(pc,i) (((pc)->pages + (i))->inner) #define page_outer(pc,i) (((pc)->pages + (i))->outer) GuPreviewGui* previewgui_init (GtkBuilder * builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuPreviewGui* p = g_new0 (GuPreviewGui, 1); GdkColor bg = {0, 0xed00, 0xec00, 0xeb00}; p->previewgui_viewport = GTK_VIEWPORT (gtk_builder_get_object (builder, "preview_vport")); p->previewgui_toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "previewgui_toolbar")); p->statuslight = GTK_WIDGET (gtk_builder_get_object (builder, "tool_statuslight")); p->drawarea = GTK_WIDGET (gtk_builder_get_object (builder, "preview_draw")); p->scrollw = GTK_WIDGET (gtk_builder_get_object (builder, "previewgui_scroll")); p->combo_sizes = GTK_COMBO_BOX (gtk_builder_get_object (builder, "combo_sizes")); p->page_next = GTK_WIDGET (gtk_builder_get_object (builder, "page_next")); p->page_prev = GTK_WIDGET (gtk_builder_get_object (builder, "page_prev")); p->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "page_label")); p->page_input = GTK_WIDGET (gtk_builder_get_object (builder, "page_input")); p->uri = NULL; p->doc = NULL; p->page_layout_single_page = GTK_RADIO_MENU_ITEM (gtk_builder_get_object (builder, "page_layout_single_page")); p->page_layout_one_column = GTK_RADIO_MENU_ITEM (gtk_builder_get_object (builder, "page_layout_one_column")); p->update_timer = 0; p->preview_on_idle = FALSE; p->hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (p->scrollw)); p->vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (p->scrollw)); gtk_widget_modify_bg (p->drawarea, GTK_STATE_NORMAL, &bg); /* Install event handlers */ gtk_widget_add_events (p->drawarea, GDK_SCROLL_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_MOTION_MASK); p->page_input_changed_handler = g_signal_connect (p->page_input, "changed", G_CALLBACK (on_page_input_changed), p); g_signal_connect (p->page_input, "focus-out-event", G_CALLBACK(on_page_input_lost_focus), p); p->combo_sizes_changed_handler = g_signal_connect (p->combo_sizes, "changed", G_CALLBACK (on_combo_sizes_changed), p); g_signal_connect (p->page_prev, "clicked", G_CALLBACK (on_prev_page_clicked), p); g_signal_connect (p->page_next, "clicked", G_CALLBACK (on_next_page_clicked), p); p->on_resize_handler = g_signal_connect (p->scrollw, "size-allocate", G_CALLBACK (on_resize), p); g_signal_connect (p->drawarea, "scroll-event", G_CALLBACK (on_scroll), p); p->on_expose_handler = g_signal_connect (p->drawarea, "expose-event", G_CALLBACK (on_expose), p); g_signal_connect (p->drawarea, "button-press-event", G_CALLBACK (on_button_pressed), p); g_signal_connect (p->drawarea, "motion-notify-event", G_CALLBACK (on_motion), p); p->hvalue_changed_handler = g_signal_connect (p->hadj, "value-changed", G_CALLBACK (on_adj_changed), p); p->vvalue_changed_handler = g_signal_connect (p->vadj, "value-changed", G_CALLBACK (on_adj_changed), p); p->hchanged_handler = g_signal_connect (p->hadj, "changed", G_CALLBACK (on_adj_changed), p); p->vchanged_handler = g_signal_connect (p->vadj, "changed", G_CALLBACK (on_adj_changed), p); /* The error panel is now imported from Glade. The following * functions re-parent the panel widgets for use in Gummi */ GtkWidget *holder = GTK_WIDGET(gtk_builder_get_object (builder, "errorwindow")); p->errorpanel = GTK_WIDGET(gtk_builder_get_object (builder, "errorpanel")); gtk_container_remove(GTK_CONTAINER(holder), p->errorpanel); g_object_unref(holder); // The scale to correct for the users DPI gdouble screen_dpi = gdk_screen_get_resolution ( gdk_screen_get_default()); /* the gdk screen functions do not work properly on win32, so we * should probably return a default value (or find an alternative)*/ if (screen_dpi == -1) screen_dpi = 96.0; gdouble poppler_scale = screen_dpi / 72.0; int i; for (i=0; ifit_mode = FIT_NONE; /* TODO: temporary measure because the config system does not look up default value if the setting is undefined */ if (STR_EQU (config_get_value("zoommode"), "")) { config_set_value("zoommode", "pagewidth"); } if (STR_EQU (config_get_value("animated_scroll"), "")) { config_set_value("animated_scroll", "always"); } if (STR_EQU (config_get_value("cache_size"), "")) { config_set_value("cache_size", "150"); } if (STR_EQU (config_get_value ("pagelayout"), "single_page")) { gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(p->page_layout_single_page), TRUE); p->pageLayout = POPPLER_PAGE_LAYOUT_SINGLE_PAGE; } else { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM( p->page_layout_one_column), TRUE); p->pageLayout = POPPLER_PAGE_LAYOUT_ONE_COLUMN; } p->sync_nodes = NULL; slog (L_INFO, "using libpoppler %s\n", poppler_get_version ()); return p; } inline static gint get_document_margin(GuPreviewGui* pc) { if (pc->pageLayout == POPPLER_PAGE_LAYOUT_SINGLE_PAGE) { return 0; } else { return DOCUMENT_MARGIN; } } inline static gint get_page_margin(GuPreviewGui* pc) { return PAGE_MARGIN; } static void block_handlers_current_page(GuPreviewGui* pc) { g_signal_handler_block(pc->hadj, pc->hvalue_changed_handler); g_signal_handler_block(pc->vadj, pc->vvalue_changed_handler); g_signal_handler_block(pc->hadj, pc->hchanged_handler); g_signal_handler_block(pc->vadj, pc->vchanged_handler); } static void unblock_handlers_current_page(GuPreviewGui* pc) { g_signal_handler_unblock(pc->hadj, pc->hvalue_changed_handler); g_signal_handler_unblock(pc->vadj, pc->vvalue_changed_handler); g_signal_handler_unblock(pc->hadj, pc->hchanged_handler); g_signal_handler_unblock(pc->vadj, pc->vchanged_handler); } inline static gboolean is_vscrollbar_visible(GuPreviewGui* pc) { return pc->scrollw->allocation.width != GTK_WIDGET(pc->previewgui_viewport)->allocation.width; } inline static gboolean is_hscrollbar_visible(GuPreviewGui* pc) { return pc->scrollw->allocation.height != GTK_WIDGET(pc->previewgui_viewport)->allocation.height; } G_MODULE_EXPORT void previewgui_page_layout_radio_changed(GtkMenuItem *radioitem, gpointer data) { //L_F_DEBUG; if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(radioitem))) { return; } GuPreviewGui* pc = gui->previewgui; PopplerPageLayout pageLayout; if (gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(pc->page_layout_single_page))) { pageLayout = POPPLER_PAGE_LAYOUT_SINGLE_PAGE; config_set_value("pagelayout", "single_page"); } else { pageLayout = POPPLER_PAGE_LAYOUT_ONE_COLUMN; config_set_value("pagelayout", "one_column"); } previewgui_set_page_layout(gui->previewgui, pageLayout); } static gboolean previewgui_animated_scroll_step(gpointer data) { //L_F_DEBUG; GuPreviewGui* pc = GU_PREVIEW_GUI(data); if (pc->ascroll_steps_left == 0) { return FALSE; } else if (pc->ascroll_steps_left == 1) { block_handlers_current_page(pc); previewgui_goto_xy (pc, pc->ascroll_end_x, pc->ascroll_end_y); unblock_handlers_current_page(pc); return FALSE; } else { pc->ascroll_steps_left -= 1; gdouble r = (2.*pc->ascroll_steps_left) / ASCROLL_STEPS - 1; gdouble r2 = r*r; gdouble rel_dist = 0.5*(ASCROLL_CONST_A * r2 * r2 * r + ASCROLL_CONST_B * r2 * r + ASCROLL_CONST_C * r) + 0.5; gdouble new_x = pc->ascroll_end_x + pc->ascroll_dist_x*rel_dist; gdouble new_y = pc->ascroll_end_y + pc->ascroll_dist_y*rel_dist; block_handlers_current_page(pc); previewgui_goto_xy (pc, new_x, new_y); unblock_handlers_current_page(pc); return TRUE; } } void previewgui_update_statuslight (const gchar* type) { gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON(gui->previewgui->statuslight), type); } static void update_fit_scale(GuPreviewGui* pc) { if (pc->fit_mode == FIT_NONE) { return; } //L_F_DEBUG; gdouble width_scaling; gdouble height_scaling; gdouble width_non_scaling; gdouble height_non_scaling; width_scaling = pc->width_pages; width_non_scaling = 2*get_document_margin(pc); if (is_continuous(pc)) { height_scaling = pc->max_page_height; height_non_scaling = 2*get_document_margin(pc); } else { height_scaling = get_page_height(pc, pc->current_page); height_non_scaling = 2*get_document_margin(pc); } gdouble full_height_scaling = pc->height_pages; gdouble full_height_non_scaling = (pc->n_pages-1) * get_page_margin(pc) + 2*get_document_margin(pc); gint spacing; GtkRequisition req; gtk_widget_style_get (pc->scrollw, "scrollbar_spacing", &spacing, NULL); // Use gtk_widget_get_preferred_size with GTK+3.0 gtk_widget_size_request(gtk_scrolled_window_get_vscrollbar( GTK_SCROLLED_WINDOW(pc->scrollw)), &req); gint vscrollbar_width = spacing + req.width; gtk_widget_size_request(gtk_scrolled_window_get_hscrollbar( GTK_SCROLLED_WINDOW(pc->scrollw)), &req); gint hscrollbar_height = spacing + req.height; #if GTK_MINOR_VERSION >= 24 // gdk_window_get_width is gtk-2.24 or higher. gint view_width_without_bar = gdk_window_get_width( pc->previewgui_viewport->view_window); gint view_height_without_bar = gdk_window_get_height( pc->previewgui_viewport->view_window); #else gint view_width_without_bar, view_height_without_bar; gdk_drawable_get_size (pc->previewgui_viewport->view_window, &view_width_without_bar, &view_height_without_bar); #endif if (gtk_widget_get_visible(gtk_scrolled_window_get_vscrollbar( GTK_SCROLLED_WINDOW(pc->scrollw)))) { view_width_without_bar += vscrollbar_width; } if (gtk_widget_get_visible(gtk_scrolled_window_get_hscrollbar( GTK_SCROLLED_WINDOW(pc->scrollw)))) { view_height_without_bar += hscrollbar_height; } gint view_width_with_bar = view_width_without_bar - vscrollbar_width; gint view_height_with_bar = view_height_without_bar - hscrollbar_height; gdouble scale_height_without_bar = (view_height_without_bar - height_non_scaling) / height_scaling; gdouble scale_full_height_without_bar = (view_height_without_bar - full_height_non_scaling) / full_height_scaling; gdouble scale_width_without_bar = (view_width_without_bar - width_non_scaling) / width_scaling; gdouble scale_height_with_bar = (view_height_with_bar - height_non_scaling) / height_scaling; gdouble scale_width_with_bar = (view_width_with_bar - width_non_scaling) / width_scaling; gdouble scale_both = MIN(scale_width_without_bar, scale_height_without_bar); gdouble scale_both_full = MIN(scale_width_without_bar, scale_full_height_without_bar); // When the preview window size is shrunk, in FIT_WIDTH and FIT_HEIGHT there // is a point right after the scrollbar has disappeared, where the document // should must not be shrunk, because the height just fits. We catch this // case here. gdouble scale_height = MAX(scale_height_with_bar, scale_both_full); gdouble scale_width = MAX(scale_width_with_bar, scale_both_full); // Now for the scale_both.... // Check if we need a bar: if (scale_full_height_without_bar < scale_both) { // We need a vsbar scale_both = MAX(scale_both_full, MIN(scale_width_with_bar, scale_height_without_bar)); } else { // We do not need a vsbar, everything is fine... } gdouble scale = pc->scale; if (pc->fit_mode == FIT_WIDTH) { scale = scale_width; } else if (pc->fit_mode == FIT_HEIGHT) { scale = scale_height; } else if (pc->fit_mode == FIT_BOTH) { scale = scale_both; } if (scale == pc->scale) { return; } slog(L_DEBUG, "Document size wrong for fitting, changing scale from %f " "to %f.\n", pc->scale, scale); // We do not really know where to center the scroll that might appear, // passing the center of the window causes the toolbar to not be darn // (don't ask me why). // Passing NAN as position to center the scrolling on, causes no // scrolling to happen (this is checked in previewgui_goto_xy) // So this is basically a bugfix - but I could not see any unwanted side // effects up till now... previewgui_set_scale(pc, scale, NAN, NAN); } inline static gboolean is_continuous(GuPreviewGui* pc) { if (pc->pageLayout == POPPLER_PAGE_LAYOUT_ONE_COLUMN) { return TRUE; } else { return FALSE; } } static gint page_offset_x(GuPreviewGui* pc, gint page, gdouble x) { if (page < 0 || page >= pc->n_pages) { return 0; } return x + (pc->width_scaled - get_page_width(pc, page)*pc->scale) / 2; } static gint page_offset_y(GuPreviewGui* pc, gint page, gdouble y) { if (page < 0 || page >= pc->n_pages) { return 0; } return y; } static void previewgui_set_current_page(GuPreviewGui* pc, gint page) { page = MAX(0, page); page = MIN(page, pc->n_pages-1); // Always run the code below, in case the document has changed //if (pc->current_page == page) { // return; //} //L_F_DEBUG; pc->current_page = page; update_page_input(pc); } static void update_page_input(GuPreviewGui* pc) { if (!gtk_widget_has_focus(pc->page_input)) { gchar* num = g_strdup_printf ("%d", pc->current_page+1); g_signal_handler_block(pc->page_input, pc->page_input_changed_handler); gtk_entry_set_text (GTK_ENTRY(pc->page_input), num); g_signal_handler_unblock(pc->page_input,pc->page_input_changed_handler); g_free (num); } update_prev_next_page(pc); } static void update_page_positions(GuPreviewGui* pc) { //L_F_DEBUG; LayeredRectangle fov = get_fov(pc); int i; if (is_continuous(pc)) { gint y = get_document_margin(pc); for (i=0; in_pages; i++) { page_inner(pc, i).y = y; page_inner(pc, i).width = get_page_width(pc, i)*pc->scale; page_inner(pc, i).x = MAX((fov.width - page_inner(pc, i).width)/2, get_document_margin(pc)); page_inner(pc, i).height = get_page_height(pc, i)*pc->scale; page_inner(pc, i).layer = 0; y += page_inner(pc, i).height + get_page_margin(pc); } y -= get_page_margin(pc); y += get_document_margin(pc); if (y < fov.height) { gint diff = (fov.height - y) / 2; for (i=0; in_pages; i++) { page_inner(pc, i).y += diff; } } } else { for (i=0; in_pages; i++) { page_inner(pc, i).height = get_page_height(pc, i)*pc->scale; page_inner(pc, i).width = get_page_width(pc, i)*pc->scale; page_inner(pc, i).y = MAX((fov.height - page_inner(pc, i).height)/2, get_document_margin(pc)); page_inner(pc, i).x = MAX((fov.width - page_inner(pc, i).width)/2, get_document_margin(pc)); page_inner(pc, i).layer = i; } } for (i=0; in_pages; i++) { page_outer(pc, i).x = page_inner(pc, i).x - 1; page_outer(pc, i).y = page_inner(pc, i).y - 1; page_outer(pc, i).width = page_inner(pc, i).width + PAGE_SHADOW_WIDTH; page_outer(pc, i).height = page_inner(pc, i).height + PAGE_SHADOW_WIDTH; page_outer(pc, i).layer = page_inner(pc, i).layer; } } static gboolean on_page_input_lost_focus(GtkWidget *widget, GdkEvent *event, gpointer user_data) { update_page_input(user_data); return FALSE; } static void update_prev_next_page(GuPreviewGui* pc) { pc->next_page = pc->current_page + 1; if (pc->next_page >= pc->n_pages) { pc->next_page = -1; } pc->prev_page = pc->current_page - 1; if (pc->prev_page < 0) { pc->prev_page = -1; } gtk_widget_set_sensitive(pc->page_prev, (pc->prev_page != -1)); gtk_widget_set_sensitive(pc->page_next, (pc->next_page != -1)); } static void update_current_page(GuPreviewGui* pc) { // Only update current page when in continuous layout... if (!is_continuous(pc)) { return; } //L_F_DEBUG; gdouble offset_y = MAX(get_document_margin(pc), (gtk_adjustment_get_page_size(pc->vadj) - pc->height_scaled)/2 ); // TODO: This can be simplified... // The page margins are just for safety... gdouble view_start_y = gtk_adjustment_get_value(pc->vadj) - get_page_margin(pc); gdouble view_end_y = view_start_y + gtk_adjustment_get_page_size(pc->vadj) + 2*get_page_margin(pc); gint page; for (page=0; page < pc->n_pages; page++) { offset_y += get_page_height(pc, page)*pc->scale + get_page_margin(pc); if (offset_y >= view_start_y) { break; } } // If the first page that is painted covers at least half the screen, // it is the current one, otherwise it is the one after that. if (offset_y <= (view_start_y+view_end_y)/2) { page += 1; } previewgui_set_current_page(pc, page); } inline static gdouble get_page_height(GuPreviewGui* pc, int page) { if (page < 0 || page >= pc->n_pages) { return -1; } return (pc->pages + page)->height; } inline static gdouble get_page_width(GuPreviewGui* pc, int page) { if (page < 0 || page >= pc->n_pages) { return -1; } return (pc->pages + page)->width; } static void previewgui_invalidate_renderings(GuPreviewGui* pc) { //L_F_DEBUG; int i; for (i = 0; i < pc->n_pages; i++) { remove_page_rendering(pc, i); } if (pc->cache_size != 0) { slog(L_ERROR, "Cleared all page renderings, but cache not empty. " "Cache size is %iB.\n", pc->cache_size); } } static gboolean remove_page_rendering(GuPreviewGui* pc, gint page) { if ((pc->pages + page)->rendering == NULL) { return FALSE; } //L_F_DEBUG; cairo_surface_destroy((pc->pages + page)->rendering); (pc->pages + page)->rendering = NULL; pc->cache_size -= page_inner(pc, page).width * page_inner(pc, page).height * BYTES_PER_PIXEL; return TRUE; } static void update_drawarea_size(GuPreviewGui *pc) { //L_F_DEBUG; gint width = 1; gint height = 1; // If the document should be fit, we set the requested size to 1 so // scrollbars will not appear. switch (pc->fit_mode) { case FIT_NONE: width = pc->width_scaled + 2*get_document_margin(pc); height = pc->height_scaled + 2*get_document_margin(pc); break; case FIT_WIDTH: height = pc->height_scaled + 2*get_document_margin(pc); break; case FIT_HEIGHT: width = pc->width_scaled + 2*get_document_margin(pc); break; case FIT_BOTH: if (is_continuous(pc)) { height = pc->height_scaled + 2*get_document_margin(pc); } break; } gtk_widget_set_size_request (pc->drawarea, width, height); // The upper values probably get updated through signals, but in some cases // this is too slow, so we do it here manually... // Minimize the number of calls to on_adjustment_changed block_handlers_current_page(pc); gtk_adjustment_set_upper(pc->hadj, (width==1) ? gtk_adjustment_get_page_size(pc->hadj) : width); gtk_adjustment_set_upper(pc->vadj, (height==1) ? gtk_adjustment_get_page_size(pc->vadj) : height); gtk_adjustment_changed(pc->hadj); unblock_handlers_current_page(pc); gtk_adjustment_changed(pc->vadj); } static void update_page_sizes(GuPreviewGui* pc) { // recalculate document properties int i; // calculate document height and width pc->height_pages = 0; for (i=0; i < pc->n_pages; i++) { pc->height_pages += get_page_height(pc, i); } pc->width_pages = 0; for (i=0; i < pc->n_pages; i++) { pc->width_pages = MAX(pc->width_pages, get_page_width(pc, i)); } pc->width_no_scale = pc->width_pages; pc->max_page_height = 0; for (i=0; i < pc->n_pages; i++) { pc->max_page_height = MAX(pc->max_page_height, get_page_height(pc, i)); } update_scaled_size(pc); update_drawarea_size(pc); update_fit_scale(pc); } void previewgui_set_page_layout(GuPreviewGui* pc, PopplerPageLayout pageLayout) { //L_F_DEBUG; if (pageLayout == POPPLER_PAGE_LAYOUT_UNSET) { return; } pc->pageLayout = pageLayout; update_page_sizes(pc); previewgui_goto_page(pc, pc->current_page); } static void set_fit_mode(GuPreviewGui* pc, enum GuPreviewFitMode fit_mode) { if (pc->fit_mode == fit_mode) { return; } //L_F_DEBUG; pc->fit_mode = fit_mode; switch (fit_mode) { case FIT_NONE: config_set_value("zoommode", "nofit"); break; case FIT_WIDTH: config_set_value("zoommode", "pagewidth"); break; case FIT_HEIGHT: config_set_value("zoommode", "pageheight"); break; case FIT_BOTH: config_set_value("zoommode", "bestfit"); break; } update_fit_scale(pc); update_page_positions(pc); } static void update_scaled_size(GuPreviewGui* pc) { //L_F_DEBUG; if (is_continuous(pc)) { pc->height_scaled = pc->height_pages*pc->scale + (pc->n_pages-1) * get_page_margin(pc); } else { pc->height_scaled = get_page_height(pc, pc->current_page) * pc->scale; } pc->width_scaled = pc->width_pages*pc->scale; } static void previewgui_set_scale(GuPreviewGui* pc, gdouble scale, gdouble x, gdouble y) { if (pc->scale == scale) { return; } //L_F_DEBUG; gdouble old_x = (gtk_adjustment_get_value(pc->hadj) + x) / (pc->width_scaled + 2*get_document_margin(pc)); gdouble old_y = (gtk_adjustment_get_value(pc->vadj) + y) / (pc->height_scaled + 2*get_document_margin(pc)); // We have to do this before changing the scale, as otherwise the cache // size would be calcualted wrong! previewgui_invalidate_renderings(pc); pc->scale = scale; update_scaled_size(pc); update_page_positions(pc); // TODO: Blocking the expose event is porbably not the best way. // It would be great if we could change all 3 porperties(hadj, vadj & scale) // at the same time. // Probably blocking the expose handler causes the gray background of the // window to be drawn - but at least we do not scroll to a different page // anymore... // Without blocking the handler, after changing the first property, e.g. // vadj, a signal is emitted that causes a redraw but still contains the // the not-updated hadj & scale values. g_signal_handler_block(pc->drawarea, pc->on_expose_handler); update_drawarea_size(pc); if (x >= 0 && y>= 0) { gdouble new_x = old_x*(pc->width_scaled + 2*get_document_margin(pc))-x; gdouble new_y = old_y*(pc->height_scaled + 2*get_document_margin(pc))-y; previewgui_goto_xy(pc, new_x, new_y); } g_signal_handler_unblock(pc->drawarea, pc->on_expose_handler); gtk_widget_queue_draw (pc->drawarea); } static void load_document(GuPreviewGui* pc, gboolean update) { //L_F_DEBUG; previewgui_invalidate_renderings(pc); g_free(pc->pages); pc->n_pages = poppler_document_get_n_pages (pc->doc); gtk_label_set_text (GTK_LABEL (pc->page_label), g_strdup_printf (_("of %d"), pc->n_pages)); pc->pages = g_new0(GuPreviewPage, pc->n_pages); int i; for (i=0; i < pc->n_pages; i++) { PopplerPage *poppler = poppler_document_get_page(pc->doc, i); GuPreviewPage *page = pc->pages + i; poppler_page_get_size(poppler, &(page->width), &(page->height)); g_object_unref(poppler); poppler = NULL; } update_page_sizes(pc); update_prev_next_page(pc); } void previewgui_set_pdffile (GuPreviewGui* pc, const gchar *uri) { //L_F_DEBUG; previewgui_cleanup_fds (pc); pc->uri = g_strdup(uri); pc->doc = poppler_document_new_from_file (pc->uri, NULL, NULL); g_return_if_fail (pc->doc != NULL); pc->restore_x = -1; pc->restore_y = -1; load_document(pc, FALSE); // This is mainly for debugging - to make sure the boxes in the preview disappear. synctex_clear_sync_nodes(pc); // Restore scale and fit mode g_signal_handler_block(pc->combo_sizes, pc->combo_sizes_changed_handler); if (STR_EQU (config_get_value ("zoommode"), "pagewidth")) { set_fit_mode(pc, FIT_WIDTH); gtk_combo_box_set_active(pc->combo_sizes, ZOOM_FIT_WIDTH); } else if (STR_EQU (config_get_value ("zoommode"), "pageheight")) { set_fit_mode(pc, FIT_HEIGHT); //gtk_combo_box_set_active(pc->combo_sizes, new_index); } else if (STR_EQU (config_get_value ("zoommode"), "bestfit")) { set_fit_mode(pc, FIT_BOTH); gtk_combo_box_set_active(pc->combo_sizes, ZOOM_FIT_BOTH); } else { set_fit_mode(pc, FIT_NONE); previewgui_set_scale(pc, list_sizes[ZOOM_100], NAN, // We pass NAN as this causes no scrolling to happen NAN); // This is checked in previewgui_goto_xy() // This might also have caused Bug #252. gtk_combo_box_set_active(pc->combo_sizes, ZOOM_100); } g_signal_handler_unblock(pc->combo_sizes, pc->combo_sizes_changed_handler); gtk_widget_queue_draw (pc->drawarea); previewgui_goto_page (pc, 0); } void previewgui_refresh (GuPreviewGui* pc, GtkTextIter *sync_to, gchar* tex_file) { //L_F_DEBUG; /* We lock the mutex to prevent previewing imcomplete PDF file, i.e * compiling. Also prevent PDF from changing (compiling) when previewing */ if (!g_mutex_trylock (gummi->motion->compile_mutex)) return; /* This line is very important, if no pdf exist, preview will fail */ if (!pc->uri || !utils_path_exists (pc->uri + usize)) goto unlock; // If no document had been loaded successfully before, force call of set_pdffile if (pc->doc == NULL) { previewgui_set_pdffile (pc, pc->uri); goto unlock; } previewgui_cleanup_fds (pc); pc->doc = poppler_document_new_from_file (pc->uri, NULL, NULL); /* release mutex and return when poppler doc is damaged or missing */ if (pc->doc == NULL) goto unlock; load_document(pc, TRUE); update_page_positions(pc); if (config_get_value ("synctex") && config_get_value ("autosync") && synctex_run_parser(pc, sync_to, tex_file)) { SyncNode *node; if ((node = synctex_one_node_found(pc)) == NULL) { // See if the nodes are so close they all fit in the window // in that case we just merge them synctex_merge_nodes(pc); } #if HAVE_POPPLER_PAGE_GET_SELECTED_TEXT if ((node = synctex_one_node_found(pc)) == NULL) { // Search for words in the pdf synctex_filter_results(pc, sync_to); } // Here we could try merging again - but only with nodes which // contained the searched text #endif // If we have only one node left/selected, scroll ot it. if ((node = synctex_one_node_found(pc)) != NULL) { synctex_scroll_to_node(pc, node); } } else { // This is mainly for debugging - to make sure the boxes in the preview disappear. synctex_clear_sync_nodes(pc); if (pc->current_page >= pc->n_pages) { previewgui_goto_page (pc, pc->n_pages-1); } } gtk_widget_queue_draw (pc->drawarea); unlock: g_mutex_unlock (gummi->motion->compile_mutex); } static gboolean synctex_run_parser(GuPreviewGui* pc, GtkTextIter *sync_to, gchar* tex_file) { if (sync_to == NULL || tex_file == NULL) { return FALSE; } // sync to position... gint line = gtk_text_iter_get_line(sync_to)+1; // SyncTeX lines are 1 based, TextBuffer lines are 0 based gint column = gtk_text_iter_get_line_offset(sync_to); slog(L_DEBUG, "Syncing to %s, line %i, column %i\n", tex_file, line, column); synctex_scanner_t sync_scanner = synctex_scanner_new_with_output_file(pc->uri, C_TMPDIR, 1); synctex_clear_sync_nodes(pc); if(synctex_display_query(sync_scanner, tex_file, line, column)>0) { synctex_node_t node; /* * SyncTeX can return several nodes. It seems best to use the last one, as * this one rarely is below (usually slighly above) the edited line. */ while ((node = synctex_next_result(sync_scanner))) { SyncNode *sn = g_new0(SyncNode, 1); sn->page = synctex_node_page(node) - 1; // syncTeX counts from 1, but poppler from 0 sn->x = synctex_node_box_visible_h(node); sn->y = synctex_node_box_visible_v(node); sn->width = synctex_node_box_visible_width(node); sn->height = synctex_node_box_visible_height(node); sn->y -= sn->height; // We want y to be the upper value pc->sync_nodes = g_slist_append(pc->sync_nodes, sn); } } synctex_scanner_free(sync_scanner); return TRUE; } #if HAVE_POPPLER_PAGE_GET_SELECTED_TEXT static void synctex_filter_results(GuPreviewGui* pc, GtkTextIter *sync_to) { // First look if we even have to filter... if (g_slist_length(pc->sync_nodes) == 0) { return; } GtkTextIter wordStart = *sync_to; int i; for (i=0; i<5; i++) { gtk_text_iter_backward_word_start(&wordStart); GtkTextIter wordEnd = wordStart; gtk_text_iter_forward_word_end(&wordEnd); if (gtk_text_iter_compare(&wordStart, &wordEnd) >= 0) { break; } gchar *word = g_strconcat("\\b", gtk_text_iter_get_text(&wordStart, &wordEnd), "\\b", NULL); //gchar *pattern g_strconcat slog(L_DEBUG, "Searching for word \"%s\"\n", word); GSList *nl = pc->sync_nodes; while (nl != NULL) { SyncNode *sn = nl->data; PopplerRectangle selection; selection.x1 = sn->x; // lower left corner selection.y1 = sn->y + sn->height; // lower left corner selection.x2 = sn->x + sn->width; // upper right corner selection.y2 = sn->y; // upper right corner PopplerPage* ppage = poppler_document_get_page(pc->doc, sn->page); gchar *node_text = poppler_page_get_selected_text(ppage, POPPLER_SELECTION_WORD, &selection); //slog(L_DEBUG, "Node contains text\"%s\"\n", node_text); if (g_regex_match_simple(word, node_text, 0, 0)) { sn->score += 1; } g_free(node_text); g_object_unref(ppage); nl = nl->next; } g_free(word); } } #endif static SyncNode* synctex_one_node_found(GuPreviewGui* pc) { if (g_slist_length(pc->sync_nodes) == 1) { SyncNode *node = g_slist_nth_data(pc->sync_nodes, 0); node->score = -1; return node; } // See if we have found a single match GSList *nl = pc->sync_nodes; gint score_max_id = -1; gint score_other = 0; gint n = 0; while (nl != NULL) { SyncNode *sn = nl->data; if (sn->score > score_other) { score_other = sn->score; score_max_id = n; } else if (sn->score == score_other) { // If we find a second node with the same score, we forget about // the first one.. score_max_id = -1; } nl = nl->next; n++; } if (score_max_id >= 0) { SyncNode *node = g_slist_nth_data(pc->sync_nodes, score_max_id); node->score = -1; return node; } return NULL; } static void synctex_merge_nodes(GuPreviewGui* pc) { gint x1 = INT_MAX; // upper left corner gint y1 = INT_MAX; // upper left corner gint x2 = -1; // lower right corner gint y2 = -1; // lower right corner gint page = -1; GSList *nl = pc->sync_nodes; while (nl != NULL) { SyncNode *sn = nl->data; slog(L_DEBUG, "Nodes (%i, %i), w=%i, h=%i, P=%i\n", sn->x, sn->y, sn->width, sn->height, sn->page); if (page == -1) { page = sn->page; } else if (page != sn->page) { return; // The Nodes are on different pages. We don't hande this for now... } x1 = MIN(x1, sn->x); y1 = MIN(y1, sn->y); x2 = MAX(x2, sn->x + sn->width); y2 = MAX(y2, sn->y + sn->height); nl = nl->next; } if ((y2-y1)*pc->scale < gtk_adjustment_get_page_size(pc->vadj)/3) { SyncNode *sn = g_new0(SyncNode, 1); sn->y = y1; sn->x = x1; sn->width = x2 - x1; sn->height = y2 - y1; sn->page = page; slog(L_DEBUG, "Merged nodes to (%i, %i), w=%i, h=%i, p=%i\n", sn->x, sn->y, sn->width, sn->height, sn->page); synctex_clear_sync_nodes(pc); pc->sync_nodes = g_slist_append(pc->sync_nodes, sn); } } static void synctex_clear_sync_nodes(GuPreviewGui* pc) { GSList *el = pc->sync_nodes; while (el != NULL) { SyncNode *node = el->data; g_free(node); node = NULL; el = el->next; } g_slist_free (pc->sync_nodes); pc->sync_nodes = NULL; } static void synctex_scroll_to_node(GuPreviewGui* pc, SyncNode* node) { gint adjpage_width = gtk_adjustment_get_page_size(pc->hadj); gint adjpage_height = gtk_adjustment_get_page_size(pc->vadj); gdouble node_x = MAX(get_document_margin(pc), (adjpage_width - pc->width_scaled) / 2); gdouble node_y; if (is_continuous(pc)) { node_y = MAX(get_document_margin(pc), (adjpage_height - pc->height_scaled) / 2); int i; for (i=0; i < node->page; i++) { node_y += get_page_height(pc, i)*pc->scale + get_page_margin(pc); } } else { gdouble height = get_page_height(pc, pc->current_page) * pc->scale; node_y = MAX(get_document_margin(pc), (adjpage_height-height)/2); } node_y += node->y * pc->scale; node_x += node->x * pc->scale; gdouble node_height = node->height * pc->scale; gdouble node_width = node->width * pc->scale; gdouble view_x = gtk_adjustment_get_value(pc->hadj); gdouble view_width = adjpage_width; gdouble view_y = gtk_adjustment_get_value(pc->vadj); gdouble view_height = adjpage_height; slog(L_DEBUG, "node: (%f, %f), w=%f, h=%f\n", node_x, node_y, node_width, node_height); slog(L_DEBUG, "view: (%f, %f), w=%f, h=%f\n", view_x, view_y, view_width, view_height); gdouble to_y; gdouble to_x; // Positioning algorithm: // The x and y coordinates are treated separately. For each, // - If the node is already within the view, do not change the view. // - Else, if the node can fit in the view, center it. // - Else, align the view to the top/left of the view. // The functions used to change the view do bounds checking, so we // don't do that here. if (node_y > view_y && node_y + node_height < view_y + view_height) { to_y = view_y; } else if (node_height < view_height) { to_y = node_y + (node_height - view_height)/2; } else { to_y = node_y; } if (node_x > view_x && node_x + node_width < view_x + view_width) { to_x = view_x; } else if (node_width < view_width) { to_x = node_x + (node_width - view_width)/2; } else { to_x = node_x; } if (!is_continuous(pc) && pc->current_page != node->page) { previewgui_goto_page (pc, node->page); previewgui_goto_xy(pc, to_x, to_y); } else { if (STR_EQU (config_get_value ("animated_scroll"), "always") || STR_EQU (config_get_value ("animated_scroll"), "autosync")) { previewgui_scroll_to_xy(pc, to_x, to_y); } else { previewgui_goto_xy(pc, to_x, to_y); } } } void previewgui_goto_page (GuPreviewGui* pc, int page) { //L_F_DEBUG; page = MAX(page, 0); page = MIN(page, pc->n_pages-1); previewgui_set_current_page(pc, page); gint i; gdouble y = 0; if (!is_continuous(pc)) { update_scaled_size(pc); update_drawarea_size(pc); } else { for (i=0; i < page; i++) { y += get_page_height(pc, i)*pc->scale + get_page_margin(pc); } } //previewgui_goto_xy(pc, page_offset_x(pc, page, 0), // page_offset_y(pc, page, y)); // We do not want to scroll horizontally. previewgui_goto_xy(pc, gtk_adjustment_get_value(pc->hadj), page_offset_y(pc, page, y)); if (!is_continuous(pc)) { gtk_widget_queue_draw (pc->drawarea); } } void previewgui_scroll_to_page (GuPreviewGui* pc, int page) { //L_F_DEBUG; if (!is_continuous(pc)) { // We do not scroll in single page mode... previewgui_goto_page(pc, page); return; } page = MAX(page, 0); page = MIN(page, pc->n_pages-1); previewgui_set_current_page(pc, page); gint i; gdouble y = 0; for (i=0; i < page; i++) { y += get_page_height(pc, i)*pc->scale + get_page_margin(pc); } //previewgui_scroll_to_xy(pc, page_offset_x(pc, page, 0), // page_offset_y(pc, page, y)); // We do not want to scroll horizontally in single paged mode... previewgui_scroll_to_xy(pc, gtk_adjustment_get_value(pc->hadj), page_offset_y(pc, page, y)); } void previewgui_goto_xy (GuPreviewGui* pc, gdouble x, gdouble y) { if (isnan(x) || isnan(y)) { return; } //L_F_DEBUG; x = CLAMP(x, 0, gtk_adjustment_get_upper(pc->hadj) - gtk_adjustment_get_page_size(pc->hadj)); y = CLAMP(y, 0, gtk_adjustment_get_upper(pc->vadj) - gtk_adjustment_get_page_size(pc->vadj)); // Minimize the number of calls to on_adjustment_changed block_handlers_current_page(pc); gtk_adjustment_set_value(pc->hadj, x); gtk_adjustment_set_value(pc->vadj, y); gtk_adjustment_value_changed(pc->hadj); unblock_handlers_current_page(pc); gtk_adjustment_value_changed(pc->vadj); } void previewgui_scroll_to_xy (GuPreviewGui* pc, gdouble x, gdouble y) { if (isnan(x) || isnan(y)) { return; } //L_F_DEBUG; x = CLAMP(x, 0, gtk_adjustment_get_upper(pc->hadj) - gtk_adjustment_get_page_size(pc->hadj)); y = CLAMP(y, 0, gtk_adjustment_get_upper(pc->vadj) - gtk_adjustment_get_page_size(pc->vadj)); pc->ascroll_steps_left = ASCROLL_STEPS; pc->ascroll_end_x = x; pc->ascroll_end_y = y; pc->ascroll_dist_x = gtk_adjustment_get_value(pc->hadj) - x; pc->ascroll_dist_y = gtk_adjustment_get_value(pc->vadj) - y; g_timeout_add (1000./25., previewgui_animated_scroll_step, pc); } void previewgui_save_position (GuPreviewGui* pc) { //L_F_DEBUG; /* update last scroll position to restore it after error mode */ pc->restore_y = gtk_adjustment_get_value(pc->vadj); pc->restore_x = gtk_adjustment_get_value(pc->hadj); block_handlers_current_page(pc); slog(L_DEBUG, "Position SAVED\n\n\n"); } void previewgui_restore_position (GuPreviewGui* pc) { //L_F_DEBUG; /* restore scroll window position to value before error mode */ /* TODO: might want to merge this with synctex funcs in future */ previewgui_goto_xy(pc, pc->restore_x, pc->restore_y); unblock_handlers_current_page(pc); } static cairo_surface_t* do_render(PopplerPage* ppage, gdouble scale, gint width, gint height) { cairo_surface_t* r = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width*scale, height*scale); cairo_t *c = cairo_create(r); cairo_scale (c, scale, scale); poppler_page_render(ppage, c); // TODO for what is this used? cairo_set_operator (c, CAIRO_OPERATOR_DEST_OVER); cairo_set_source_rgb (c, 1, 1, 1); cairo_paint (c); cairo_destroy (c); return r; } static cairo_surface_t* get_page_rendering(GuPreviewGui* pc, int page) { GuPreviewPage *p = pc->pages + page; if (p->rendering == NULL) { PopplerPage* ppage = poppler_document_get_page(pc->doc, page); p->rendering = do_render(ppage, pc->scale, p->width, p->height); g_object_unref(ppage); pc->cache_size += page_inner(pc, page).width * page_inner(pc, page).height * BYTES_PER_PIXEL; // Trigger the garbage collector to be run - it will exit if nothing is TBD. g_idle_add( (GSourceFunc) run_garbage_collector, pc); } return cairo_surface_reference(p->rendering); } void previewgui_reset (GuPreviewGui* pc) { //L_F_DEBUG; /* reset uri */ g_free (pc->uri); pc->uri = NULL; gummi->latex->modified_since_compile = TRUE; previewgui_stop_preview (pc); motion_do_compile (gummi->motion); if (config_get_value ("compile_status")) previewgui_start_preview (pc); } void previewgui_quit(GuPreviewGui* pc) { } void previewgui_cleanup_fds (GuPreviewGui* pc) { //L_F_DEBUG; if (pc->doc) { g_object_unref (pc->doc); pc->doc = NULL; } } void previewgui_start_preview (GuPreviewGui* pc) { if (STR_EQU (config_get_value ("compile_scheme"), "on_idle")) { pc->preview_on_idle = TRUE; } else { pc->update_timer = g_timeout_add_seconds ( atoi (config_get_value ("compile_timer")), motion_do_compile, gummi->motion); } } void previewgui_stop_preview (GuPreviewGui* pc) { pc->preview_on_idle = FALSE; if (pc->update_timer != 0) g_source_remove (pc->update_timer); pc->update_timer = 0; } G_MODULE_EXPORT void on_page_input_changed (GtkEntry* entry, void* user) { //L_F_DEBUG; gint newpage = atoi (gtk_entry_get_text (entry)); newpage -= 1; newpage = MAX(newpage, 0); newpage = MIN(newpage, gui->previewgui->n_pages); if (STR_EQU (config_get_value ("animated_scroll"), "always")) { previewgui_scroll_to_page (gui->previewgui, newpage); } else { previewgui_goto_page (gui->previewgui, newpage); } } G_MODULE_EXPORT void on_next_page_clicked (GtkWidget* widget, void* user) { //L_F_DEBUG; GuPreviewGui *pc = gui->previewgui; if (STR_EQU (config_get_value ("animated_scroll"), "always")) { previewgui_scroll_to_page (pc, pc->next_page); } else { previewgui_goto_page (pc, pc->next_page); } } G_MODULE_EXPORT void on_prev_page_clicked (GtkWidget* widget, void* user) { //L_F_DEBUG; GuPreviewGui *pc = gui->previewgui; if (STR_EQU (config_get_value ("animated_scroll"), "always")) { previewgui_scroll_to_page (pc, pc->prev_page); } else { previewgui_goto_page (pc, pc->prev_page); } } G_MODULE_EXPORT void on_combo_sizes_changed (GtkWidget* widget, void* user) { //L_F_DEBUG; gint index = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); if (index == 0) { set_fit_mode(gui->previewgui, FIT_BOTH); } else if (index == 1) { set_fit_mode(gui->previewgui, FIT_WIDTH); } else { set_fit_mode(gui->previewgui, FIT_NONE); previewgui_set_scale(gui->previewgui, list_sizes[index], gtk_adjustment_get_page_size(gui->previewgui->hadj)/2, gtk_adjustment_get_page_size(gui->previewgui->vadj)/2); } } static void paint_page (cairo_t *cr, GuPreviewGui* pc, gint page, gint x, gint y) { if (page < 0 || page >= pc->n_pages) { return; } //slog (L_DEBUG, "printing page %i at (%i, %i)\n", page, x, y); gdouble page_width = get_page_width(pc, page) * pc->scale; gdouble page_height = get_page_height(pc, page) * pc->scale; // Paint shadow cairo_set_source_rgb (cr, 0.302, 0.302, 0.302); cairo_rectangle (cr, x + page_width , y + PAGE_SHADOW_OFFSET , PAGE_SHADOW_WIDTH, page_height); cairo_fill (cr); cairo_rectangle (cr, x + PAGE_SHADOW_OFFSET , y + page_height, page_width - PAGE_SHADOW_OFFSET, PAGE_SHADOW_WIDTH); cairo_fill (cr); // Paint border around page cairo_set_line_width (cr, 0.5); cairo_set_source_rgb (cr, 0, 0, 0); cairo_rectangle (cr, x - 1, y - 1, page_width + 1, page_height + 1); cairo_stroke (cr); cairo_surface_t* rendering = get_page_rendering(pc, page); // Paint rendering cairo_set_source_surface (cr, rendering, x, y); cairo_paint (cr); GSList *nl = pc->sync_nodes; while (nl != NULL && in_debug_mode()) { SyncNode *sn = nl->data; if (sn->page == page) { gint mark_x = sn->x * pc->scale; gint mark_y = sn->y * pc->scale; gint mark_width = sn->width * pc->scale; gint mark_height = sn->height * pc->scale; cairo_set_line_width (cr, 1); if (sn->score < 0) { cairo_set_source_rgb (cr, 1, 0, 0); // Mark selected node red } else if (sn->score > 0) { cairo_set_source_rgb (cr, 0, 1, 0); // Mark nodes with matches green } else { cairo_set_source_rgb (cr, 0, 0, 1); // Mark other nodes blue } cairo_rectangle (cr, x+mark_x-1, y+mark_y-1, mark_width+2, mark_height+2); cairo_stroke (cr); } nl = nl->next; } cairo_surface_destroy(rendering); } static inline LayeredRectangle get_fov(GuPreviewGui* pc) { //L_F_DEBUG; LayeredRectangle fov; fov.x = gtk_adjustment_get_value(pc->hadj); fov.y = gtk_adjustment_get_value(pc->vadj); fov.width = gtk_adjustment_get_page_size(pc->hadj); // TODO: Validate this is alsways correct fov.height = gtk_adjustment_get_page_size(pc->vadj);// TODO: Validate this is alsways correct if (is_continuous(pc)) { fov.layer = 0; } else { fov.layer = pc->current_page; } return fov; } /** * Tests for the intersection of both rectangles src1 and src2. * If dest is set and there is a intersection, it will be the intersecting, * rectangle. If dest is set but src1 and src2 do not intersect, dest's width * and height will be set to 0. All other values will be undefined. Dest may be * the same as src1 or src2. * * Set dest to NULL, if you are only interested in the boolean result. */ static gboolean layered_rectangle_intersect(const LayeredRectangle *src1, const LayeredRectangle *src2, LayeredRectangle *dest) { if (src1 == NULL || src2 == NULL) { if (dest) { dest->width = 0; dest->height = 0; } return FALSE; } if (src1->layer == src2->layer) { gint dest_x = MAX (src1->x, src2->x); gint dest_y = MAX (src1->y, src2->y); gint dest_x2 = MIN (src1->x + src1->width, src2->x + src2->width); gint dest_y2 = MIN (src1->y + src1->height, src2->y + src2->height); if (dest_x2 > dest_x && dest_y2 > dest_y) { if (dest) { dest->x = dest_x; dest->y = dest_y; dest->width = dest_x2 - dest_x; dest->height = dest_y2 - dest_y; dest->layer = src1->layer; } return TRUE; } } if (dest) { dest->width = 0; dest->height = 0; } return FALSE; } /** * Calculates the union of the rectangles src1 and src2. * * Returns TRUE if both src rectangles are defined and on the same layer. * If dest is not NULL, it will be the union of both rectangles, if however the * src rectangles are on different layers, dest's layer will be undefined. */ /* static gboolean layered_rectangle_union(const LayeredRectangle *src1, const LayeredRectangle *src2, LayeredRectangle *dest) { if (src1 == NULL || src2 == NULL) { if (dest) { dest->width = 0; dest->height = 0; } return FALSE; } if (dest) { gint dest_x = MIN (src1->x, src2->x); gint dest_y = MIN (src1->y, src2->y); gint dest_x2 = MAX (src1->x + src1->width, src2->x + src2->width); gint dest_y2 = MAX (src1->y + src1->height, src2->y + src2->height); dest->x = dest_x; dest->y = dest_y; dest->width = dest_x2 - dest_x; dest->height = dest_y2 - dest_y; if (src1->layer == src2->layer) { dest->layer = src1->layer; } } if (src1->layer != src2->layer) { return FALSE; } return TRUE; }*/ gboolean run_garbage_collector(GuPreviewGui* pc) { gint max_cache_size = atoi (config_get_value ("cache_size")) * 1024 * 1024; if (pc->cache_size < max_cache_size) { return FALSE; } LayeredRectangle fov = get_fov(pc); gint first = -1; gint last = -1; gint i; for (i=0; i < pc->n_pages; i++) { if (layered_rectangle_intersect(&fov, &(page_inner(pc, i)), NULL)) { if (first == -1) { first = i; } last = i; } } if (first == -1) { slog(L_ERROR, "No pages are shown. Clearing whole cache.\n"); previewgui_invalidate_renderings(pc); } gint n=0; gint dist = MAX(first, pc->n_pages - 1 - last); for (; dist > 0; dist--) { gint up = first - dist; if (up >= 0 && up < pc->n_pages) { if (!layered_rectangle_intersect(&fov, &(page_inner(pc, up)), NULL)) { if (remove_page_rendering(pc, up)) { n += 1; } } } if (pc->cache_size < max_cache_size / 2) { break; } gint down = last + dist; if (down < pc->n_pages && down >= 0) { if (!layered_rectangle_intersect(&fov, &(page_inner(pc, down)), NULL)) { if (remove_page_rendering(pc, down)) { n += 1; } } } if (pc->cache_size < max_cache_size / 2) { break; } } if (n == 0) { slog(L_DEBUG, "Could not delete any pages from cache. All pages are " "currently visible.\n"); } else { slog(L_DEBUG, "Deleted %i pages from cache.\n", n); } return FALSE; // We only want this to run once - so always return false! } G_MODULE_EXPORT gboolean on_expose (GtkWidget* w, GdkEventExpose* e, void* user) { GuPreviewGui* pc = GU_PREVIEW_GUI(user); // slog(L_INFO, "paint document with scale %f, region (%i, %i), w=%i, // h=%i\n", e->area.x, e->area.y, e->area.width, e->area.height); //slog(L_INFO, "scale: %f", pc->scale); if (!pc->uri || !utils_path_exists (pc->uri + usize)) { return FALSE; } gdouble page_width = gtk_adjustment_get_page_size(pc->hadj); gdouble page_height = gtk_adjustment_get_page_size(pc->vadj); gdouble offset_x = MAX(get_document_margin(pc), (page_width - pc->width_scaled) / 2); cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(w)); if (is_continuous(pc)) { gdouble offset_y = MAX(get_document_margin(pc), (page_height - pc->height_scaled) / 2); // The page margins are just for safety... gdouble view_start_y = gtk_adjustment_get_value(pc->vadj) - get_page_margin(pc); gdouble view_end_y = view_start_y + page_height + 2*get_page_margin(pc); int i; for (i=0; i < pc->n_pages; i++) { offset_y += get_page_height(pc, i)*pc->scale + get_page_margin(pc); if (offset_y >= view_start_y) { break; } } // We added one offset to many... offset_y -= get_page_height(pc, i)*pc->scale + get_page_margin(pc); for (; i < pc->n_pages; i++) { paint_page(cr, pc, i, page_offset_x(pc, i, offset_x), page_offset_y(pc, i, offset_y)); offset_y += get_page_height(pc, i)*pc->scale + get_page_margin(pc); if (offset_y > view_end_y) { break; } } } else { // "Page" Layout... gdouble height = get_page_height(pc, pc->current_page) * pc->scale; gdouble offset_y = MAX(get_document_margin(pc), (page_height-height)/2); paint_page(cr, pc, pc->current_page, page_offset_x(pc, pc->current_page, offset_x), page_offset_y(pc, pc->current_page, offset_y)); } cairo_destroy (cr); return TRUE; } G_MODULE_EXPORT void on_adj_changed(GtkAdjustment *adjustment, gpointer user) { //L_F_DEBUG; GuPreviewGui* pc = GU_PREVIEW_GUI(user); // Abort any animated scrolls that might be running... pc->ascroll_steps_left = 0; update_current_page(pc); } G_MODULE_EXPORT gboolean on_scroll (GtkWidget* w, GdkEventScroll* e, void* user) { //L_F_DEBUG; GuPreviewGui* pc = GU_PREVIEW_GUI(user); if (!pc->uri || !utils_path_exists (pc->uri + usize)) return FALSE; if (GDK_CONTROL_MASK & e->state) { gdouble old_scale = pc->scale; gdouble new_scale = -1; gint new_index = -1; int i; // we only go through the percentage entrys - the fit entrys are not // always uo to date... for (i=0; i old_scale && e->direction == GDK_SCROLL_UP) { if (new_index == -1 || list_sizes[i] < new_scale) { new_scale = list_sizes[i]; new_index = i; } } else if (list_sizes[i] < old_scale && e->direction == GDK_SCROLL_DOWN) { if (new_index == -1 || list_sizes[i] > new_scale) { new_scale = list_sizes[i]; new_index = i; } } } if (new_index != -1) { previewgui_set_scale(pc, list_sizes[new_index], e->x - gtk_adjustment_get_value(pc->hadj), e->y - gtk_adjustment_get_value(pc->vadj)); set_fit_mode(pc, FIT_NONE); g_signal_handler_block(pc->combo_sizes, pc->combo_sizes_changed_handler); gtk_combo_box_set_active(pc->combo_sizes, new_index); g_signal_handler_unblock(pc->combo_sizes, pc->combo_sizes_changed_handler); } update_current_page(pc); return TRUE; } else if (e->state & GDK_SHIFT_MASK) { // Shift+Wheel scrolls the in the perpendicular direction if (e->direction == GDK_SCROLL_UP) e->direction = GDK_SCROLL_LEFT; else if (e->direction == GDK_SCROLL_LEFT) e->direction = GDK_SCROLL_UP; else if (e->direction == GDK_SCROLL_DOWN) e->direction = GDK_SCROLL_RIGHT; else if (e->direction == GDK_SCROLL_RIGHT) e->direction = GDK_SCROLL_DOWN; e->state &= ~GDK_SHIFT_MASK; } else { // Scroll if no scroll bars visible if (!is_vscrollbar_visible(pc)) { switch (e->direction) { case GDK_SCROLL_UP: if (pc->prev_page != -1) { previewgui_goto_page (pc, pc->prev_page); } break; case GDK_SCROLL_DOWN: if (pc->next_page != -1) { previewgui_goto_page (pc, pc->next_page); } break; default: // Do nothing break; } return TRUE; } } return FALSE; } static void draw2page(GuPreviewGui* pc, gint dx, gint dy, gint *pp, gint *px, gint *py) { *px = dx; *py = dy; *pp = 0; gint adjpage_width = gtk_adjustment_get_page_size(pc->hadj); gint adjpage_height = gtk_adjustment_get_page_size(pc->vadj); *px -= MAX(get_document_margin(pc), (adjpage_width - pc->width_scaled) / 2); if (is_continuous(pc)) { *py -= MAX(get_document_margin(pc), (adjpage_height - pc->height_scaled) / 2); int i; for (i=0; i < pc->n_pages-1; i++) { gint pheight = get_page_height(pc, i)*pc->scale + get_page_margin(pc); if (*py > pheight) { *py -= pheight; *pp += 1; } } } else { gdouble height = get_page_height(pc, pc->current_page) * pc->scale; *py -= MAX(get_document_margin(pc), (adjpage_height-height)/2); *pp += pc->current_page; } //TODO Check if we still are inside a page... } G_MODULE_EXPORT gboolean on_button_pressed(GtkWidget* w, GdkEventButton* e, void* user) { GuPreviewGui* pc = GU_PREVIEW_GUI(user); if (!pc->uri || !utils_path_exists (pc->uri + usize)) return FALSE; // Check where the user clicked gint page; gint x; gint y; draw2page(pc, e->x, e->y, &page, &x, &y); if (e->state & GDK_CONTROL_MASK) { slog(L_DEBUG, "Ctrl-click to %i, %i\n", x, y); synctex_scanner_t sync_scanner = synctex_scanner_new_with_output_file(pc->uri, C_TMPDIR, 1); if(synctex_edit_query(sync_scanner, page+1, x/pc->scale, y/pc->scale)>0) { synctex_node_t node; /* * SyncTeX can return several nodes. It seems best to use the last one, as * this one rarely is below (usually slighly above) the edited line. */ if ((node = synctex_next_result(sync_scanner))) { const gchar *file = synctex_scanner_get_name(sync_scanner, synctex_node_tag(node)); gint line = synctex_node_line(node); slog(L_DEBUG, "File \"%s\", Line %i\n", file, line); // FIXME: Go to the editor containing the file "file"! editor_scroll_to_line(gummi_get_active_editor(), line-1); } } synctex_scanner_free(sync_scanner); } pc->prev_x = e->x; pc->prev_y = e->y; return FALSE; } G_MODULE_EXPORT gboolean on_motion (GtkWidget* w, GdkEventMotion* e, void* user) { GuPreviewGui* pc = GU_PREVIEW_GUI(user); if (!pc->uri || !utils_path_exists (pc->uri + usize)) return FALSE; gdouble new_x = gtk_adjustment_get_value (pc->hadj) - (e->x - pc->prev_x); gdouble new_y = gtk_adjustment_get_value (pc->vadj) - (e->y - pc->prev_y); previewgui_goto_xy(pc, new_x, new_y); return TRUE; } G_MODULE_EXPORT gboolean on_resize (GtkWidget* w, GdkRectangle* r, void* user) { //L_F_DEBUG; GuPreviewGui* pc = GU_PREVIEW_GUI(user); if (!pc->uri || !utils_path_exists (pc->uri + usize)) return FALSE; LayeredRectangle fov = get_fov(pc); gdouble x_rel = (gdouble) (fov.x + fov.width/2) / pc->width_scaled; gdouble y_rel = (gdouble) (fov.y + fov.height/2) / pc->height_scaled; update_fit_scale(pc); update_page_positions(pc); fov = get_fov(pc); previewgui_goto_xy (pc, x_rel*pc->width_scaled - fov.width/2, y_rel*pc->height_scaled - fov.height/2); return FALSE; } gummi-0.6.5/src/gui/gui-menu.h0000644000175000017500000000336512040524267013044 00000000000000/** * @file gui-menu.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_MENU_H__ #define __GUMMI_GUI_MENU_H__ #include #include #define g_menugui gui->menugui #define GU_MENU_GUI(x) ((GuMenuGui*)x) typedef struct _GuMenuGui GuMenuGui; struct _GuMenuGui { GtkMenuItem* menu_projcreate; GtkMenuItem* menu_projopen; GtkMenuItem* menu_projclose; }; GuMenuGui* menugui_init (GtkBuilder* builder); void on_menu_close_activate (GtkWidget *widget, void* user); #ifdef WIN32 void on_menu_donate_activate (GtkWidget *widget, void* user); #endif #endif /* __GUMMI_GUI_MENU_H__ */ gummi-0.6.5/src/gui/gui-import.h0000644000175000017500000000444712040524267013414 00000000000000/** * @file gui-import.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_IMPORT_H__ #define __GUMMI_GUI_IMPORT_H__ #include #include #define g_importgui gui->importgui #define GU_IMPORT_GUI(x) ((GuImportGui*)x) typedef struct _GuImportGui GuImportGui; struct _GuImportGui { GtkHBox* import_panel; GtkViewport* image_pane; GtkViewport* table_pane; GtkViewport* matrix_pane; GtkViewport* biblio_pane; GtkEntry* image_file; GtkEntry* image_caption; GtkEntry* image_label; GtkSpinButton* image_scale; GtkAdjustment* scaler; GtkComboBox* table_comboalign; GtkComboBox* table_comboborder; GtkAdjustment* table_rows; GtkAdjustment* table_cols; GtkAdjustment* matrix_rows; GtkAdjustment* matrix_cols; GtkComboBox* matrix_combobracket; GtkEntry* biblio_file; }; GuImportGui* importgui_init (GtkBuilder* builder); void on_import_tabs_switch_page (GtkNotebook* notebook, GtkNotebookPage* page, guint page_num, void* user); void on_image_file_activate (void); void importer_imagegui_set_sensitive (const gchar* name, gboolean mode); #endif /* __GUMMI_GUI_IMPORT_H__ */ gummi-0.6.5/src/gui/gui-infoscreen.c0000644000175000017500000001244512040524267014225 00000000000000/** * @file gui-infoscreen.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "gui/gui-infoscreen.h" #include #include #include "environment.h" #include "gui/gui-tabmanager.h" #include "gui/gui-main.h" extern GummiGui* gui; static const gchar* get_infoheader (int id); static const gchar* get_infodetails (int id); GuInfoscreenGui* infoscreengui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuInfoscreenGui* is = g_new0 (GuInfoscreenGui, 1); is->viewport = GTK_VIEWPORT (gtk_builder_get_object (builder, "preview_vport")); is->errorpanel = GTK_WIDGET(gtk_builder_get_object (builder, "errorpanel")); is->drawarea = GTK_WIDGET (gtk_builder_get_object (builder, "preview_draw")); is->header = GTK_LABEL (gtk_builder_get_object (builder, "error_header")); is->image = GTK_IMAGE (gtk_builder_get_object (builder, "error_image")); is->details = GTK_LABEL (gtk_builder_get_object (builder, "error_details")); return is; } void infoscreengui_enable (GuInfoscreenGui *is, const gchar *msg) { GList* list = NULL; list = gtk_container_get_children (GTK_CONTAINER (is->viewport)); infoscreengui_set_message (is, msg); while (list) { gtk_container_remove (GTK_CONTAINER (is->viewport), GTK_WIDGET (list->data)); list = list->next; } gtk_container_add (GTK_CONTAINER (is->viewport), GTK_WIDGET (is->errorpanel)); gtk_widget_show_all (GTK_WIDGET (is->viewport)); gtk_widget_set_sensitive (gui->previewgui->previewgui_toolbar, FALSE); } void infoscreengui_disable (GuInfoscreenGui *is) { g_object_ref (is->errorpanel); gtk_container_remove (GTK_CONTAINER (is->viewport), GTK_WIDGET (is->errorpanel)); gtk_container_add (GTK_CONTAINER (is->viewport), GTK_WIDGET (is->drawarea)); gtk_widget_set_sensitive (gui->previewgui->previewgui_toolbar, TRUE); } void infoscreengui_set_message (GuInfoscreenGui *is, const gchar *msg) { gtk_widget_set_visible (GTK_WIDGET(is->image), TRUE); if (STR_EQU (msg, "compile_error")) { gtk_label_set_text (is->header, get_infoheader(1)); gtk_label_set_text (is->details, get_infodetails(1)); } else if (STR_EQU (msg, "document_error")) { gtk_label_set_text (is->header, get_infoheader(2)); gtk_label_set_text (is->details, get_infodetails(2)); } else if (STR_EQU (msg, "program_error")) { gtk_label_set_text (is->header, get_infoheader(3)); gtk_label_set_text (is->details, get_infodetails(3)); } else { gtk_label_set_text (is->header, get_infoheader(4)); gtk_label_set_text (is->details, get_infodetails(4)); gtk_widget_set_visible (GTK_WIDGET(is->image), FALSE); } } static const gchar* get_infoheader (int id) { switch (id) { case 1: return _("PDF preview could not initialise."); case 2: return _("Document appears to be empty or invalid."); case 3: return _("Compilation program is missing."); case 4: return ""; default: return "This should not have happened, bug!"; } } static const gchar* get_infodetails (int id) { switch (id) { case 1: return _( "The active document contains errors. The live preview\n" "function will resume automatically once these errors\n" "are resolved. Additional information is available on\n" "the Build log tab.\n"); case 2: return _( "The document that is currently active appears to be an\n" "an invalid LaTeX file. You can continue working on it,\n" "load the default text or use the Project menu to add\n" "it to an active project.\n"); case 3: return _( "The selected compilation program could not be located.\n" "Please restore the program or select an alternative\n" "typesetter command from the Preferences menu. The\n" "live preview function will not resume until Gummi\n" "is restarted.\n"); case 4: return (""); default: return "This should not have happened, bug!"; } } gummi-0.6.5/src/gui/gui-preview.h0000644000175000017500000001442412040524267013557 00000000000000/** * @file gui-preview.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_GUI_PREVIEW_H__ #define __GUMMI_GUI_PREVIEW_H__ #include #include #define PAGE_MARGIN 14 #define DOCUMENT_MARGIN (PAGE_MARGIN/2) #define PAGE_SHADOW_WIDTH 4 #define PAGE_SHADOW_OFFSET 4 #define ASCROLL_STEPS 25 #define ASCROLL_CONST_C (1.5) #define ASCROLL_CONST_B (-2*ASCROLL_CONST_C + 5./2) #define ASCROLL_CONST_A (ASCROLL_CONST_C - 3./2) #define BYTES_PER_PIXEL 4 /** * These "Layered" Rectangles are just like normal GdkRectangles, except the * have a layer assigned. 2 Rectangles can only intersect or be unioned if they * are on the same layer. * * In the future these structs should be used to describe the position of a * page. In continuous mode all pages are on the same layer (0). In Paged mode, * they are on different layers. The field of view (fov) rectangle, that * describes the portion of the preview that is currently visible is on the * layer/page that should currently be displayed (0 in continuous mode). */ typedef struct _LayeredRectangle LayeredRectangle; struct _LayeredRectangle { gint x; gint y; gint width; gint height; gint layer; }; enum GuPreviewFitMode { FIT_NONE = 0, FIT_WIDTH, FIT_HEIGHT, FIT_BOTH }; #define GU_PREVIEW_PAGE(x) ((GuPreviewPage*)(x)) typedef struct _GuPreviewPage GuPreviewPage; struct _GuPreviewPage { cairo_surface_t* rendering; double height; double width; LayeredRectangle inner; // Position of the page itself LayeredRectangle outer; // Position of the page + border & shadow }; #define GU_PREVIEW_GUI(x) ((GuPreviewGui*)x) typedef struct _GuPreviewGui GuPreviewGui; struct _GuPreviewGui { PopplerDocument* doc; GtkViewport* previewgui_viewport; GtkWidget* previewgui_toolbar; GtkWidget* statuslight; GtkWidget* drawarea; GtkWidget* page_next; GtkWidget* page_prev; GtkWidget* page_label; GtkWidget* page_input; GtkWidget* scrollw; GtkWidget* errorpanel; GtkComboBox* combo_sizes; gulong page_input_changed_handler; gulong combo_sizes_changed_handler; gulong on_resize_handler; gulong on_expose_handler; gulong hvalue_changed_handler; gulong vvalue_changed_handler; gulong hchanged_handler; gulong vchanged_handler; GtkRadioMenuItem *page_layout_single_page; GtkRadioMenuItem *page_layout_one_column; gchar *uri; gint update_timer; gboolean preview_on_idle; GtkAdjustment* hadj; GtkAdjustment* vadj; gdouble prev_x; gdouble prev_y; gdouble restore_x; gdouble restore_y; gint n_pages; gint current_page; gdouble max_page_height; gdouble height_pages; gdouble width_pages; gdouble height_scaled; gdouble width_scaled; gdouble width_left; gdouble width_no_scale; gdouble scale; PopplerPageLayout pageLayout; GuPreviewPage *pages; enum GuPreviewFitMode fit_mode; gint cache_size; gint document_width_scaling; gint document_height_scaling; gint document_width_non_scaling; gint document_height_non_scaling; gint next_page; gint prev_page; gint ascroll_steps_left; gint ascroll_end_x; gint ascroll_end_y; gint ascroll_dist_x; gint ascroll_dist_y; GSList *sync_nodes; }; GuPreviewGui* previewgui_init (GtkBuilder * builder); void previewgui_update_statuslight (const gchar* type); void previewgui_set_pdffile (GuPreviewGui* prev, const gchar *uri); void previewgui_refresh (GuPreviewGui* prev, GtkTextIter *sync_to, gchar* tex_file); void previewgui_set_pagedata (GuPreviewGui* prev); void previewgui_goto_page (GuPreviewGui* prev, int page_number); void previewgui_scroll_to_page (GuPreviewGui* pc, int page); void previewgui_goto_xy (GuPreviewGui* pc, gdouble x, gdouble y); void previewgui_scroll_to_xy (GuPreviewGui* pc, gdouble x, gdouble y); void previewgui_save_position (GuPreviewGui* pc); void previewgui_restore_position (GuPreviewGui* pc); void previewgui_reset (GuPreviewGui* pc); void previewgui_cleanup_fds (GuPreviewGui* pc); void previewgui_start_preview (GuPreviewGui* pc); void previewgui_drawarea_resize (GuPreviewGui* pc); void previewgui_stop_preview (GuPreviewGui* pc); void on_page_input_changed (GtkEntry* entry, void* user); void on_next_page_clicked (GtkWidget* widget, void* user); void on_prev_page_clicked (GtkWidget* widget, void* user); void on_combo_sizes_changed (GtkWidget* widget, void* user); gboolean on_expose (GtkWidget* w, GdkEventExpose* e, void* user); gboolean on_scroll (GtkWidget* w, GdkEventScroll* e, void* user); gboolean on_motion (GtkWidget* w, GdkEventMotion* e, void* user); gboolean on_resize (GtkWidget* w, GdkRectangle* r, void* user); gboolean on_scroll_child(GtkScrolledWindow *scrolledwindow, GtkScrollType type, gboolean isHorizontal, gpointer *user); void on_adj_changed(GtkAdjustment *adjustment, gpointer user); void previewgui_page_layout_radio_changed(GtkMenuItem *radioitem,gpointer data); void previewgui_set_page_layout(GuPreviewGui* pc, PopplerPageLayout pageLayout); gboolean run_garbage_collector(GuPreviewGui* pc); #endif /* __GUMMI_GUI_PREVIEW_H__ */ gummi-0.6.5/src/latex.c0000644000175000017500000002274012040524270011632 00000000000000/** * @file latex.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "latex.h" #include #include #include #include #include #include #include #include "configfile.h" #include "constants.h" #include "editor.h" #include "environment.h" #include "external.h" #include "gui/gui-preview.h" #include "utils.h" #include "compile/rubber.h" #include "compile/latexmk.h" #include "compile/texlive.h" extern Gummi* gummi; GuLatex* latex_init (void) { GuLatex* l = g_new0 (GuLatex, 1); l->compilelog = NULL; l->modified_since_compile = FALSE; l->tex_version = texlive_init (); rubber_init (); latexmk_init (); /* TODO: Temp hard set of compilation options for migrating configs */ if (strlen(config_get_value("typesetter")) == 0) config_set_value("typesetter", "pdflatex"); if (strlen(config_get_value("compile_steps")) == 0) config_set_value("compile_steps", "texpdf"); return l; } gboolean latex_method_active (gchar* method) { if (STR_EQU (config_get_value ("compile_steps"), method)) { return TRUE; } return FALSE; } gchar* latex_update_workfile (GuLatex* lc, GuEditor* ec) { gchar *text; text = editor_grab_buffer (ec); // bit of a dirty hack, but only write the buffer content when // there is not a recovery in progress, otherwise the workfile // will be overwritten with empty text if (!STR_EQU (text, "")) { utils_set_file_contents (ec->workfile, text, -1); } return text; } gchar* latex_set_compile_cmd (GuEditor* ec) { const gchar* method = config_get_value ("compile_steps"); gchar* combined = NULL; gchar* texcmd = NULL; if (rubber_active()) { texcmd = rubber_get_command (method, ec->workfile); } else if (latexmk_active()) { texcmd = latexmk_get_command (method, ec->workfile, ec->basename); } else { texcmd = texlive_get_command (method, ec->workfile, ec->basename); } combined = g_strdup_printf("%s %s", C_TEXSEC, texcmd); g_free(texcmd); return combined; } gchar* latex_analyse_log (gchar* log, gchar* filename, gchar* basename) { /* Rubber does not post the pdftex compilation output to tty, so we will * have to open the log file and retrieve it I guess */ if (rubber_active()) { gchar* logpath = NULL; if (filename == NULL) { logpath = g_strconcat (basename, ".log", NULL); } else { logpath = g_strconcat (C_TMPDIR, C_DIRSEP, g_path_get_basename(basename), ".log", NULL); } g_file_get_contents (logpath, &log, NULL, NULL); } return log; } void latex_analyse_errors (GuLatex* lc) { gchar* result = NULL; GError* err = NULL; GRegex* match_str = NULL; GMatchInfo* match_info; if (! (match_str = g_regex_new (":(\\d+):", G_REGEX_DOTALL, 0, &err))) { slog (L_ERROR, "g_regex_new (): %s\n", err->message); g_error_free (err); return; } if (lc->compilelog == NULL) printf("null\n"); if (g_regex_match (match_str, lc->compilelog, 0, &match_info)) { gint count = 0; while (g_match_info_matches (match_info)) { if (count + 1 == BUFSIZ) break; result = g_match_info_fetch (match_info, 1); lc->errorlines[count++] = atoi (result); g_free (result); g_match_info_next (match_info, NULL); } } if (!lc->errorlines[0]) lc->errorlines[0] = -1; g_match_info_free (match_info); g_regex_unref (match_str); } gboolean latex_update_pdffile (GuLatex* lc, GuEditor* ec) { static glong cerrors = 0; gchar* basename = ec->basename; gchar* filename = ec->filename; if (!lc->modified_since_compile) return cerrors == 0; const gchar* typesetter = config_get_value ("typesetter"); if (!external_exists (typesetter)) { /* Set to default first detected typesetter */ config_set_value ("typesetter", "pdflatex"); } /* create compile command */ gchar* curdir = g_path_get_dirname (ec->workfile); gchar *command = latex_set_compile_cmd (ec); g_free (lc->compilelog); memset (lc->errorlines, 0, BUFSIZ); /* run pdf compilation */ Tuple2 cresult = utils_popen_r (command, curdir); cerrors = (glong)cresult.first; gchar* coutput = (gchar*)cresult.second; lc->compilelog = latex_analyse_log (coutput, filename, basename); lc->modified_since_compile = FALSE; /* find error line */ if (cerrors && (g_utf8_strlen (lc->compilelog, -1) != 0)) { latex_analyse_errors (lc); } g_free (command); return cerrors == 0; } void latex_update_auxfile (GuLatex* lc, GuEditor* ec) { gchar* dirname = g_path_get_dirname (ec->workfile); gchar* command = g_strdup_printf ("%s %s " "--draftmode " "-interaction=nonstopmode " "--output-directory=\"%s\" \"%s\"", C_TEXSEC, config_get_value ("typesetter"), C_TMPDIR, ec->workfile); Tuple2 res = utils_popen_r (command, dirname); g_free (dirname); g_free (res.second); g_free (command); } int latex_remove_auxfile (GuEditor* ec) { gchar* auxfile = NULL; int res = -1; // TODO: merge this into function with several other instances. // for instance the lines in analyse_log if (ec->filename == NULL) { auxfile = g_strconcat (ec->basename, ".aux", NULL); } else { auxfile = g_strconcat (C_TMPDIR, C_DIRSEP, g_path_get_basename(ec->basename), ".aux", NULL); } // TODO: extend for other build files if (g_file_test (auxfile, G_FILE_TEST_EXISTS)) { res = g_remove (auxfile); } g_free (auxfile); return res; } gboolean latex_precompile_check (gchar* editortext) { /* both documentclass and documentstyle appear to be valid. * http://pangea.stanford.edu/computing/unix/formatting/parts.php * TOD: Improve and add document scan tags and make compatible with * upcoming master/slave document system */ // TODO: see issue #269 gboolean class = utils_subinstr("\\documentclass", editortext, FALSE); gboolean style = utils_subinstr("\\documentstyle", editortext, FALSE); gboolean input = utils_subinstr("\\input", editortext, FALSE); return (class || style || input); } void latex_export_pdffile (GuLatex* lc, GuEditor* ec, const gchar* path, gboolean prompt_overrite) { gchar* savepath = NULL; GError* err = NULL; gint ret = 0; if (!STR_EQU (path + strlen (path) -4, ".pdf")) savepath = g_strdup_printf ("%s.pdf", path); else savepath = g_strdup (path); if (prompt_overrite && utils_path_exists (savepath)) { ret = utils_yes_no_dialog (_("The file already exists. Overwrite?")); if (GTK_RESPONSE_YES != ret) { g_free (savepath); return; } } if (!utils_copy_file (ec->pdffile, savepath, &err)) { slog (L_G_ERROR, _("Unable to export PDF file.\n\n%s"), err->message); g_error_free (err); } g_free (savepath); } gboolean latex_run_makeindex (GuEditor* ec) { int retcode; if (g_find_program_in_path ("makeindex")) { gchar* command = g_strdup_printf ("%s makeindex \"%s.idx\"", C_TEXSEC, g_path_get_basename(ec->basename)); Tuple2 res = utils_popen_r (command, C_TMPDIR); retcode = (glong)res.first; g_free (command); } if (retcode == 0) return TRUE; return FALSE; } gboolean latex_can_synctex (void) { if (gummi->latex->tex_version >= 2008) { if (!rubber_active()) { return TRUE; } } return FALSE; } gboolean latex_use_synctex (void) { return (config_get_value("synctex") && config_get_value("autosync")); } gboolean latex_use_shellescaping (void) { if (config_get_value ("shellescape")) return TRUE; return FALSE; } gummi-0.6.5/src/main.c0000644000175000017500000001275712040524270011450 00000000000000/** * @file gummi.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include "biblio.h" #include "configfile.h" #include "environment.h" #include "external.h" #include "gui/gui-main.h" #include "iofunctions.h" #include "motion.h" #include "project.h" #include "signals.h" #include "snippets.h" #include "tabmanager.h" #include "template.h" #include "utils.h" extern Gummi* gummi; extern GummiGui* gui; static int debug = 0; static int showversion = 0; static GOptionEntry entries[] = { { (const gchar*)"debug", (gchar)'d', 0, G_OPTION_ARG_NONE, &debug, (gchar*)"show debug info", NULL}, { (const gchar*)"version", (gchar)'v', 0, G_OPTION_ARG_NONE, &showversion, (gchar*)"show version and exit", NULL}, { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL } }; void on_window_destroy (GtkObject *object, gpointer user_data) { gtk_main_quit (); } int main (int argc, char *argv[]) { /* set up i18n */ bindtextdomain (PACKAGE, GUMMI_LOCALES); setlocale (LC_ALL, ""); textdomain (PACKAGE); GError* error = NULL; GOptionContext* context = g_option_context_new ("files"); g_option_context_add_main_entries (context, entries, PACKAGE); g_option_context_parse (context, &argc, &argv, &error); if (error) g_error("%s\n", error->message); if (showversion) { printf("Gummi %s\n", PACKAGE_VERSION); return 0; } /* initialize GTK */ g_thread_init (NULL); gdk_threads_init (); gtk_init (&argc, &argv); GError* ui_error = NULL; GtkBuilder* builder = gtk_builder_new (); gchar* ui = g_build_filename (GUMMI_DATA, "ui", "gummi.glade", NULL); // exit program when gummi.glade can not be located: if (!g_file_test (ui, G_FILE_TEST_EXISTS)) { printf("Could not locate Glade interface file at:\n%s\n", ui); return 0; } gtk_builder_add_from_file (builder, ui, &ui_error); if (ui_error) { g_error ("%s\n", ui_error->message); } gtk_builder_set_translation_domain (builder, PACKAGE); g_free (ui); /* Initialize logging */ slog_init (debug); slog (L_INFO, PACKAGE_NAME" version: "PACKAGE_VERSION"\n"); /* Initialize configuration */ gchar* configname = g_build_filename (g_get_user_config_dir (), "gummi", "gummi.cfg", NULL); config_init (configname); config_load (); g_free (configname); /* Initialize signals */ gummi_signals_register (); /* Initialize Classes */ gchar* snippetsname = g_build_filename (g_get_user_config_dir (), "gummi", "snippets.cfg", NULL); // why do we not load this from environment, like gui-main does? -A GuMotion* motion = motion_init (); GuIOFunc* io = iofunctions_init(); GuLatex* latex = latex_init (); GuBiblio* biblio = biblio_init (builder); GuTemplate* templ = template_init (builder); GuTabmanager* tabm = tabmanager_init (); GuProject* proj = project_init (); GuSnippets* snippets = snippets_init (snippetsname); gummi = gummi_init (motion, io, latex, biblio, templ, snippets, tabm, proj); slog (L_DEBUG, "Gummi created!\n"); g_free (snippetsname); /* Initialize GUI */ gui = gui_init (builder); slog_set_gui_parent (gui->mainwindow); slog (L_DEBUG, "GummiGui created!\n"); /* Start compile thread */ if (external_exists (config_get_value("typesetter"))) { typesetter_setup (); motion_start_compile_thread (motion); } else { infoscreengui_enable (gui->infoscreengui, "program_error"); slog (L_ERROR, "Could not locate the typesetter program\n"); } /* Install acceleration group to mainwindow */ gtk_window_add_accel_group (gui->mainwindow, snippets->accel_group); if (argc != 2) tabmanager_create_tab (A_DEFAULT, NULL, NULL); else { if (!g_file_test(argv[1], G_FILE_TEST_EXISTS)) { slog(L_ERROR, "Failed to open file '%s': No such file or " "directory\n", argv[1]); exit(1); } tabmanager_create_tab (A_LOAD, argv[1], NULL); } if (config_get_value ("autosaving")) iofunctions_start_autosave (); gui_main (builder); config_save (); config_clean_up (); return 0; } gummi-0.6.5/src/compile/0000755000175000017500000000000012040524317012056 500000000000000gummi-0.6.5/src/compile/rubber.h0000644000175000017500000000302212040524266013430 00000000000000/** * @file rubber.h * @brief * * Copyright (C) 2010-2011 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_COMPILE_RUBBER_H__ #define __GUMMI_COMPILE_RUBBER_H__ #include void rubber_init (void); gboolean rubber_active (void); gboolean rubber_detected (void); gchar* rubber_get_command (const gchar* method, gchar* workfile); gchar* rubber_get_flags (const gchar *method); #endif /* __GUMMI_COMPILE_RUBBER_H */ gummi-0.6.5/src/compile/latexmk.c0000644000175000017500000000657212040524266013624 00000000000000/** * @file latexmk.c * @brief * * Copyright (C) 2010-2011 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "latexmk.h" #include "configfile.h" #include "constants.h" #include "external.h" #include "utils.h" gboolean lmk_detected = FALSE; void latexmk_init (void) { if (external_exists (C_LATEXMK)) { // TODO: check if supported version slog (L_INFO, "Typesetter detected: Latexmk %s\n", external_version (C_LATEXMK)); lmk_detected = TRUE; } } gboolean latexmk_active (void) { if (STR_EQU (config_get_value("typesetter"), C_LATEXMK)) { return TRUE; } return FALSE; } gboolean latexmk_detected (void) { return lmk_detected; } gchar* latexmk_get_command (const gchar* method, gchar* workfile, gchar* basename) { gchar* outdir = g_strdup(""); gchar* base; /* reroute output files to our temp directory */ if (!STR_EQU (C_TMPDIR, g_path_get_dirname (workfile))) { base = g_path_get_basename (basename); outdir = g_strdup_printf ("-jobname=\"%s/%s\"", C_TMPDIR, base); } const gchar* flags = latexmk_get_flags (method); gchar* lmkcmd; lmkcmd = g_strdup_printf("latexmk %s %s \"%s\"", flags, outdir, workfile); return lmkcmd; } gchar* latexmk_get_flags (const gchar *method) { gchar* lmkwithoutput; gchar* lmkflags; if (config_get_value("synctex")) { if (STR_EQU (method, "texpdf")) { lmkflags = g_strdup_printf("-e \"\\$pdflatex = 'pdflatex -synctex=1'\" -silent"); } else { lmkflags = g_strdup_printf("-e \"\\$latex = 'latex -synctex=1'\" -silent"); } } else { if (STR_EQU (method, "texpdf")) { lmkflags = g_strdup_printf("-e \"\\$pdflatex = 'pdflatex -synctex=0'\" -silent"); } else { lmkflags = g_strdup_printf("-e \"\\$latex = 'latex -synctex=0'\" -silent"); } } if (STR_EQU (method, "texpdf")) { lmkwithoutput = g_strconcat (lmkflags, " -pdf", NULL); } else if (STR_EQU (method, "texdvipdf")) { lmkwithoutput = g_strconcat (lmkflags, " -pdfdvi", NULL); } else { lmkwithoutput = g_strconcat (lmkflags, " -pdfps", NULL); } g_free (lmkflags); return lmkwithoutput; } gummi-0.6.5/src/compile/texlive.h0000644000175000017500000000322312040524266013632 00000000000000/** * @file texlive.h * @brief * * Copyright (C) 2010-2011 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_COMPILE_TEXLIVE_H__ #define __GUMMI_COMPILE_TEXLIVE_H__ #include int texlive_init (void); gboolean texlive_active (void); gboolean pdflatex_active (void); gboolean xelatex_active (void); gboolean pdflatex_detected (void); gboolean xelatex_detected (void); gchar* texlive_get_command (const gchar* method, gchar* workfile, gchar* basename); gchar* texlive_get_flags (const gchar *method); #endif /* __GUMMI_COMPILE_TEXLIVE_H__ */ gummi-0.6.5/src/compile/texlive.c0000644000175000017500000001144612040524266013633 00000000000000/** * @file texlive.c * @brief * * Copyright (C) 2010-2011 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "texlive.h" #include #include "configfile.h" #include "constants.h" #include "latex.h" #include "utils.h" #include "external.h" gboolean pdf_detected = FALSE; gboolean xel_detected = FALSE; /* All the functions for "pure" building with texlive only tools */ int texlive_init (void) { int texversion = 0; if (external_exists (C_LATEX)) { texversion = external_version2 (EX_TEXLIVE); slog (L_INFO, "Texlive %d was found installed..\n", texversion); } if (external_exists (C_PDFLATEX)) { slog (L_INFO, "Typesetter detected: %s\n", external_version (C_PDFLATEX)); pdf_detected = TRUE; } if (external_exists (C_XELATEX)) { slog (L_INFO, "Typesetter detected: %s\n", external_version (C_XELATEX)); xel_detected = TRUE; } return texversion; } gboolean texlive_active (void) { if (pdflatex_active() || xelatex_active()) { return TRUE; } return FALSE; } gboolean pdflatex_active (void) { if (STR_EQU (config_get_value("typesetter"), "pdflatex")) { return TRUE; } return FALSE; } gboolean xelatex_active (void) { if (STR_EQU (config_get_value("typesetter"), "xelatex")) { return TRUE; } return FALSE; } gboolean pdflatex_detected (void) { return pdf_detected; } gboolean xelatex_detected (void) { return xel_detected; } gchar* texlive_get_command (const gchar* method, gchar* workfile, gchar* basename) { const gchar* outdir = g_strdup_printf("-output-directory=\"%s\"", C_TMPDIR); gchar *typesetter = NULL; gchar *texcmd = NULL; if (pdflatex_active()) typesetter = C_PDFLATEX; else typesetter = C_XELATEX; gchar *flags = texlive_get_flags("texpdf"); gchar *dviname = g_strdup_printf("%s.dvi", g_path_get_basename (basename)); gchar *psname = g_strdup_printf("%s.ps", g_path_get_basename (basename)); #ifdef WIN32 gchar *script = g_build_filename (GUMMI_LIBS, "latex_dvi.cmd", NULL); #else gchar *script = g_build_filename (GUMMI_LIBS, "latex_dvi.sh", NULL); #endif if (STR_EQU (method, "texpdf")) { texcmd = g_strdup_printf("%s %s %s \"%s\"", typesetter, flags, outdir, workfile); } else if (STR_EQU (method, "texdvipdf")) { texcmd = g_strdup_printf("%s pdf " "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", script, flags, outdir, workfile, C_TMPDIR, dviname); } else { texcmd = g_strdup_printf("%s ps " "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", script, flags, outdir, workfile, C_TMPDIR, dviname, psname); } g_free(script); g_free(dviname); g_free(psname); return texcmd; } gchar* texlive_get_flags (const gchar* method) { gchar* flags = g_strdup_printf("-interaction=nonstopmode " "-file-line-error " "-halt-on-error"); if (!latex_use_shellescaping()) { gchar* tmp = g_strconcat(flags, " -no-shell-escape", NULL); g_free(flags); flags = tmp; } else { gchar* tmp = g_strconcat(flags, " -shell-escape", NULL); g_free(flags); flags = tmp; } if (config_get_value("synctex")) { gchar* tmp = g_strconcat(flags, " -synctex=1", NULL); g_free(flags); flags = tmp; } return flags; } gummi-0.6.5/src/compile/latexmk.h0000644000175000017500000000305612040524266013623 00000000000000/** * @file latexmk.h * @brief * * Copyright (C) 2010-2011 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_COMPILE_LATEXMK_H__ #define __GUMMI_COMPILE_LATEXMK_H__ #include void latexmk_init (void); gboolean latexmk_active (void); gboolean latexmk_detected (void); gchar* latexmk_get_command (const gchar* method, gchar* workfile, gchar* basename); gchar* latexmk_get_flags (const gchar *method); #endif /* __GUMMI_COMPILE_LATEXMK_H__ */ gummi-0.6.5/src/compile/rubber.c0000644000175000017500000000454012040524266013431 00000000000000/** * @file rubber.c * @brief * * Copyright (C) 2010-2011 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "rubber.h" #include "configfile.h" #include "constants.h" #include "external.h" #include "utils.h" gboolean rub_detected = FALSE; void rubber_init (void) { if (external_exists (C_RUBBER)) { // TODO: check if supported version slog (L_INFO, "Typesetter detected: Rubber %s\n", external_version (C_RUBBER)); rub_detected = TRUE; } } gboolean rubber_active (void) { if (STR_EQU (config_get_value("typesetter"), C_RUBBER)) { return TRUE; } return FALSE; } gboolean rubber_detected (void) { return rub_detected; } gchar* rubber_get_command (const gchar* method, gchar* workfile) { const gchar* outdir = g_strdup_printf ("--into=\"%s\"", C_TMPDIR); const gchar* flags = rubber_get_flags (method); gchar* rubcmd; rubcmd = g_strdup_printf("rubber %s %s \"%s\"", flags, outdir, workfile); return rubcmd; } gchar* rubber_get_flags (const gchar *method) { gchar *rubflags; if (STR_EQU (method, "texpdf")) { rubflags = g_strdup_printf("-d -q"); } else { rubflags = g_strdup_printf("-p -d -q"); } return rubflags; } gummi-0.6.5/src/external.h0000644000175000017500000000345412040524270012345 00000000000000/** * @file external.h * @brief existence and compability checks for external tools * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_EXTERNAL_H__ #define __GUMMI_EXTERNAL_H__ #include typedef struct { gboolean exists; gchar* version; } External; typedef enum _ExternalProg { EX_TEXLIVE = 0, EX_LATEX, EX_PDFLATEX, EX_XELATEX, EX_RUBBER, EX_LATEXMK, EX_TEXCOUNT } ExternalProg; gboolean external_exists (const gchar* program); gboolean external_hasflag (const gchar* program, const gchar* flag); gchar* external_version (const gchar* program); gdouble external_version2 (ExternalProg program); #endif /* __GUMMI_EXTERNAL_H__ */ gummi-0.6.5/src/Makefile.am0000644000175000017500000000250612040524270012403 00000000000000bin_PROGRAMS = gummi AM_CFLAGS = $(GUI_CFLAGS) \ -export-dynamic -Wall -O2 \ -DGUMMI_LIBS=\"$(libdir)/$(PACKAGE)\" \ -DGUMMI_DATA=\"$(datadir)/$(PACKAGE)\" \ -DGUMMI_LOCALES=\"$(datadir)/locale\" gummi_LDADD = $(GUI_LIBS) \ $(LIBINTL) gummi_SOURCES = biblio.c biblio.h \ configfile.c configfile.h \ editor.c editor.h \ environment.c environment.h \ compile/texlive.c compile/texlive.h \ compile/latexmk.c compile/latexmk.h \ compile/rubber.c compile/rubber.h \ gui/gui-menu.c gui/gui-menu.h \ gui/gui-tabmanager.c gui/gui-tabmanager.h \ gui/gui-import.c gui/gui-import.h \ gui/gui-main.c gui/gui-main.h \ gui/gui-prefs.c gui/gui-prefs.h \ gui/gui-preview.c gui/gui-preview.h \ gui/gui-search.c gui/gui-search.h \ gui/gui-snippets.c gui/gui-snippets.h \ gui/gui-infoscreen.c gui/gui-infoscreen.h \ gui/gui-project.c gui/gui-project.h \ syncTeX/synctex_parser.c syncTeX/synctex_parser.h \ syncTeX/synctex_parser_utils.c syncTeX/synctex_parser_utils.h \ importer.c importer.h \ iofunctions.c iofunctions.h \ external.c external.h \ project.c project.h \ latex.c latex.h \ motion.c motion.h \ signals.c signals.h \ snippets.c snippets.h \ template.c template.h \ update.c update.h \ utils.c utils.h \ tabmanager.c tabmanager.h \ constants.h porting.h \ main.c gummi-0.6.5/src/iofunctions.c0000644000175000017500000002142512040524270013054 00000000000000/** * @file iofunctions.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "iofunctions.h" #include #include #include #include "constants.h" #include "configfile.h" #include "editor.h" #include "environment.h" #include "gui/gui-main.h" #include "utils.h" extern Gummi* gummi; static guint sid = 0; /* private functions */ void iofunctions_real_load_file (GObject* hook, const gchar* filename); void iofunctions_real_save_file (GObject* hook, GObject* savecontext); gchar* iofunctions_decode_text (gchar* text); gchar* iofunctions_encode_text (gchar* text); GuIOFunc* iofunctions_init (void) { GuIOFunc* io = g_new0(GuIOFunc, 1); io->sig_hook = g_object_new(G_TYPE_OBJECT, NULL); /* Connect signals */ g_signal_connect (io->sig_hook, "document-load", G_CALLBACK(iofunctions_real_load_file), NULL); g_signal_connect (io->sig_hook, "document-write", G_CALLBACK(iofunctions_real_save_file), NULL); return io; } void iofunctions_load_default_text (gboolean loopedonce) { GError* readerr = NULL; GError* copyerr = NULL; gchar* text = NULL; GuEditor* ec = gummi_get_active_editor(); if (!g_file_get_contents (C_WELCOMETEXT, &text, NULL, &readerr)) { slog (L_WARNING, "Could not find default welcome text, resetting..\n"); utils_copy_file (C_DEFAULTTEXT, C_WELCOMETEXT, ©err); if (!loopedonce) return iofunctions_load_default_text (TRUE); } if (text) editor_fill_buffer (ec, text); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER (ec->buffer), FALSE); g_free (text); } void iofunctions_load_file (GuIOFunc* io, const gchar* filename) { gchar* status; slog (L_INFO, "loading %s ...\n", filename); /* add Loading message to status bar and ensure GUI is current */ status = g_strdup_printf ("Loading %s...", filename); statusbar_set_message (status); g_free (status); g_signal_emit_by_name (io->sig_hook, "document-load", filename); } void iofunctions_real_load_file (GObject* hook, const gchar* filename) { GError* err = NULL; gchar* text = NULL; gchar* decoded = NULL; gboolean result; GuEditor* ec = NULL; ec = gummi_get_active_editor(); /* get the file contents */ if (FALSE == (result = g_file_get_contents (filename, &text, NULL, &err))) { slog (L_G_ERROR, "g_file_get_contents (): %s\n", err->message); g_error_free (err); iofunctions_load_default_text (FALSE); return; } if (NULL == (decoded = iofunctions_decode_text (text))) goto cleanup; editor_fill_buffer (ec, decoded); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER(ec->buffer), FALSE); cleanup: g_free (decoded); g_free (text); } void iofunctions_save_file (GuIOFunc* io, gchar* filename, gchar *text) { gchar* status = NULL; status = g_strdup_printf (_("Saving %s..."), filename); statusbar_set_message (status); g_free (status); GObject *savecontext = g_object_new(G_TYPE_OBJECT, NULL); g_object_set_data (savecontext, "filename", filename); g_object_set_data (savecontext, "text", text); g_signal_emit_by_name (io->sig_hook, "document-write", savecontext); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER(gummi_get_active_editor()->buffer), FALSE); } void iofunctions_real_save_file (GObject* hook, GObject* savecontext) { gboolean result = FALSE; gchar* filename = NULL; gchar* encoded = NULL; gchar* text = NULL; GError* err = NULL; filename = g_object_get_data (savecontext, "filename"); text = g_object_get_data (savecontext, "text"); encoded = iofunctions_encode_text (text); /* set the contents of the file to the text from the buffer */ if (filename != NULL) { if (! (result = g_file_set_contents (filename, encoded, -1, &err))) { slog (L_ERROR, "g_file_set_contents (): %s\n", err->message); } } if (result == FALSE) { slog (L_G_ERROR, _("%s\nPlease try again later."), err->message); g_error_free (err); } g_free (encoded); g_free (text); g_object_unref (savecontext); } gchar* iofunctions_get_swapfile (const gchar* filename) { gchar* basename = NULL; gchar* dirname = NULL; gchar* swapfile = NULL; basename = g_path_get_basename (filename); dirname = g_path_get_dirname (filename); swapfile = g_strdup_printf ("%s%c.%s.swp", dirname, G_DIR_SEPARATOR, basename); g_free (dirname); g_free (basename); return swapfile; } gboolean iofunctions_has_swapfile (const gchar* filename) { if (filename == NULL) return FALSE; gchar* swapfile = iofunctions_get_swapfile (filename); if (utils_path_exists (swapfile)) { return TRUE; } return FALSE; } void iofunctions_start_autosave (void) { sid = g_timeout_add_seconds (atoi(config_get_value ("autosave_timer")) * 60, iofunctions_autosave_cb, NULL); slog (L_DEBUG, "Autosaving function started..\n"); } void iofunctions_stop_autosave (void) { if (sid > 0) { g_source_remove (sid); slog (L_DEBUG, "Autosaving function stopped..\n"); return; } else { slog (L_ERROR, "Error occured stopping autosaving.."); } } void iofunctions_reset_autosave (const gchar* name) { iofunctions_stop_autosave (); if (config_get_value ("autosaving")) iofunctions_start_autosave (); } char* iofunctions_decode_text (gchar* text) { GError* err = NULL; gchar* result = 0; gsize read = 0, written = 0; if (! (result = g_locale_to_utf8 (text, -1, &read, &written, &err))) { g_error_free (err); slog (L_ERROR, "failed to convert text from default locale, trying " "ISO-8859-1\n"); gsize in_size = strlen (text), out_size = in_size * 2; gchar* out = (gchar*)g_malloc (out_size); gchar* process = out; /* TODO: replace these calls to the non-raw glib functions */ GIConv cd = g_iconv_open ("UTF-8//IGNORE", "ISO−8859-1"); if (-1 == g_iconv (cd, &text, &in_size, &process, &out_size)) { slog (L_G_ERROR, _("Can not convert text to UTF-8!\n")); g_free (out); out = NULL; } result = out; } return result; } gchar* iofunctions_encode_text (gchar* text) { GError* err = NULL; gchar* result = 0; gsize read = 0, written = 0; if (! (result = g_locale_from_utf8 (text, -1, &read, &written, &err))) { g_error_free (err); slog (L_ERROR, "failed to convert text to default locale, text will " "be saved in UTF-8\n"); result = g_strdup (text); } return result; } gboolean iofunctions_autosave_cb (void *user) { gint tabtotal, i; GtkWidget *focus; GuTabContext* tab; GuEditor *ec; gchar *text; GList *tabs = gummi_get_all_tabs(); tabtotal = g_list_length(tabs); /* skip the autosave procedure when there are no tabs open */ if (tabtotal == 0) return TRUE; for (i=0; i < tabtotal; i++) { tab = g_list_nth_data (tabs, i); ec = tab->editor; if ((ec->filename) && editor_buffer_changed (ec)) { focus = gtk_window_get_focus (gummi_get_gui ()->mainwindow); text = editor_grab_buffer (ec); gtk_widget_grab_focus (focus); iofunctions_save_file (gummi->io, ec->filename, text); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER (ec->buffer), FALSE); slog (L_DEBUG, "Autosaving document: %s\n", ec->filename); gui_set_filename_display (tab, TRUE, TRUE); } } return TRUE; } gummi-0.6.5/src/snippets.h0000644000175000017500000001034012040524270012360 00000000000000/** * @file snippets.h * @brief handle configuration file * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_SNIPPETS_H__ #define __GUMMI_SNIPPETS_H__ #include #include #include #include "editor.h" #include "utils.h" /* Storing placeholders */ #define GU_SNIPPET_EXPAND_INFO(x) ((GuSnippetExpandInfo*)x) typedef struct _GuSnippetExpandInfo GuSnippetExpandInfo; struct _GuSnippetExpandInfo { glong group_number; GtkTextMark* right_mark; GtkTextMark* left_mark; gint start; gint len; gchar* text; }; /* Storing single snippet info */ #define GU_SNIPPET_INFO(x) ((GuSnippetInfo*)x) typedef struct _GuSnippetInfo GuSnippetInfo; struct _GuSnippetInfo { gchar* snippet; gchar* expanded; gint start_offset; gint offset; GList* current; GList* einfo; /* List of GuSnippetExpandInfo sorted by start pos */ GList* einfo_unique; /* List of unique group einfo */ GList* einfo_sorted; /* List of GuSnippetExpandInfo sorted by #group */ /* Constants */ gchar* sel_text; GtkTextMark sel_start; }; #define GU_SNIPPETS(x) ((GuSnippets*)x) typedef struct _GuSnippets GuSnippets; struct _GuSnippets { gchar* filename; slist* head; GuSnippetInfo* info; GtkAccelGroup* accel_group; GList* stackframe; GList* closure_data; /* data: Tuple2 (key, closure) */ }; GuSnippets* snippets_init (const gchar* filename); void snippets_set_default (GuSnippets* sc); void snippets_load (GuSnippets* sc); void snippets_save (GuSnippets* sc); void snippets_clean_up (GuSnippets* sc); gchar* snippets_get_value (GuSnippets* sc, const gchar* term); void snippets_set_accelerator (GuSnippets* sc, gchar* config); void snippets_activate (GuSnippets* sc, GuEditor* ec, gchar* key); void snippets_deactivate (GuSnippets* sc, GuEditor* ec); gboolean snippets_key_press_cb (GuSnippets* sc, GuEditor* ec, GdkEventKey* ev); gboolean snippets_key_release_cb(GuSnippets* sc, GuEditor* ec, GdkEventKey* ev); GuSnippetInfo* snippets_parse (char* snippet); void snippets_accel_cb (GtkAccelGroup* accel_group, GObject* obj, guint keyval, GdkModifierType mods, Tuple2* udata); void snippets_accel_connect (GuSnippets* sc, guint keyval, GdkModifierType mod, GClosure* closure); void snippets_accel_disconnect (GuSnippets* sc, const gchar* key); GuSnippetInfo* snippet_info_new (gchar* snippet); void snippet_info_free (GuSnippetInfo* info, GuEditor* ec); void snippet_info_append_holder (GuSnippetInfo* info, gint group, gint start, gint len, gchar* text); void snippet_info_create_marks (GuSnippetInfo* info, GuEditor* ec); void snippet_info_remove_marks (GuSnippetInfo* info, GuEditor* ec); void snippet_info_initial_expand (GuSnippetInfo* info, GuEditor* ec); gboolean snippet_info_goto_next_placeholder (GuSnippetInfo* info, GuEditor* ec); gboolean snippet_info_goto_prev_placeholder (GuSnippetInfo* info, GuEditor* ec); void snippet_info_sync_group (GuSnippetInfo* info, GuEditor* ec); gint snippet_info_num_cmp (gconstpointer a, gconstpointer b); gint snippet_info_pos_cmp (gconstpointer a, gconstpointer b); #endif /* __GUMMI_SNIPPETS__ */ gummi-0.6.5/src/tabmanager.h0000644000175000017500000000446712040524270012631 00000000000000/** * @file tabmanager.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_TABMANAGER_H__ #define __GUMMI_TABMANAGER_H__ #include #include "editor.h" #include "gui/gui-tabmanager.h" #define g_tabs gummi->tabmanager->tabs typedef enum _OpenAct { A_NONE = 0, A_DEFAULT, A_LOAD, A_LOAD_OPT, } OpenAct; #define GU_TABMANAGER(x) ((GuTabmanager*)x) typedef struct _GuTabmanager GuTabmanager; struct _GuTabmanager { GuEditor* active_editor; GuTabContext* active_tab; GList* tabs; }; GuTabmanager* tabmanager_init (void); void tabmanager_foreach_editor (GFunc func, gpointer user_data); gchar* tabmanager_get_tabname (GuTabContext* tc); void tabmanager_set_active_tab (int position); gboolean tabmanager_remove_tab (GuTabContext* tab); /*------------------------------------------------------------------------*/ void tabmanager_create_tab (OpenAct act, const gchar* filename, gchar* opt); void tabmanager_update_tab (const gchar* filename); gboolean tabmanager_has_tabs (); gboolean tabmanager_check_exists (const gchar* filename); void tabmanager_set_content (OpenAct act, const gchar* filename, gchar* opt); #endif /* __GUMMI_TABMANAGER_H__ */ gummi-0.6.5/src/biblio.c0000644000175000017500000001620412040524270011753 00000000000000/** * @file biblio.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "biblio.h" #include "constants.h" #include "utils.h" #include "latex.h" #include "environment.h" extern GuEditor* ec; GuBiblio* biblio_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuBiblio* b = g_new0 (GuBiblio, 1); b->progressbar = GTK_PROGRESS_BAR (gtk_builder_get_object (builder, "bibprogressbar")); b->progressmon = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "bibprogressmon")); b->list_biblios = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_biblios")); b->filenm_label = GTK_LABEL (gtk_builder_get_object (builder, "bibfilenm")); b->refnr_label = GTK_LABEL (gtk_builder_get_object (builder, "bibrefnr")); b->list_filter = GTK_ENTRY (gtk_builder_get_object (builder, "biblio_filter")); b->biblio_treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "bibtreeview")); b->progressval = 0.0; return b; } gboolean biblio_detect_bibliography (GuBiblio* bc, GuEditor* ec) { gchar* content = NULL; gchar* bibfn = NULL; gchar** result = NULL; GMatchInfo *match_info; GRegex* bib_regex = NULL; gboolean state = FALSE; content = editor_grab_buffer (ec); bib_regex = g_regex_new ("\\\\bibliography{\\s*([^{}\\s]*)\\s*}", 0,0,NULL); if (g_regex_match (bib_regex, content, 0, &match_info)) { result = g_match_info_fetch_all (match_info); if (result[1]) { if (!STR_EQU (result[1] +strlen (result[1]) -4, ".bib")) bibfn = g_strconcat (result[1], ".bib", NULL); else bibfn = g_strdup (result[1]); state = editor_fileinfo_update_biblio (ec, bibfn); g_free (bibfn); } slog (L_INFO, "Detect bibliography file: %s\n", ec->bibfile); g_strfreev (result); } g_free (content); g_match_info_free (match_info); g_regex_unref (bib_regex); return state; } gboolean biblio_compile_bibliography (GuBiblio* bc, GuEditor* ec, GuLatex* lc) { gchar* dirname = g_path_get_dirname (ec->workfile); gchar* auxname = NULL; if (ec->filename) { auxname = g_strdup (ec->pdffile); auxname[strlen (auxname) -4] = 0; } else auxname = g_strdup (ec->fdname); if (g_find_program_in_path ("bibtex")) { gboolean success = FALSE; char* command = g_strdup_printf ("%s bibtex \"%s\"", C_TEXSEC, auxname); g_free (auxname); latex_update_workfile (lc, ec); latex_update_auxfile (lc, ec); Tuple2 res = utils_popen_r (command, dirname); gtk_widget_set_tooltip_text (GTK_WIDGET (bc->progressbar), (gchar*)res.second); g_free (command); g_free (dirname); success = ! (strstr ((gchar*)res.second, "Database file #1") == NULL); g_free (res.second); return success; } slog (L_WARNING, "bibtex command is not present or executable.\n"); g_free (auxname); g_free (dirname); return FALSE; } int biblio_parse_entries (GuBiblio* bc, gchar *bib_content) { int entry_total = 0; GtkTreeIter iter; GRegex* regex_entry; GRegex* subregex_ident; GRegex* subregex_title; GRegex* subregex_author; GRegex* subregex_year; GRegex* regex_formatting; gchar* author_out = NULL; gchar* title_out = NULL; GMatchInfo *match_entry; regex_entry = g_regex_new ( "(@article|@book|@booklet|@conference|@inbook|@incollection|" "@inproceedings|@manual|@mastersthesis|@misc|@phdthesis|" "@proceedings|@techreport|@unpublished)([^@]*)", (G_REGEX_CASELESS | G_REGEX_DOTALL), 0, NULL); subregex_ident = g_regex_new ("@.+{([^,]+),", 0, 0, NULL); subregex_title = g_regex_new ("[^book]title[\\s]*=[\\s]*(.*)", G_REGEX_CASELESS, 0, NULL); subregex_author = g_regex_new ("author[\\s]*=[\\s]*(.*)", G_REGEX_CASELESS, 0, NULL); subregex_year = g_regex_new ("year[\\s]*=[\\s]*[{|\"]?([1|2][0-9]{3})", G_REGEX_CASELESS, 0, NULL); regex_formatting = g_regex_new ("[{|}|\"|,|\\$]", 0, 0, NULL); g_regex_match (regex_entry, bib_content, 0, &match_entry); while (g_match_info_matches (match_entry)) { gchar *entry = g_match_info_fetch (match_entry, 0); gchar **ident_res = g_regex_split (subregex_ident, entry, 0); gchar **title_res = g_regex_split (subregex_title, entry, 0); gchar **author_res = g_regex_split (subregex_author, entry, 0); gchar **year_res = g_regex_split (subregex_year, entry, 0); if (author_res[1]) author_out = g_regex_replace (regex_formatting, author_res[1], -1, 0, "", 0, 0); else author_out = NULL; if (title_res[1]) title_out = g_regex_replace (regex_formatting, title_res[1], -1, 0, "", 0, 0); else title_out = NULL; gtk_list_store_append (bc->list_biblios, &iter); gtk_list_store_set (bc->list_biblios, &iter, 0, ident_res[1], 1, title_out, 2, author_out, 3, year_res[1], -1); g_free (author_out); g_free (title_out); g_strfreev (ident_res); g_strfreev (title_res); g_strfreev (author_res); g_strfreev (year_res); g_free (entry); ++entry_total; g_match_info_next (match_entry, NULL); } g_match_info_free (match_entry); g_regex_unref (regex_entry); g_regex_unref (subregex_ident); g_regex_unref (subregex_title); g_regex_unref (subregex_author); g_regex_unref (subregex_year); g_regex_unref (regex_formatting); return entry_total; } gummi-0.6.5/src/environment.h0000644000175000017500000001073612040524270013070 00000000000000/** * @file environment.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef GUMMI_ENVIRONMENT_H #define GUMMI_ENVIRONMENT_H #ifdef HAVE_CONFIG_H # include "config.h" #else # define PACKAGE "gummi" # define PACKAGE_NAME "Gummi" # define PACKAGE_VERSION "svn" # define PACKAGE_URL "http://gummi.midnightcoding.org/" #endif #define PACKAGE_COMMENTS "Simple LaTeX Editor for GTK+" #define PACKAGE_COPYRIGHT "Copyright \xc2\xa9 2009-2012\n\n"\ "Alexander van der Mey\n"\ "Wei-Ning Huang\n"\ "Dion Timmermann\n"\ "Robert Schroll" #define PACKAGE_LICENSE \ "Copyright (C) 2009-2012 Gummi-Dev Team \n" \ "All Rights reserved.\n" \ "\n" \ "Permission is hereby granted, free of charge, to any person\n" \ "obtaining a copy of this software and associated documentation\n" \ "files (the \"Software\"), to deal in the Software without\n" \ "restriction, including without limitation the rights to use,\n" \ "copy, modify, merge, publish, distribute, sublicense, and/or sell\n" \ "copies of the Software, and to permit persons to whom the\n" \ "Software is furnished to do so, subject to the following\n" \ "conditions:\n" \ "\n" \ "The above copyright notice and this permission notice shall be\n" \ "included in all copies or substantial portions of the Software.\n" \ "\n" \ "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n" \ "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n" \ "OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n" \ "NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n" \ "HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n" \ "WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n" \ "FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n" \ "OTHER DEALINGS IN THE SOFTWARE.\n" #include #include #include "biblio.h" #include "editor.h" #include "importer.h" #include "iofunctions.h" #include "latex.h" #include "motion.h" #include "snippets.h" #include "tabmanager.h" #include "template.h" #include "project.h" #include "gui/gui-main.h" #define _(T) gettext(T) /** * Gummi: * * Stores Gummi main context. */ #define GUMMI(x) ((Gummi*)x) typedef struct _Gummi Gummi; struct _Gummi { /*< private >*/ GuEditor* editor; GuIOFunc* io; GuMotion* motion; GuLatex* latex; GuBiblio* biblio; GuTemplate* templ; GuSnippets* snippets; GuTabmanager* tabmanager; GuProject* project; }; Gummi* gummi_init (GuMotion* mo, GuIOFunc* io, GuLatex* latex, GuBiblio* bib, GuTemplate* tpl, GuSnippets* snip, GuTabmanager* tabm, GuProject* proj); GuEditor* gummi_new_environment (const gchar* filename); /** * Following APIs is used to eliminate the need of exposing global Gummi to * non-GUI classes. * Please only use this functions if not avoidable. */ gboolean gummi_project_active (void); GummiGui* gummi_get_gui (void); GuEditor* gummi_get_active_editor (void); GuIOFunc* gummi_get_io (void); GuMotion* gummi_get_motion (void); GuLatex* gummi_get_latex (void); GuBiblio* gummi_get_biblio (void); GuTemplate* gummi_get_template (void); GuSnippets* gummi_get_snippets (void); GList* gummi_get_all_tabs (void); GList* gummi_get_all_editors (void); #endif /* GUMMI_ENVIRONMENT_H */ gummi-0.6.5/src/snippets.c0000644000175000017500000005471312040524270012367 00000000000000/** * @file snippets.c * @brief handle snppets * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "snippets.h" #include #include #include #include #include #include #include "editor.h" #include "environment.h" #include "porting.h" #include "utils.h" GuSnippets* snippets_init (const gchar* filename) { GuSnippets* s = g_new0 (GuSnippets, 1); gchar* dirname = g_path_get_dirname (filename); g_mkdir_with_parents (dirname, DIR_PERMS); g_free (dirname); slog (L_INFO, "snippets : %s\n", filename); s->filename = g_strdup (filename); s->accel_group = gtk_accel_group_new (); s->stackframe = NULL; snippets_load (s); return s; } void snippets_set_default (GuSnippets* sc) { GError* err = NULL; gchar* snip = g_build_filename (GUMMI_DATA, "snippets", "snippets.cfg", NULL); GList* current = sc->closure_data; /* Remove all accelerator */ while (current) { gtk_accel_group_disconnect (sc->accel_group, TUPLE2 (current->data)->second); slog (L_DEBUG, "Accelerator for `%s' disconnected\n", TUPLE2 (current->data)->first); current = g_list_next (current); } g_list_free (sc->closure_data); sc->closure_data = NULL; if (!utils_copy_file (snip, sc->filename, &err)) { slog (L_G_ERROR, "can't open snippets file for writing, snippets may " "not work properly\n"); g_error_free (err); } else { snippets_load (sc); } g_free (snip); } void snippets_load (GuSnippets* sc) { FILE* fh = 0; gchar buf[BUFSIZ]; gchar* rot = NULL; gchar* seg = NULL; slist* current = NULL; slist* prev = NULL; if (sc->head) snippets_clean_up (sc); if (! (fh = fopen (sc->filename, "r"))) { slog (L_ERROR, "can't find snippets file, reseting to default\n"); snippets_set_default (sc); return; } while (fgets (buf, BUFSIZ, fh)) { current = g_new0 (slist, 1); if (!sc->head) sc->head = prev = current; prev->next = current; buf[strlen (buf) -1] = 0; /* remove trailing '\n' */ if (buf[0] != '\t') { if ('#' == buf[0] || !strlen(buf)) { current->first = g_strdup (buf); } else { seg = strstr (buf, " ") + 1; current->first = g_strdup ((seg == buf)? "Invalid": seg); snippets_set_accelerator (sc, current->first); } } else { if (!prev->second) { prev->second = g_strdup (buf + 1); continue; } rot = g_strdup (prev->second); g_free (prev->second); prev->second = g_strconcat (rot, "\n", buf + 1, NULL); g_free (rot); g_free (current); current = prev; } prev = current; } if (prev) prev->next = NULL; fclose (fh); } void snippets_save (GuSnippets* sc) { FILE* fh = 0; slist* current = sc->head; gint i = 0, count = 0, len = 0; gchar* buf = 0; if (! (fh = fopen (sc->filename, "w"))) slog (L_FATAL, "can't open snippets file for writing... abort\n"); while (current) { /* skip comments */ if (!current->second) { fputs (current->first, fh); fputs ("\n", fh); current = current->next; continue; } fputs ("snippet ", fh); fputs (current->first, fh); fputs ("\n\t", fh); len = strlen (current->second) + 1; buf = (gchar*)g_malloc (len * 2); memset (buf, 0, len * 2); /* replace '\n' with '\n\t' for options with multi-line content */ for (i = 0; i < len; ++i) { if (count + 2 == len * 2) break; buf[count++] = current->second[i]; if (i != len -2 && '\n' == current->second[i]) buf[count++] = '\t'; } fputs (buf, fh); fputs ("\n", fh); current = current->next; count = 0; g_free (buf); } fclose (fh); } void snippets_clean_up (GuSnippets* sc) { slist* prev = sc->head; slist* current; while (prev) { current = prev->next; g_free (prev); prev = current; } sc->head = NULL; } gchar* snippets_get_value (GuSnippets* sc, const gchar* term) { gchar* key = g_strdup_printf ("%s,", term); slist* index = slist_find (sc->head, key, TRUE, FALSE); g_free (key); return (index)? index->second: NULL; } void snippets_set_accelerator (GuSnippets* sc, gchar* config) { /* config has the form: Key,Accel_key,Name */ GClosure* closure = NULL; GdkModifierType mod; guint keyval = 0; gchar** configs = g_strsplit (config, ",", 0); Tuple2* data = g_new0 (Tuple2, 1); Tuple2* closure_data = g_new0 (Tuple2, 1); /* Return if config does not contains accelerator */ if (strlen (configs[1]) == 0) { g_strfreev (configs); return; } data->first = (gpointer)sc; data->second = (gpointer)g_strdup (configs[0]); closure = g_cclosure_new (G_CALLBACK (snippets_accel_cb), data, NULL); closure_data->first = (gpointer)data->second; closure_data->second = (gpointer)closure; sc->closure_data = g_list_append (sc->closure_data, closure_data); gtk_accelerator_parse (configs[1], &keyval, &mod); /* Return without connect if accel is not valid */ if (!gtk_accelerator_valid (keyval, mod)) return; snippets_accel_connect (sc, keyval, mod, closure); g_strfreev (configs); } void snippets_activate (GuSnippets* sc, GuEditor* ec, gchar* key) { gchar* snippet = NULL; GuSnippetInfo* new_info = NULL; GtkTextIter start, end; slog (L_DEBUG, "Snippet `%s' activated\n", key); snippet = snippets_get_value (sc, key); g_return_if_fail (snippet != NULL); new_info = snippets_parse (snippet); gtk_text_buffer_get_selection_bounds (ec_buffer, &start, &end); new_info->start_offset = gtk_text_iter_get_offset (&start); new_info->sel_text = gtk_text_iter_get_text (&start, &end); GSList* marks = gtk_text_iter_get_marks (&start); new_info->sel_start = *GTK_TEXT_MARK (marks->data); g_slist_free (marks); gtk_text_buffer_insert (ec_buffer, &start, new_info->expanded, -1); snippet_info_create_marks (new_info, ec); snippet_info_initial_expand (new_info, ec); gtk_text_buffer_set_modified (ec_buffer, TRUE); if (sc->info) { snippet_info_sync_group (sc->info, ec); sc->stackframe = g_list_append (sc->stackframe, sc->info); } sc->info = new_info; if (!snippet_info_goto_next_placeholder (sc->info, ec)) snippets_deactivate (sc, ec); } void snippets_deactivate (GuSnippets* sc, GuEditor* ec) { GList* last = NULL; snippet_info_free (sc->info, ec); last = g_list_last (sc->stackframe); if (last) { sc->info = last->data; sc->stackframe = g_list_remove (sc->stackframe, last->data); } else sc->info = NULL; slog (L_DEBUG, "Snippet deactivated\n"); } gboolean snippets_key_press_cb (GuSnippets* sc, GuEditor* ec, GdkEventKey* ev) { GtkTextIter current, start; if (ev->keyval == GDK_KEY_Tab) { gchar* key = NULL; editor_get_current_iter (ec, ¤t); if (gtk_text_iter_ends_word (¤t)) { start = current; gtk_text_iter_backward_word_start (&start); key = gtk_text_iter_get_text (&start, ¤t); if (snippets_get_value (sc, key)) { gtk_text_buffer_delete (ec_buffer, &start, ¤t); snippets_activate (sc, ec, key); g_free (key); return TRUE; } g_free (key); } } if (sc->info) { if (ev->keyval == GDK_KEY_Tab) { if (!snippet_info_goto_next_placeholder (sc->info, ec)) snippets_deactivate (sc, ec); return TRUE; } else if (ev->keyval == GDK_KEY_ISO_Left_Tab && ev->state & GDK_SHIFT_MASK) { if (!snippet_info_goto_prev_placeholder (sc->info, ec)) snippets_deactivate (sc, ec); return TRUE; } /* Deactivate snippet if the current insert range is not within the * snippet */ editor_get_current_iter (ec, ¤t); gint offset = gtk_text_iter_get_offset (¤t); GList* last = g_list_last (sc->info->einfo); if (last) { gtk_text_buffer_get_iter_at_mark (ec_buffer, ¤t, GU_SNIPPET_EXPAND_INFO (last->data)->left_mark); gint bound_end = gtk_text_iter_get_offset (¤t); if (offset < sc->info->start_offset || offset > bound_end) snippets_deactivate (sc, ec); } } return FALSE; } gboolean snippets_key_release_cb (GuSnippets* sc, GuEditor* ec, GdkEventKey* e) { if (e->keyval != GDK_KEY_Tab && !sc->info) return FALSE; if (sc->info) snippet_info_sync_group (sc->info, ec); return FALSE; } GuSnippetInfo* snippets_parse (char* snippet) { gint i, start, end; GError* err = NULL; gchar** result = NULL; GRegex* regex = NULL; GMatchInfo* match_info = NULL; const gchar* holders[] = { "\\$([0-9]+)", "\\${([0-9]*):?([^}]*)}", "\\$(FILENAME)", "\\${(FILENAME)}", "\\$(BASENAME)", "\\${(BASENAME)}", "\\$(SELECTED_TEXT)", "\\${(SELECTED_TEXT)}" /* Anyway to combine these? */ }; GuSnippetInfo* info = snippet_info_new (snippet); for (i = 0; i < sizeof(holders) / sizeof(holders[0]); ++i) { if (! (regex = g_regex_new (holders[i], G_REGEX_DOTALL, 0, &err))) { slog (L_ERROR, "g_regex_new (): %s\n", err->message); g_error_free (err); return info; } g_regex_match (regex, snippet, 0, &match_info); while (g_match_info_matches (match_info)) { result = g_match_info_fetch_all (match_info); g_match_info_fetch_pos (match_info, 0, &start, &end); /* Convert start, end to UTF8 offset */ char* s_start = g_substr(snippet, 0, start); char* s_end = g_substr(snippet, 0, end); start = g_utf8_strlen(s_start, -1); end = g_utf8_strlen(s_end, -1); g_free(s_start); g_free(s_end); if (i < 2) { snippet_info_append_holder (info, atoi (result[1]), start, end -start, result[2]); } else { snippet_info_append_holder (info, -1, start, end -start, result[1]); } slog (L_DEBUG, "Placeholder: (%s, %s, %s)\n", result[0], result[1], result[2]); g_match_info_next (match_info, NULL); g_strfreev (result); } g_regex_unref (regex); g_match_info_free (match_info); } info->einfo = g_list_sort (info->einfo, snippet_info_pos_cmp); info->einfo_sorted = g_list_copy (info->einfo); info->einfo_sorted = g_list_sort (info->einfo_sorted, snippet_info_num_cmp); return info; } void snippets_accel_cb (GtkAccelGroup* accel_group, GObject* obj, guint keyval, GdkModifierType mods, Tuple2* udata) { GuSnippets* sc = GU_SNIPPETS (udata->first); gchar* key = (gchar*)udata->second; /* XXX: Don't know how to avoid using gummi_get_active_editor () here. Since * gtk_accel_group must be connect when load, we can not specify the * editor in user_data, because snippets should only have effect on * active tab */ snippets_activate (sc, gummi_get_active_editor (), key); } void snippets_accel_connect (GuSnippets* sc, guint keyval, GdkModifierType mod, GClosure* closure) { gchar* acc = NULL; gtk_accel_group_connect (sc->accel_group, keyval, gtk_accelerator_get_default_mod_mask () & mod, GTK_ACCEL_VISIBLE, closure); acc = gtk_accelerator_get_label (keyval, gtk_accelerator_get_default_mod_mask () & mod); slog (L_DEBUG, "Accelerator `%s' connected\n", acc); g_free (acc); } void snippets_accel_disconnect (GuSnippets* sc, const gchar* key) { Tuple2* closure_data = NULL; GList* current = NULL; g_return_if_fail (key != NULL); current = sc->closure_data; while (current) { closure_data = TUPLE2 (current->data); if (STR_EQU (closure_data->first, key)) break; current = g_list_next (current); } if (current) { gtk_accel_group_disconnect (sc->accel_group, closure_data->second); sc->closure_data = g_list_remove (sc->closure_data, closure_data); g_free (closure_data); slog (L_DEBUG, "Accelerator for `%s' disconnected\n", closure_data->first); } } GuSnippetInfo* snippet_info_new (gchar* snippet) { GuSnippetInfo* info = g_new0 (GuSnippetInfo, 1); info->snippet = g_strdup (snippet); info->expanded = g_strdup (snippet); info->einfo = NULL; info->einfo_sorted = NULL; return info; } void snippet_info_free (GuSnippetInfo* info, GuEditor* ec) { snippet_info_remove_marks (info, ec); GList* current = g_list_first (info->einfo); while (current) { g_free (GU_SNIPPET_EXPAND_INFO (current->data)->text); current = g_list_next (current); } g_list_free (info->einfo); g_list_free (info->einfo_unique); g_list_free (info->einfo_sorted); g_free (info); } gboolean snippet_info_goto_next_placeholder (GuSnippetInfo* info, GuEditor* ec) { GuSnippetExpandInfo* einfo = NULL; GtkTextIter start, end; gboolean success = TRUE; /* Snippet just activated */ if (!info->current) { /* Skip $0, $-1 and jump to next placeholder */ if (info->einfo_unique) { info->current = info->einfo_unique; while (info->current && GU_SNIPPET_EXPAND_INFO (info->current->data)->group_number <= 0) info->current = g_list_next (info->current); } } else info->current = g_list_next (info->current); /* No placeholder left */ if (!info->current) { info->current = g_list_first (info->einfo_sorted); while (info->current && GU_SNIPPET_EXPAND_INFO (info->current->data)->group_number != 0) info->current = g_list_next(info->current); if (!info->current) return FALSE; else /* This is the last one($0) set to false to deactivate snippet */ success = FALSE; } einfo = GU_SNIPPET_EXPAND_INFO (info->current->data); gtk_text_buffer_get_iter_at_mark (ec_buffer, &start, einfo->left_mark); gtk_text_buffer_get_iter_at_mark (ec_buffer, &end, einfo->right_mark); gtk_text_buffer_place_cursor (ec_buffer, &start); gtk_text_buffer_select_range (ec_buffer, &start, &end); return success; } gboolean snippet_info_goto_prev_placeholder (GuSnippetInfo* info, GuEditor* ec) { GuSnippetExpandInfo* einfo = NULL; GtkTextIter start, end; info->current = g_list_previous (info->current); /* Return false to deactivate snippet */ if (!info->current || GU_SNIPPET_EXPAND_INFO(info->current->data)->group_number < 0) return FALSE; einfo = GU_SNIPPET_EXPAND_INFO (info->current->data); gtk_text_buffer_get_iter_at_mark (ec_buffer, &start, einfo->left_mark); gtk_text_buffer_get_iter_at_mark (ec_buffer, &end, einfo->right_mark); gtk_text_buffer_place_cursor (ec_buffer, &start); gtk_text_buffer_select_range (ec_buffer, &start, &end); return TRUE; } void snippet_info_append_holder (GuSnippetInfo* info, gint group, gint start, gint len, gchar* text) { GuSnippetExpandInfo* einfo = g_new0 (GuSnippetExpandInfo, 1); einfo->group_number = group; einfo->start = start; einfo->len = len; einfo->text = g_strdup (text? text: ""); info->einfo = g_list_append (info->einfo, einfo); } void snippet_info_create_marks (GuSnippetInfo* info, GuEditor* ec) { GList* current = g_list_first (info->einfo); GtkTextIter start, end; while (current) { GuSnippetExpandInfo* einfo = GU_SNIPPET_EXPAND_INFO (current->data); gtk_text_buffer_get_iter_at_offset (ec_buffer, &start, info->start_offset + einfo->start); gtk_text_buffer_get_iter_at_offset (ec_buffer, &end, info->start_offset + einfo->start + einfo->len); einfo->left_mark = gtk_text_mark_new (NULL, TRUE); einfo->right_mark = gtk_text_mark_new (NULL, FALSE); gtk_text_buffer_add_mark (ec_buffer, einfo->left_mark, &start); gtk_text_buffer_add_mark (ec_buffer, einfo->right_mark, &end); current = g_list_next (current); } slog (L_DEBUG, "Marks created\n"); } void snippet_info_remove_marks (GuSnippetInfo* info, GuEditor* ec) { GList* current = g_list_first (info->einfo); while (current) { GuSnippetExpandInfo* einfo = GU_SNIPPET_EXPAND_INFO (current->data); gtk_text_buffer_delete_mark (ec_buffer, einfo->left_mark); gtk_text_buffer_delete_mark (ec_buffer, einfo->right_mark); current = g_list_next (current); } slog (L_DEBUG, "Marks removed\n"); } void snippet_info_initial_expand (GuSnippetInfo* info, GuEditor* ec) { GuSnippetExpandInfo* value = NULL; GtkTextIter start, end; GHashTable* map = NULL; GList* current = NULL; gchar* text = NULL; gint key = 0; map = g_hash_table_new (NULL, NULL); current = g_list_first (info->einfo); while (current) { GuSnippetExpandInfo* einfo = GU_SNIPPET_EXPAND_INFO (current->data); if (!g_hash_table_lookup_extended (map, ((gpointer)einfo->group_number), (gpointer)&key, (gpointer)&value)) { g_hash_table_insert (map, (gpointer)einfo->group_number, einfo); info->einfo_unique = g_list_append (info->einfo_unique, einfo); } current = g_list_next (current); } info->einfo_unique = g_list_sort (info->einfo_unique, snippet_info_num_cmp); current = g_list_first (info->einfo); info->offset = 0; while (current) { GuSnippetExpandInfo* einfo = GU_SNIPPET_EXPAND_INFO (current->data); g_hash_table_lookup_extended (map, (gpointer)einfo->group_number, (gpointer)&key, (gpointer)&value); gtk_text_buffer_get_iter_at_mark (ec_buffer, &start, einfo->left_mark); gtk_text_buffer_get_iter_at_mark (ec_buffer, &end, einfo->right_mark); /* Expand macros */ text = GU_SNIPPET_EXPAND_INFO(current->data)->text; if (STR_EQU (text, "SELECTED_TEXT")) { GtkTextIter ms, me; gtk_text_buffer_delete (ec_buffer, &start, &end); gtk_text_buffer_insert (ec_buffer, &start, info->sel_text, -1); gtk_text_buffer_get_iter_at_mark (ec_buffer, &ms, &info->sel_start); me = ms; gtk_text_iter_forward_chars (&me, strlen (info->sel_text)); gtk_text_buffer_delete (ec_buffer, &ms, &me); } else if (STR_EQU (text, "FILENAME")) { gtk_text_buffer_delete (ec_buffer, &start, &end); gtk_text_buffer_insert (ec_buffer, &start, ec->filename? ec->filename: "", -1); } else if (STR_EQU (text, "BASENAME")) { gchar* basename = g_path_get_basename(ec->filename?ec->filename:""); gtk_text_buffer_delete (ec_buffer, &start, &end); gtk_text_buffer_insert (ec_buffer, &start, basename, -1); g_free (basename); } else { /* Expand text of same group with with text of group leader */ gtk_text_buffer_delete (ec_buffer, &start, &end); gtk_text_buffer_insert (ec_buffer, &start, value->text, -1); } current = g_list_next (current); } g_hash_table_destroy (map); } void snippet_info_sync_group (GuSnippetInfo* info, GuEditor* ec) { if (!info->current || GU_SNIPPET_EXPAND_INFO(info->current->data)->group_number == -1) return; GuSnippetExpandInfo* active = GU_SNIPPET_EXPAND_INFO (info->current->data); GList* current = g_list_first (info->einfo); gchar* text = NULL; GtkTextIter start, end; gtk_text_buffer_get_iter_at_mark (ec_buffer, &start, active->left_mark); gtk_text_buffer_get_iter_at_mark (ec_buffer, &end, active->right_mark); text = gtk_text_buffer_get_text (ec_buffer, &start, &end, TRUE); while (current) { GuSnippetExpandInfo* einfo = GU_SNIPPET_EXPAND_INFO (current->data); if (einfo != active && einfo->group_number == active->group_number) { gtk_text_buffer_get_iter_at_mark (ec_buffer, &start, einfo->left_mark); gtk_text_buffer_get_iter_at_mark (ec_buffer, &end, einfo->right_mark); gtk_text_buffer_delete (ec_buffer, &start, &end); gtk_text_buffer_insert (ec_buffer, &start, text, -1); } current = g_list_next (current); } g_free (text); } gint snippet_info_num_cmp (gconstpointer a, gconstpointer b) { return ( (GU_SNIPPET_EXPAND_INFO (a)->group_number < GU_SNIPPET_EXPAND_INFO (b)->group_number)? -1: 1); } gint snippet_info_pos_cmp (gconstpointer a, gconstpointer b) { return ( (GU_SNIPPET_EXPAND_INFO (a)->start < GU_SNIPPET_EXPAND_INFO (b)->start)? -1: 1); } gummi-0.6.5/src/tabmanager.c0000644000175000017500000001410112040524270012606 00000000000000/** * @file tabmanager.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "tabmanager.h" #include "environment.h" extern Gummi* gummi; extern GummiGui* gui; static gboolean current_tab_replaceable (OpenAct act); GuTabmanager* tabmanager_init (void) { GuTabmanager* tm = g_new0 (GuTabmanager, 1); tm->tabs = NULL; tm->active_editor = NULL; tm->active_tab = NULL; return tm; } void tabmanager_foreach_editor (GFunc func, gpointer user_data) { GList* tabs = g_tabs; while (tabs) { GList *next = tabs->next; (*func) (GU_TAB_CONTEXT (tabs->data)->editor, user_data); tabs = next; } } static gboolean current_tab_replaceable (OpenAct act) { if ((act == A_LOAD || act == A_LOAD_OPT)) if (g_active_editor && !g_active_editor->filename) if (!editor_buffer_changed (g_active_editor)) return TRUE; return FALSE; } gchar* tabmanager_get_tabname (GuTabContext* tc) { gchar* labeltext; gchar* filetext; gboolean modified; if (tc->editor->filename) { filetext = g_path_get_basename (tc->editor->filename); } else { filetext = g_strdup_printf (_("Unsaved Document %d"), tc->page->unsavednr); } modified = editor_buffer_changed (tc->editor); labeltext = g_strdup_printf ("%s%s", (modified? "*": ""), filetext); g_free (filetext); return labeltext; } gboolean tabmanager_remove_tab (GuTabContext* tab) { gint position = g_list_index (g_tabs, tab); gint total = tabmanagergui_get_n_pages (); if (total == 0) return FALSE; g_tabs = g_list_remove (g_tabs, tab); tabmanager_set_active_tab (total - 2); editor_destroy (tab->editor); gtk_notebook_remove_page (g_tabnotebook, position); g_free (tab); return (total != 1); } /*--------------------------------------------------------------------------*/ void tabmanager_set_active_tab (int position) { if (position == -1) { g_active_tab = NULL; g_active_editor = NULL; } else { g_active_tab = GU_TAB_CONTEXT (g_list_nth_data (g_tabs, position)); g_active_editor = GU_TAB_CONTEXT (g_list_nth_data (g_tabs, position))->editor; } } void tabmanager_create_tab (OpenAct act, const gchar* filename, gchar* opt) { gint pos = 0; GuEditor* editor = gummi_new_environment (filename); if (current_tab_replaceable (act)) { pos = tabmanagergui_replace_page (g_active_tab, editor); } else { GuTabContext* tc = g_new0(GuTabContext, 1); tc->editor = editor; g_tabs = g_list_append(g_tabs, tc); pos = tabmanagergui_create_page (tc, tc->editor); tabmanagergui_set_current_page (pos); } tabmanager_set_active_tab (pos); if (iofunctions_has_swapfile (filename)) { gui_recovery_mode_enable (g_active_tab, filename); // signal handles tabmanager_set_content in this case.. } else { tabmanager_set_content (act, filename, opt); } gui_set_filename_display (g_active_tab, TRUE, TRUE); add_to_recent_list (filename); previewgui_reset (gui->previewgui); } void tabmanager_set_content (OpenAct act, const gchar* filename, gchar* opt) { // Loads the appropriate content in the editor. Seperated from // tab creation function to allow calling it from recovery mode switch (act) { case A_NONE: break; case A_DEFAULT: iofunctions_load_default_text (FALSE); break; case A_LOAD: iofunctions_load_file (gummi->io, filename); break; case A_LOAD_OPT: iofunctions_load_file (gummi->io, opt); break; default: slog(L_FATAL, "can't happen bug\n"); } } void tabmanager_update_tab (const gchar* filename) { /* this function is called when the document is saved. no new editor * or tab object has to be initialised, but we'll need a fileinfo env * to match the new filename and its location and a gui update*/ add_to_recent_list (filename); gui_set_filename_display (g_active_tab, TRUE, TRUE); editor_fileinfo_update (g_active_tab->editor, filename); slog (L_INFO, "Environment updated for %s\n", g_active_tab->editor->filename); previewgui_reset (gui->previewgui); } gboolean tabmanager_has_tabs () { if (g_list_length (g_tabs) == 0) { if (g_active_editor != NULL) { slog (L_ERROR, "Something went terribly wrong in has_tabs\n"); } return FALSE; } return TRUE; } gboolean tabmanager_check_exists (const gchar* filename) { GList *editors; GuEditor* ec; gint ectotal, i; editors = gummi_get_all_editors (); ectotal = g_list_length (editors); for (i=0; ifilename, filename)) return TRUE; } return FALSE; } gummi-0.6.5/src/signals.h0000644000175000017500000000253512040524270012162 00000000000000/** * @file signals.c * @brief Define signals for Gummi * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_SIGNALS_H__ #define __GUMMI_SIGNALS_H__ void gummi_signals_register (void); #endif /* __GUMMI_SIGNALS_H__ */ gummi-0.6.5/src/biblio.h0000644000175000017500000000364712040524270011767 00000000000000/** * @file biblio.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_BIBLIO_H__ #define __GUMMI_BIBLIO_H__ #include #include "latex.h" #define GU_BIBLIO(x) ((GuBiblio*)x) typedef struct _GuBiblio GuBiblio; struct _GuBiblio { GtkProgressBar* progressbar; GtkAdjustment* progressmon; GtkListStore* list_biblios; GtkTreeView* biblio_treeview; GtkLabel* filenm_label; GtkLabel* refnr_label; GtkEntry* list_filter; gchar* basename; double progressval; }; GuBiblio* biblio_init (GtkBuilder* builder); gboolean biblio_detect_bibliography (GuBiblio* bc, GuEditor* ec); gboolean biblio_compile_bibliography (GuBiblio* bc, GuEditor* ec, GuLatex* lc); int biblio_parse_entries (GuBiblio* bc, gchar *bib_content); #endif /* __GUMMI_BIBLIO_H__ */ gummi-0.6.5/src/importer.h0000644000175000017500000000322412040524270012357 00000000000000/** * @file importer.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_IMPORTER_H__ #define __GUMMI_IMPORTER_H__ #include #include #include "editor.h" const gchar* importer_generate_table (gint rows, gint cols, gint borders, gint alignment); const gchar* importer_generate_matrix (gint bracket, gint rows, gint cols); const gchar* importer_generate_image (const gchar* image_file, const gchar* caption, const gchar* label, gdouble scale); #endif /* __GUMMI_IMPORTER_H__ */ gummi-0.6.5/src/Makefile.in0000644000175000017500000013176312040524305012423 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ pkglibexecdir = $(libexecdir)/@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 = : bin_PROGRAMS = gummi$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(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_gummi_OBJECTS = biblio.$(OBJEXT) configfile.$(OBJEXT) \ editor.$(OBJEXT) environment.$(OBJEXT) texlive.$(OBJEXT) \ latexmk.$(OBJEXT) rubber.$(OBJEXT) gui-menu.$(OBJEXT) \ gui-tabmanager.$(OBJEXT) gui-import.$(OBJEXT) \ gui-main.$(OBJEXT) gui-prefs.$(OBJEXT) gui-preview.$(OBJEXT) \ gui-search.$(OBJEXT) gui-snippets.$(OBJEXT) \ gui-infoscreen.$(OBJEXT) gui-project.$(OBJEXT) \ synctex_parser.$(OBJEXT) synctex_parser_utils.$(OBJEXT) \ importer.$(OBJEXT) iofunctions.$(OBJEXT) external.$(OBJEXT) \ project.$(OBJEXT) latex.$(OBJEXT) motion.$(OBJEXT) \ signals.$(OBJEXT) snippets.$(OBJEXT) template.$(OBJEXT) \ update.$(OBJEXT) utils.$(OBJEXT) tabmanager.$(OBJEXT) \ main.$(OBJEXT) gummi_OBJECTS = $(am_gummi_OBJECTS) am__DEPENDENCIES_1 = gummi_DEPENDENCIES = $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(gummi_SOURCES) DIST_SOURCES = $(gummi_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GUI_CFLAGS = @GUI_CFLAGS@ GUI_LIBS = @GUI_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_GTKSPELL = @USE_GTKSPELL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ 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_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gthread_CFLAGS = @gthread_CFLAGS@ gthread_LIBS = @gthread_LIBS@ gtksourceview_CFLAGS = @gtksourceview_CFLAGS@ gtksourceview_LIBS = @gtksourceview_LIBS@ gtkspell_CFLAGS = @gtkspell_CFLAGS@ gtkspell_LIBS = @gtkspell_LIBS@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ poppler_CFLAGS = @poppler_CFLAGS@ poppler_LIBS = @poppler_LIBS@ 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@ AM_CFLAGS = $(GUI_CFLAGS) \ -export-dynamic -Wall -O2 \ -DGUMMI_LIBS=\"$(libdir)/$(PACKAGE)\" \ -DGUMMI_DATA=\"$(datadir)/$(PACKAGE)\" \ -DGUMMI_LOCALES=\"$(datadir)/locale\" gummi_LDADD = $(GUI_LIBS) \ $(LIBINTL) gummi_SOURCES = biblio.c biblio.h \ configfile.c configfile.h \ editor.c editor.h \ environment.c environment.h \ compile/texlive.c compile/texlive.h \ compile/latexmk.c compile/latexmk.h \ compile/rubber.c compile/rubber.h \ gui/gui-menu.c gui/gui-menu.h \ gui/gui-tabmanager.c gui/gui-tabmanager.h \ gui/gui-import.c gui/gui-import.h \ gui/gui-main.c gui/gui-main.h \ gui/gui-prefs.c gui/gui-prefs.h \ gui/gui-preview.c gui/gui-preview.h \ gui/gui-search.c gui/gui-search.h \ gui/gui-snippets.c gui/gui-snippets.h \ gui/gui-infoscreen.c gui/gui-infoscreen.h \ gui/gui-project.c gui/gui-project.h \ syncTeX/synctex_parser.c syncTeX/synctex_parser.h \ syncTeX/synctex_parser_utils.c syncTeX/synctex_parser_utils.h \ importer.c importer.h \ iofunctions.c iofunctions.h \ external.c external.h \ project.c project.h \ latex.c latex.h \ motion.c motion.h \ signals.c signals.h \ snippets.c snippets.h \ template.c template.h \ update.c update.h \ utils.c utils.h \ tabmanager.c tabmanager.h \ constants.h porting.h \ main.c 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) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign 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) gummi$(EXEEXT): $(gummi_OBJECTS) $(gummi_DEPENDENCIES) $(EXTRA_gummi_DEPENDENCIES) @rm -f gummi$(EXEEXT) $(LINK) $(gummi_OBJECTS) $(gummi_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/biblio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configfile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/environment.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/external.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-import.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-infoscreen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-prefs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-preview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-project.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-search.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-snippets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-tabmanager.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/importer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iofunctions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/latex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/latexmk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/motion.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/project.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rubber.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signals.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snippets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synctex_parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synctex_parser_utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tabmanager.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texlive.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` texlive.o: compile/texlive.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT texlive.o -MD -MP -MF $(DEPDIR)/texlive.Tpo -c -o texlive.o `test -f 'compile/texlive.c' || echo '$(srcdir)/'`compile/texlive.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/texlive.Tpo $(DEPDIR)/texlive.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compile/texlive.c' object='texlive.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o texlive.o `test -f 'compile/texlive.c' || echo '$(srcdir)/'`compile/texlive.c texlive.obj: compile/texlive.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT texlive.obj -MD -MP -MF $(DEPDIR)/texlive.Tpo -c -o texlive.obj `if test -f 'compile/texlive.c'; then $(CYGPATH_W) 'compile/texlive.c'; else $(CYGPATH_W) '$(srcdir)/compile/texlive.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/texlive.Tpo $(DEPDIR)/texlive.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compile/texlive.c' object='texlive.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o texlive.obj `if test -f 'compile/texlive.c'; then $(CYGPATH_W) 'compile/texlive.c'; else $(CYGPATH_W) '$(srcdir)/compile/texlive.c'; fi` latexmk.o: compile/latexmk.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT latexmk.o -MD -MP -MF $(DEPDIR)/latexmk.Tpo -c -o latexmk.o `test -f 'compile/latexmk.c' || echo '$(srcdir)/'`compile/latexmk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/latexmk.Tpo $(DEPDIR)/latexmk.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compile/latexmk.c' object='latexmk.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o latexmk.o `test -f 'compile/latexmk.c' || echo '$(srcdir)/'`compile/latexmk.c latexmk.obj: compile/latexmk.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT latexmk.obj -MD -MP -MF $(DEPDIR)/latexmk.Tpo -c -o latexmk.obj `if test -f 'compile/latexmk.c'; then $(CYGPATH_W) 'compile/latexmk.c'; else $(CYGPATH_W) '$(srcdir)/compile/latexmk.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/latexmk.Tpo $(DEPDIR)/latexmk.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compile/latexmk.c' object='latexmk.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o latexmk.obj `if test -f 'compile/latexmk.c'; then $(CYGPATH_W) 'compile/latexmk.c'; else $(CYGPATH_W) '$(srcdir)/compile/latexmk.c'; fi` rubber.o: compile/rubber.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rubber.o -MD -MP -MF $(DEPDIR)/rubber.Tpo -c -o rubber.o `test -f 'compile/rubber.c' || echo '$(srcdir)/'`compile/rubber.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/rubber.Tpo $(DEPDIR)/rubber.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compile/rubber.c' object='rubber.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rubber.o `test -f 'compile/rubber.c' || echo '$(srcdir)/'`compile/rubber.c rubber.obj: compile/rubber.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rubber.obj -MD -MP -MF $(DEPDIR)/rubber.Tpo -c -o rubber.obj `if test -f 'compile/rubber.c'; then $(CYGPATH_W) 'compile/rubber.c'; else $(CYGPATH_W) '$(srcdir)/compile/rubber.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/rubber.Tpo $(DEPDIR)/rubber.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compile/rubber.c' object='rubber.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rubber.obj `if test -f 'compile/rubber.c'; then $(CYGPATH_W) 'compile/rubber.c'; else $(CYGPATH_W) '$(srcdir)/compile/rubber.c'; fi` gui-menu.o: gui/gui-menu.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-menu.o -MD -MP -MF $(DEPDIR)/gui-menu.Tpo -c -o gui-menu.o `test -f 'gui/gui-menu.c' || echo '$(srcdir)/'`gui/gui-menu.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-menu.Tpo $(DEPDIR)/gui-menu.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-menu.c' object='gui-menu.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-menu.o `test -f 'gui/gui-menu.c' || echo '$(srcdir)/'`gui/gui-menu.c gui-menu.obj: gui/gui-menu.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-menu.obj -MD -MP -MF $(DEPDIR)/gui-menu.Tpo -c -o gui-menu.obj `if test -f 'gui/gui-menu.c'; then $(CYGPATH_W) 'gui/gui-menu.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-menu.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-menu.Tpo $(DEPDIR)/gui-menu.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-menu.c' object='gui-menu.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-menu.obj `if test -f 'gui/gui-menu.c'; then $(CYGPATH_W) 'gui/gui-menu.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-menu.c'; fi` gui-tabmanager.o: gui/gui-tabmanager.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-tabmanager.o -MD -MP -MF $(DEPDIR)/gui-tabmanager.Tpo -c -o gui-tabmanager.o `test -f 'gui/gui-tabmanager.c' || echo '$(srcdir)/'`gui/gui-tabmanager.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-tabmanager.Tpo $(DEPDIR)/gui-tabmanager.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-tabmanager.c' object='gui-tabmanager.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-tabmanager.o `test -f 'gui/gui-tabmanager.c' || echo '$(srcdir)/'`gui/gui-tabmanager.c gui-tabmanager.obj: gui/gui-tabmanager.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-tabmanager.obj -MD -MP -MF $(DEPDIR)/gui-tabmanager.Tpo -c -o gui-tabmanager.obj `if test -f 'gui/gui-tabmanager.c'; then $(CYGPATH_W) 'gui/gui-tabmanager.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-tabmanager.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-tabmanager.Tpo $(DEPDIR)/gui-tabmanager.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-tabmanager.c' object='gui-tabmanager.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-tabmanager.obj `if test -f 'gui/gui-tabmanager.c'; then $(CYGPATH_W) 'gui/gui-tabmanager.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-tabmanager.c'; fi` gui-import.o: gui/gui-import.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-import.o -MD -MP -MF $(DEPDIR)/gui-import.Tpo -c -o gui-import.o `test -f 'gui/gui-import.c' || echo '$(srcdir)/'`gui/gui-import.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-import.Tpo $(DEPDIR)/gui-import.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-import.c' object='gui-import.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-import.o `test -f 'gui/gui-import.c' || echo '$(srcdir)/'`gui/gui-import.c gui-import.obj: gui/gui-import.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-import.obj -MD -MP -MF $(DEPDIR)/gui-import.Tpo -c -o gui-import.obj `if test -f 'gui/gui-import.c'; then $(CYGPATH_W) 'gui/gui-import.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-import.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-import.Tpo $(DEPDIR)/gui-import.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-import.c' object='gui-import.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-import.obj `if test -f 'gui/gui-import.c'; then $(CYGPATH_W) 'gui/gui-import.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-import.c'; fi` gui-main.o: gui/gui-main.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-main.o -MD -MP -MF $(DEPDIR)/gui-main.Tpo -c -o gui-main.o `test -f 'gui/gui-main.c' || echo '$(srcdir)/'`gui/gui-main.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-main.Tpo $(DEPDIR)/gui-main.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-main.c' object='gui-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-main.o `test -f 'gui/gui-main.c' || echo '$(srcdir)/'`gui/gui-main.c gui-main.obj: gui/gui-main.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-main.obj -MD -MP -MF $(DEPDIR)/gui-main.Tpo -c -o gui-main.obj `if test -f 'gui/gui-main.c'; then $(CYGPATH_W) 'gui/gui-main.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-main.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-main.Tpo $(DEPDIR)/gui-main.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-main.c' object='gui-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-main.obj `if test -f 'gui/gui-main.c'; then $(CYGPATH_W) 'gui/gui-main.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-main.c'; fi` gui-prefs.o: gui/gui-prefs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-prefs.o -MD -MP -MF $(DEPDIR)/gui-prefs.Tpo -c -o gui-prefs.o `test -f 'gui/gui-prefs.c' || echo '$(srcdir)/'`gui/gui-prefs.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-prefs.Tpo $(DEPDIR)/gui-prefs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-prefs.c' object='gui-prefs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-prefs.o `test -f 'gui/gui-prefs.c' || echo '$(srcdir)/'`gui/gui-prefs.c gui-prefs.obj: gui/gui-prefs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-prefs.obj -MD -MP -MF $(DEPDIR)/gui-prefs.Tpo -c -o gui-prefs.obj `if test -f 'gui/gui-prefs.c'; then $(CYGPATH_W) 'gui/gui-prefs.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-prefs.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-prefs.Tpo $(DEPDIR)/gui-prefs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-prefs.c' object='gui-prefs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-prefs.obj `if test -f 'gui/gui-prefs.c'; then $(CYGPATH_W) 'gui/gui-prefs.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-prefs.c'; fi` gui-preview.o: gui/gui-preview.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-preview.o -MD -MP -MF $(DEPDIR)/gui-preview.Tpo -c -o gui-preview.o `test -f 'gui/gui-preview.c' || echo '$(srcdir)/'`gui/gui-preview.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-preview.Tpo $(DEPDIR)/gui-preview.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-preview.c' object='gui-preview.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-preview.o `test -f 'gui/gui-preview.c' || echo '$(srcdir)/'`gui/gui-preview.c gui-preview.obj: gui/gui-preview.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-preview.obj -MD -MP -MF $(DEPDIR)/gui-preview.Tpo -c -o gui-preview.obj `if test -f 'gui/gui-preview.c'; then $(CYGPATH_W) 'gui/gui-preview.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-preview.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-preview.Tpo $(DEPDIR)/gui-preview.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-preview.c' object='gui-preview.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-preview.obj `if test -f 'gui/gui-preview.c'; then $(CYGPATH_W) 'gui/gui-preview.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-preview.c'; fi` gui-search.o: gui/gui-search.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-search.o -MD -MP -MF $(DEPDIR)/gui-search.Tpo -c -o gui-search.o `test -f 'gui/gui-search.c' || echo '$(srcdir)/'`gui/gui-search.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-search.Tpo $(DEPDIR)/gui-search.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-search.c' object='gui-search.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-search.o `test -f 'gui/gui-search.c' || echo '$(srcdir)/'`gui/gui-search.c gui-search.obj: gui/gui-search.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-search.obj -MD -MP -MF $(DEPDIR)/gui-search.Tpo -c -o gui-search.obj `if test -f 'gui/gui-search.c'; then $(CYGPATH_W) 'gui/gui-search.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-search.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-search.Tpo $(DEPDIR)/gui-search.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-search.c' object='gui-search.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-search.obj `if test -f 'gui/gui-search.c'; then $(CYGPATH_W) 'gui/gui-search.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-search.c'; fi` gui-snippets.o: gui/gui-snippets.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-snippets.o -MD -MP -MF $(DEPDIR)/gui-snippets.Tpo -c -o gui-snippets.o `test -f 'gui/gui-snippets.c' || echo '$(srcdir)/'`gui/gui-snippets.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-snippets.Tpo $(DEPDIR)/gui-snippets.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-snippets.c' object='gui-snippets.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-snippets.o `test -f 'gui/gui-snippets.c' || echo '$(srcdir)/'`gui/gui-snippets.c gui-snippets.obj: gui/gui-snippets.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-snippets.obj -MD -MP -MF $(DEPDIR)/gui-snippets.Tpo -c -o gui-snippets.obj `if test -f 'gui/gui-snippets.c'; then $(CYGPATH_W) 'gui/gui-snippets.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-snippets.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-snippets.Tpo $(DEPDIR)/gui-snippets.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-snippets.c' object='gui-snippets.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-snippets.obj `if test -f 'gui/gui-snippets.c'; then $(CYGPATH_W) 'gui/gui-snippets.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-snippets.c'; fi` gui-infoscreen.o: gui/gui-infoscreen.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-infoscreen.o -MD -MP -MF $(DEPDIR)/gui-infoscreen.Tpo -c -o gui-infoscreen.o `test -f 'gui/gui-infoscreen.c' || echo '$(srcdir)/'`gui/gui-infoscreen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-infoscreen.Tpo $(DEPDIR)/gui-infoscreen.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-infoscreen.c' object='gui-infoscreen.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-infoscreen.o `test -f 'gui/gui-infoscreen.c' || echo '$(srcdir)/'`gui/gui-infoscreen.c gui-infoscreen.obj: gui/gui-infoscreen.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-infoscreen.obj -MD -MP -MF $(DEPDIR)/gui-infoscreen.Tpo -c -o gui-infoscreen.obj `if test -f 'gui/gui-infoscreen.c'; then $(CYGPATH_W) 'gui/gui-infoscreen.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-infoscreen.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-infoscreen.Tpo $(DEPDIR)/gui-infoscreen.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-infoscreen.c' object='gui-infoscreen.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-infoscreen.obj `if test -f 'gui/gui-infoscreen.c'; then $(CYGPATH_W) 'gui/gui-infoscreen.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-infoscreen.c'; fi` gui-project.o: gui/gui-project.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-project.o -MD -MP -MF $(DEPDIR)/gui-project.Tpo -c -o gui-project.o `test -f 'gui/gui-project.c' || echo '$(srcdir)/'`gui/gui-project.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-project.Tpo $(DEPDIR)/gui-project.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-project.c' object='gui-project.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-project.o `test -f 'gui/gui-project.c' || echo '$(srcdir)/'`gui/gui-project.c gui-project.obj: gui/gui-project.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gui-project.obj -MD -MP -MF $(DEPDIR)/gui-project.Tpo -c -o gui-project.obj `if test -f 'gui/gui-project.c'; then $(CYGPATH_W) 'gui/gui-project.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-project.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gui-project.Tpo $(DEPDIR)/gui-project.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gui/gui-project.c' object='gui-project.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gui-project.obj `if test -f 'gui/gui-project.c'; then $(CYGPATH_W) 'gui/gui-project.c'; else $(CYGPATH_W) '$(srcdir)/gui/gui-project.c'; fi` synctex_parser.o: syncTeX/synctex_parser.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctex_parser.o -MD -MP -MF $(DEPDIR)/synctex_parser.Tpo -c -o synctex_parser.o `test -f 'syncTeX/synctex_parser.c' || echo '$(srcdir)/'`syncTeX/synctex_parser.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/synctex_parser.Tpo $(DEPDIR)/synctex_parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='syncTeX/synctex_parser.c' object='synctex_parser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctex_parser.o `test -f 'syncTeX/synctex_parser.c' || echo '$(srcdir)/'`syncTeX/synctex_parser.c synctex_parser.obj: syncTeX/synctex_parser.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctex_parser.obj -MD -MP -MF $(DEPDIR)/synctex_parser.Tpo -c -o synctex_parser.obj `if test -f 'syncTeX/synctex_parser.c'; then $(CYGPATH_W) 'syncTeX/synctex_parser.c'; else $(CYGPATH_W) '$(srcdir)/syncTeX/synctex_parser.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/synctex_parser.Tpo $(DEPDIR)/synctex_parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='syncTeX/synctex_parser.c' object='synctex_parser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctex_parser.obj `if test -f 'syncTeX/synctex_parser.c'; then $(CYGPATH_W) 'syncTeX/synctex_parser.c'; else $(CYGPATH_W) '$(srcdir)/syncTeX/synctex_parser.c'; fi` synctex_parser_utils.o: syncTeX/synctex_parser_utils.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctex_parser_utils.o -MD -MP -MF $(DEPDIR)/synctex_parser_utils.Tpo -c -o synctex_parser_utils.o `test -f 'syncTeX/synctex_parser_utils.c' || echo '$(srcdir)/'`syncTeX/synctex_parser_utils.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/synctex_parser_utils.Tpo $(DEPDIR)/synctex_parser_utils.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='syncTeX/synctex_parser_utils.c' object='synctex_parser_utils.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctex_parser_utils.o `test -f 'syncTeX/synctex_parser_utils.c' || echo '$(srcdir)/'`syncTeX/synctex_parser_utils.c synctex_parser_utils.obj: syncTeX/synctex_parser_utils.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctex_parser_utils.obj -MD -MP -MF $(DEPDIR)/synctex_parser_utils.Tpo -c -o synctex_parser_utils.obj `if test -f 'syncTeX/synctex_parser_utils.c'; then $(CYGPATH_W) 'syncTeX/synctex_parser_utils.c'; else $(CYGPATH_W) '$(srcdir)/syncTeX/synctex_parser_utils.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/synctex_parser_utils.Tpo $(DEPDIR)/synctex_parser_utils.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='syncTeX/synctex_parser_utils.c' object='synctex_parser_utils.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctex_parser_utils.obj `if test -f 'syncTeX/synctex_parser_utils.c'; then $(CYGPATH_W) 'syncTeX/synctex_parser_utils.c'; else $(CYGPATH_W) '$(srcdir)/syncTeX/synctex_parser_utils.c'; fi` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" 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 all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags 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 uninstall \ uninstall-am uninstall-binPROGRAMS # 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: gummi-0.6.5/src/update.h0000644000175000017500000000257612040524270012011 00000000000000/** * @file update.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_UPDATE_CHECK__ #define __GUMMI_UPDATE_CHECK__ #include #include gboolean updatecheck (GtkWindow* parent); #endif /* __GUMMI_UPDATE_CHECK__ */ gummi-0.6.5/src/template.h0000644000175000017500000000407612040524270012337 00000000000000/** * @file template.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_TEMPLATE_H__ #define __GUMMI_TEMPLATE_H__ #include #include typedef struct _templdata { gchar* itemname; gchar* itemdata; } templdata; typedef struct _Template { GtkWindow* templatewindow; GtkTreeView* templateview; GtkListStore* list_templates; GtkCellRendererText* template_render; GtkTreeViewColumn* template_col; GtkLabel* template_label; GtkWidget* template_add; GtkWidget* template_remove; GtkWidget* template_open; } GuTemplate; GuTemplate* template_init (GtkBuilder* builder); void template_setup (); void template_add_new_entry (GuTemplate* t); void template_remove_entry (GuTemplate* t); void template_create_file (GuTemplate* t, gchar* filename, gchar* text); gchar* template_get_selected_path (GuTemplate* t); void template_data_free(templdata* data); #endif /* __GUMMI_TEMPLATE_H__ */ gummi-0.6.5/src/editor.h0000644000175000017500000001045612040524270012011 00000000000000/** * @file editor.h * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_EDITOR_H__ #define __GUMMI_EDITOR_H__ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "motion.h" #include #include #include #include #include #define ec_buffer GTK_TEXT_BUFFER(ec->buffer) #define ec_view GTK_TEXT_VIEW(ec->view) #define GU_EDITOR(x) ((GuEditor*)x) typedef struct _GuEditor GuEditor; struct _GuEditor { /* File related members */ gint workfd; gchar* fdname; gchar* filename; gchar* basename; gchar* pdffile; gchar* workfile; gchar* bibfile; gchar* projfile; /* GUI related members */ GtkSourceView* view; GtkSourceBuffer* buffer; GtkSourceStyleSchemeManager* stylemanager; GtkTextTag* errortag; GtkTextTag* searchtag; GtkTextTagTable* editortags; gboolean replace_activated; gchar* term; gboolean backwards; gboolean wholeword; gboolean matchcase; gint sigid[5]; GtkTextIter last_edit; gboolean sync_to_last_edit; }; GuEditor* editor_new (GuMotion* mc); void editor_fileinfo_update (GuEditor* ec, const gchar* filename); void editor_fileinfo_cleanup (GuEditor* ec); gboolean editor_fileinfo_update_biblio (GuEditor* ec, const gchar* filename); void editor_destroy (GuEditor* ec); void editor_sourceview_config (GuEditor* ec); #ifdef USE_GTKSPELL void editor_activate_spellchecking (GuEditor* ec, gboolean status); #endif void editor_fill_buffer (GuEditor* ec, const gchar* text); /* editor_grab_buffer will return a newly allocated string */ gchar* editor_grab_buffer (GuEditor* ec); void editor_insert_package (GuEditor* ec, const gchar* package); void editor_insert_bib (GuEditor* ec, const gchar* package); void editor_set_selection_textstyle (GuEditor* ec, const gchar* type); void editor_apply_errortags (GuEditor* ec, gint* lines); void editor_jumpto_search_result (GuEditor* ec, gint direction); void editor_start_search (GuEditor* ec, const gchar* term, gboolean backwards, gboolean wholeword, gboolean matchcase); void editor_apply_searchtag (GuEditor* ec); void editor_search_next (GuEditor* ec, gboolean inverse); void editor_start_replace_next (GuEditor* ec, const gchar* term, const gchar* rterm, gboolean backwards, gboolean wholeword, gboolean matchcase); void editor_start_replace_all (GuEditor* ec, const gchar* term, const gchar* rterm, gboolean backwards, gboolean wholeword, gboolean matchcase); void editor_get_current_iter (GuEditor* ec, GtkTextIter* current); inline void editor_scroll_to_cursor (GuEditor* ec); void editor_scroll_to_line (GuEditor* ec, gint line); void editor_undo_change (GuEditor* ec); void editor_redo_change (GuEditor* ec); void editor_set_style_scheme_by_id (GuEditor* ec, const gchar* id); void set_style_fg_bg (GObject* obj, GtkSourceStyleScheme* scheme, gchar* styleName, gchar* defaultBG); gint schemes_compare (gconstpointer a, gconstpointer b); GList* editor_list_style_scheme_sorted (void); gboolean editor_buffer_changed (GuEditor* ec); #endif /* __GUMMI_EDITOR_H__ */ gummi-0.6.5/src/configfile.h0000644000175000017500000000450712040524270012630 00000000000000/** * @file configfile.h * @brief handle configuration file * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __GUMMI_CONFIGFILE__ #define __GUMMI_CONFIGFILE__ #include #include void config_init (const gchar* filename); void config_set_default (void); /** * @brief get value of a setting * @param term the name of the setting * @return a pointer that points to the static gchar* of the setting value. If * the value type is boolean, config_get_value will return NULL for False * and non-NULL for True */ const gchar* config_get_value (const gchar* term); /** * @brief set value of a setting, the settings will be write back immediately * @param term the name of the setting * @param value the value of the setting */ void config_set_value (const gchar* term, const gchar* value); /** * @brief begin a series of config_set_value operation. The changes won't be * written back until config_commit() is called. */ void config_begin (void); /** * @brief Terminate a series of config_set_value operation and write changes * back to the file. */ void config_commit (void); void config_load (void); void config_save (void); void config_clean_up (void); #endif /* __GUMMI_CONFIGFILE__ */ gummi-0.6.5/src/external.c0000644000175000017500000001220512040524270012332 00000000000000/** * @file external.c * @brief existence and compability checks for external tools * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "external.h" #include "constants.h" #include "utils.h" /* local functions */ static gchar* get_version_output (const gchar* command, int linenr); static gchar* version_latexmk (const gchar* output); static gchar* version_rubber (const gchar* output); static gdouble get_texlive_version (void); gboolean external_exists (const gchar* program) { gchar *fullpath = g_find_program_in_path (program); if (fullpath == NULL) return FALSE; gboolean result = g_file_test (fullpath, G_FILE_TEST_EXISTS); g_free(fullpath); return result; } gboolean external_hasflag (const gchar* program, const gchar* flag) { return TRUE; } static gchar* get_version_output (const gchar* command, int linenr) { const gchar* getversion = g_strdup_printf("%s --version", command); Tuple2 cmdgetv = utils_popen_r (getversion, NULL); gchar* output = (gchar*)cmdgetv.second; gchar* result = g_strdup ("Unknown"); if (output == NULL) { slog (L_ERROR, "Error detecting version for %s. " "Please report a bug\n", command); return result; } gchar** splitted = g_strsplit(output, "\n", BUFSIZ); result = splitted[linenr]; return result; } gdouble external_version2 (ExternalProg program) { switch(program) { case EX_TEXLIVE: return get_texlive_version (); default: return -1; } } gchar* external_version (const gchar* program) { const gchar* getversion = g_strdup_printf("%s --version", program); Tuple2 cmdgetv = utils_popen_r (getversion, NULL); gchar* output = (gchar*)cmdgetv.second; gchar* result = g_strdup ("Unknown, please report a bug"); if (output == NULL) return result; gchar** lines = g_strsplit(output, "\n", BUFSIZ); result = lines[0]; /* pdfTeX 3.1415926-1.40.10 (TeX Live 2009) pdfTeX 3.1415926-1.40.11-2.2 (TeX Live 2010) pdfTeX 3.1415926-2.3-1.40.12 (TeX Live 2011) */ if (STR_EQU (program, C_RUBBER)) { result = version_rubber (result); } else if (STR_EQU (program, C_LATEXMK)) { result = version_latexmk (lines[1]); } return result; } static gdouble get_texlive_version (void) { gdouble version = 0; gchar* output = get_version_output (C_LATEX, 0); /* Keep in mind that some distros like themselves a lot: * pdfTeX 3.1415926-1.40.11-2.2 (TeX Live 2010) * pdfTeX 3.1415926-1.40.11-2.2 (TeX Live 2009/Debian) * pdfTeX 3.1415926-2.3-1.40.12 (TeX Live 2012/dev/Arch Linux) * pdfTeX 3.1415926-2.3-1.40.12 (Web2C 2011) * * Also, TeXLive utilities from versions before 2008 do not * mention the year in the --version tag. */ if ((!utils_subinstr ("TeX Live", output, FALSE)) && (!utils_subinstr ("Web2C", output, FALSE))) { return version; } gchar** splitted = g_strsplit (output, "(", BUFSIZ); guint size = g_strv_length (splitted); gchar* segment = g_strdup (splitted[size-1]); segment = g_strjoinv("", g_strsplit(segment, "Web2C", -1)); gchar* resultstr = ""; // make sure to only allow numeric characters in the result: int n; for (n=0;n * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #ifndef WIN32 #include #include #endif #ifdef WIN32 #include #endif #include #include #include "configfile.h" #include "editor.h" #include "environment.h" #include "gui/gui-main.h" #include "gui/gui-preview.h" #include "latex.h" #include "snippets.h" #include "utils.h" /* set up uri using appropriate formatting for OS http://en.wikipedia.org/wiki/File_URI_scheme#Linux */ #ifdef WIN32 const gchar *urifrmt = "file:///"; #else const gchar *urifrmt = "file://"; #endif extern GummiGui* gui; extern Gummi* gummi; /* Typesetter pid */ pid_t typesetter_pid = 0; GuMotion* motion_init (void) { GuMotion* m = g_new0 (GuMotion, 1); m->key_press_timer = 0; m->signal_mutex = g_mutex_new (); m->compile_mutex = g_mutex_new (); m->compile_cv = g_cond_new (); m->keep_running = TRUE; m->keep_running = FALSE; m->typesetter_pid = &typesetter_pid; return m; } void motion_start_compile_thread (GuMotion* m) { GError* err = NULL; m->keep_running = TRUE; m->compile_thread = g_thread_create (motion_compile_thread, m, TRUE, &err); if (!m->compile_thread) { slog (L_G_FATAL, "Can not create new thread: %s\n", err->message); g_error_free(err); } } void motion_stop_compile_thread (GuMotion* m) { L_F_DEBUG; m->keep_running = FALSE; motion_do_compile(m); g_thread_join(m->compile_thread); } void motion_pause_compile_thread (GuMotion* m) { L_F_DEBUG; m->pause = TRUE; motion_do_compile(m); } void motion_resume_compile_thread (GuMotion* m) { L_F_DEBUG; m->pause = FALSE; motion_do_compile(m); } void motion_kill_typesetter (GuMotion* m) { if (*m->typesetter_pid) { gchar* command = NULL; /* Kill children spawned by typesetter command/script, don't know * how to do this programatically yet(glib doesn't not provides any * function for killing a process), so use pkill for now. For * win32 there's currently nothing we can do about it. */ #ifndef WIN32 command = g_strdup_printf("pkill -15 -P %d", *m->typesetter_pid); system(command); g_free(command); /* Make sure typesetter command is terminated */ if (kill(*m->typesetter_pid, 15)) { slog(L_ERROR, "Could not kill process: %s\n", g_strerror(errno)); } #else if (!TerminateProcess(*m->typesetter_pid, 0)) { gchar *msg = g_win32_error_message(GetLastError()); slog (L_ERROR, "Could not kill process: %s\n", msg ? msg : "(null)"); g_free(msg); } #endif slog(L_DEBUG, "Typeseter[pid=%d]: Killed\n", *m->typesetter_pid); *m->typesetter_pid = 0; /* XXX: Ugly hack: delay compile signal */ motion_start_timer (m); } } gboolean motion_do_compile (gpointer user) { L_F_DEBUG; GuMotion* mc = GU_MOTION (user); if (!g_mutex_trylock (mc->signal_mutex)) goto ret; g_cond_signal (mc->compile_cv); g_mutex_unlock (mc->signal_mutex); ret: return (STR_EQU (config_get_value ("compile_scheme"), "real_time")); } gpointer motion_compile_thread (gpointer data) { L_F_DEBUG; GuMotion* mc = GU_MOTION (data); GuEditor* editor = NULL; GuLatex* latex = NULL; GuPreviewGui* pc = NULL; GtkWidget* focus = NULL; gboolean precompile_ok = FALSE; gboolean compile_status = FALSE; gchar *editortext; latex = gummi_get_latex (); pc = gui->previewgui; while (TRUE) { if (!g_mutex_trylock (mc->compile_mutex)) continue; slog (L_DEBUG, "Compile thread sleeping...\n"); g_cond_wait (mc->compile_cv, mc->compile_mutex); slog (L_DEBUG, "Compile thread awoke.\n"); if (!(editor = gummi_get_active_editor ())) { g_mutex_unlock (mc->compile_mutex); continue; } if (!mc->keep_running) { g_mutex_unlock (mc->compile_mutex); g_thread_exit (NULL); } if (mc->pause) { g_mutex_unlock (mc->compile_mutex); continue; } gdk_threads_enter (); focus = gtk_window_get_focus (gui->mainwindow); editortext = latex_update_workfile (latex, editor); precompile_ok = latex_precompile_check (editortext); g_free (editortext); gtk_widget_grab_focus (focus); if (!precompile_ok) { motion_start_errormode (mc, "document_error"); gdk_threads_leave(); g_mutex_unlock (mc->compile_mutex); continue; } gdk_threads_leave(); compile_status = latex_update_pdffile (latex, editor); *mc->typesetter_pid = 0; g_mutex_unlock (mc->compile_mutex); if (!mc->keep_running) g_thread_exit (NULL); gdk_threads_enter (); previewgui_update_statuslight(compile_status? "gtk-yes": "gtk-no"); /* Make sure the editor still exists after compile */ if (editor == gummi_get_active_editor()) { editor_apply_errortags (editor, latex->errorlines); gui_buildlog_set_text (latex->compilelog); if (latex->errorlines[0]) { motion_start_errormode (mc, "compile_error"); } else { if (!pc->uri) { char* uri = g_strconcat (urifrmt, editor->pdffile, NULL); previewgui_set_pdffile (pc, uri); g_free(uri); } else { previewgui_refresh (gui->previewgui, editor->sync_to_last_edit ? &(editor->last_edit) : NULL, editor->workfile); } if (mc->errormode) motion_stop_errormode (mc); } } gdk_threads_leave (); } } void motion_force_compile (GuMotion *mc) { /* sort-of signal to force a compile run after certain actions that * don't trigger the regular editor content change signals */ gummi->latex->modified_since_compile = TRUE; motion_do_compile (mc); } void motion_start_errormode (GuMotion *mc, const gchar *msg) { if (mc->errormode) { infoscreengui_set_message (gui->infoscreengui, msg); return; } previewgui_save_position (gui->previewgui); infoscreengui_enable (gui->infoscreengui, msg); mc->errormode = TRUE; } void motion_stop_errormode (GuMotion *mc) { if (!mc->errormode) return; previewgui_restore_position (gui->previewgui); infoscreengui_disable (gui->infoscreengui); mc->errormode = FALSE; } gboolean motion_idle_cb (gpointer user) { if (gui->previewgui->preview_on_idle) motion_do_compile (GU_MOTION (user)); return FALSE; } void motion_start_timer (GuMotion* mc) { motion_stop_timer (mc); mc->key_press_timer = g_timeout_add_seconds (atoi ( config_get_value ("compile_timer")), motion_idle_cb, mc); } void motion_stop_timer (GuMotion* mc) { if (mc->key_press_timer > 0) { g_source_remove (mc->key_press_timer); mc->key_press_timer = 0; } } gboolean on_key_press_cb (GtkWidget* widget, GdkEventKey* event, void* user) { if (!event->is_modifier) { motion_stop_timer (GU_MOTION (user)); } if (config_get_value("snippets") && snippets_key_press_cb (gummi_get_snippets (), gummi_get_active_editor (), event)) return TRUE; return FALSE; } gboolean on_key_release_cb (GtkWidget* widget, GdkEventKey* event, void* user) { if (!event->is_modifier) { motion_start_timer (GU_MOTION (user)); } if (config_get_value("snippets") && snippets_key_release_cb (gummi_get_snippets (), gummi_get_active_editor (), event)) return TRUE; return FALSE; } gummi-0.6.5/src/configfile.c0000644000175000017500000001743212040524270012624 00000000000000/** * @file configfile.c * @brief handle configuration file * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "configfile.h" #include #include #include #include #include #include #include "environment.h" #include "utils.h" static gchar* config_filename = 0; static slist* config_head = 0; static gboolean transaction = FALSE; const gchar config_str[] = "[Global]\n" "config_version = "PACKAGE_VERSION"\n" "mainwindow_x = 0\n" "mainwindow_y = 0\n" "mainwindow_w = 792\n" "mainwindow_h = 558\n" "\n" "[Editor]\n" "line_numbers = True\n" "highlighting = True\n" "textwrapping = True\n" "wordwrapping = True\n" "tabwidth = 4\n" "spaces_instof_tabs = False\n" "autoindentation = True\n" "style_scheme = classic\n" "spelling = False\n" "snippets = True\n" "toolbar = True\n" "statusbar = True\n" "rightpane = True\n" "spell_language = None\n" "font = Monospace 10\n" "\n" "[Preview]\n" "zoommode = pagewidth\n" "pagelayout = one_column\n" "autosync = False\n" "animated_scroll = always\n" "cache_size = 150\n" "\n" "[File]\n" "autosaving = False\n" "autosave_timer = 10\n" "autoexport = False\n" "\n" "[Compile]\n" "typesetter = pdflatex\n" "compile_steps = texpdf\n" "compile_status = True\n" "compile_scheme = on_idle\n" "compile_timer = 1\n" "\n" "[CompileOpts]\n" "shellescape = True\n" "synctex = False\n" "\n" "[Misc]\n" "recent1 = __NULL__\n" "recent2 = __NULL__\n" "recent3 = __NULL__\n" "recent4 = __NULL__\n" "recent5 = __NULL__\n"; void config_init (const gchar* filename) { const gchar* config_version = NULL; gchar* dirname = g_path_get_dirname (filename); g_mkdir_with_parents (dirname, DIR_PERMS); g_free (dirname); slog (L_INFO, "configuration file: %s\n", filename); g_free (config_filename); config_filename = g_strdup (filename); config_load (); config_version = config_get_value ("config_version"); /* Migration from earlier version to newer version (first run only) */ if (utils_subinstr("0.5", (gchar*)config_version, FALSE)) { const gchar* text = config_get_value ("welcome"); gchar* templname = g_strdup_printf("oldwelcome%s", config_version); gchar* filename = g_build_filename (g_get_user_config_dir (), "gummi", "templates", templname, NULL); gchar* filepath = g_path_get_dirname (filename); if (!g_file_test (filepath, G_FILE_TEST_IS_DIR)) { slog (L_WARNING, "Template directory does not exist, creating..\n"); g_mkdir_with_parents (filepath, DIR_PERMS); } if (!g_file_test (filename, G_FILE_TEST_EXISTS) && utils_set_file_contents (filename, text, -1)) { slog (L_WARNING, "Old welcome text successfully backed up..\n"); } else { slog (L_WARNING, "Could not backup old welcome text..\n"); } g_free (templname); g_free (filename); g_free (filepath); } /* config_version field is not in gummi.cfg before 0.5.0 */ if (0 == config_version[0]) { slog (L_INFO, "found old configuration file, replacing it with new " "one ...\n"); config_set_default (); } else if (!STR_EQU (PACKAGE_VERSION, config_version)) { slog (L_INFO, "updating version tag in configuration file...\n"); config_set_value ("config_version", PACKAGE_VERSION); } else { config_save (); } } void config_set_default (void) { FILE* fh = 0; if (! (fh = fopen (config_filename, "w"))) slog (L_FATAL, "can't open config for writing... abort\n"); fwrite (config_str, strlen (config_str), 1, fh); fclose (fh); config_load (); } /** * Returns the String assigned to a config parameter. * If the String is "False", NULL is returned, thus in the case of a boolean * parameter it is possible to write * if (config_get_value("parameter_name")) {...} */ const gchar* config_get_value (const gchar* term) { gchar* ret = NULL; slist* index = slist_find (config_head, term, FALSE, TRUE); ret = index->second; if (ret && STR_EQU (ret, "False")) return NULL; return ret; } void config_set_value (const gchar* term, const gchar* value) { if (!config_head) slog (L_FATAL, "configuration not initialized\n"); slist* index = slist_find (config_head, term, FALSE, TRUE); g_free (index->second); index->second = g_strdup (value? value: ""); if (!transaction) config_save (); } void config_begin (void) { transaction = TRUE; } void config_commit (void) { transaction = FALSE; config_save(); } void config_load (void) { FILE* fh = 0; gchar buf[BUFSIZ]; gchar** seg = NULL; slist* current = NULL; slist* prev = NULL; if (config_head) config_clean_up (); if (! (fh = fopen (config_filename, "r"))) { slog (L_ERROR, "can't find configuration file, reseting to default\n"); config_set_default (); return config_load (); } /* In the occurence of a crash, the config file can be left open and the * contents wiped. Gummi segfaults at the start when the file is empty */ gchar* contents; g_file_get_contents(config_filename, &contents, NULL, NULL); if (strlen(contents) == 0) { slog (L_ERROR, "config file appears empty, reseting to default\n"); config_set_default (); return config_load (); } current = config_head = prev = g_new0 (slist, 1); while (fgets (buf, BUFSIZ, fh)) { buf[strlen (buf) -1] = 0; /* remove trailing '\n' */ seg = g_strsplit(buf, "=", 2); if (seg[0]) { current->first = g_strdup (g_strstrip(seg[0])); current->second = g_strdup (seg[1]? g_strstrip(seg[1]): NULL); } else { current->first = g_strdup(""); current->second = NULL; } g_strfreev(seg); prev = current; current->next = g_new0 (slist, 1); current = current->next; } g_free (current); prev->next = NULL; fclose (fh); } void config_save (void) { FILE* fh = 0; slist* current = config_head; if (! (fh = fopen (config_filename, "w"))) slog (L_FATAL, "can't open config for writing... abort\n"); while (current) { fputs (current->first, fh); if (current->second) { fputs (" = ", fh); fputs (current->second, fh); } fputs ("\n", fh); current = current->next; } fclose (fh); } void config_clean_up (void) { slist* prev = config_head; slist* current; while (prev) { current = prev->next; g_free (prev); prev = current; } config_head = NULL; } gummi-0.6.5/src/environment.c0000644000175000017500000000635512040524270013065 00000000000000/** * @file environment.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "configfile.h" #include "environment.h" #include "gui/gui-main.h" #include "utils.h" Gummi* gummi = 0; GummiGui* gui = 0; Gummi* gummi_init (GuMotion* mo, GuIOFunc* io, GuLatex* latex, GuBiblio* bib, GuTemplate* tpl, GuSnippets* snip, GuTabmanager* tabm, GuProject* proj) { Gummi* g = g_new0 (Gummi, 1); g->io = io; g->motion = mo; g->latex = latex; g->biblio = bib; g->templ = tpl; g->snippets = snip; g->tabmanager = tabm; g->project = proj; return g; } gboolean gummi_project_active (void) { if (gummi->project->projfile) return TRUE; return FALSE; } gchar* gummi_get_projectfile (void) { return gummi->project->projfile; } GuEditor* gummi_new_environment (const gchar* filename) { GuEditor* ec = editor_new (gummi->motion); editor_fileinfo_update (ec, filename); slog (L_INFO, "\n"); slog (L_INFO, "Environment created for:\n"); slog (L_INFO, "TEX: %s\n", ec->filename); slog (L_INFO, "TMP: %s\n", ec->workfile); slog (L_INFO, "PDF: %s\n", ec->pdffile); return ec; } GummiGui* gummi_get_gui (void) { return gui; } GuEditor* gummi_get_active_editor (void) { return g_active_editor; } GList* gummi_get_all_tabs (void) { return gummi->tabmanager->tabs; } GList* gummi_get_all_editors (void) { int tabtotal, i; GuEditor* ec; GList* editors = NULL; GList *tabs = gummi_get_all_tabs(); tabtotal = g_list_length(tabs); for (i = 0; i < tabtotal; ++i) { ec = GU_TAB_CONTEXT (g_list_nth_data (tabs, i))->editor; editors = g_list_append (editors, ec); } return editors; } GuIOFunc* gummi_get_io (void) { return gummi->io; } GuMotion* gummi_get_motion (void) { return gummi->motion; } GuLatex* gummi_get_latex (void) { return gummi->latex; } GuBiblio* gummi_get_biblio (void) { return gummi->biblio; } GuTemplate* gummi_get_template (void) { return gummi->templ; } GuSnippets* gummi_get_snippets (void) { return gummi->snippets; } gummi-0.6.5/src/editor.c0000644000175000017500000007322412040524270012006 00000000000000/** * @file editor.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "editor.h" #include #include #include #include #include #include #include #ifdef USE_GTKSPELL # include #endif #include #include #include #include "configfile.h" #include "constants.h" #include "environment.h" #include "utils.h" static void on_inserted_text(GtkTextBuffer *textbuffer,GtkTextIter *location, gchar *text,gint len, gpointer user_data); static void on_delete_range(GtkTextBuffer *textbuffer,GtkTextIter *start, GtkTextIter *end, gpointer user_data); const gchar style[][3][20] = { { "tool_bold", "\\textbf{", "}" }, { "tool_italic", "\\emph{", "}" }, { "tool_unline", "\\underline{", "}" }, { "tool_left", "\\begin{flushleft}", "\\end{flushleft}"}, { "tool_center", "\\begin{center}", "\\end{center}"}, { "tool_right", "\\begin{flushright}", "\\end{flushright}"} }; GuEditor* editor_new (GuMotion* mc) { GuEditor* ec = g_new0 (GuEditor, 1); /* File related member initialization */ ec->workfd = -1; ec->fdname = NULL; ec->filename = NULL; /* current opened file name in workspace */ ec->basename = NULL; /* use this to form .dvi/.ps/.log etc. files */ ec->pdffile = NULL; ec->workfile = NULL; ec->bibfile = NULL; ec->projfile = NULL; GtkSourceLanguageManager* manager = gtk_source_language_manager_new (); GtkSourceLanguage* lang = gtk_source_language_manager_get_language (manager, "latex"); ec->buffer = gtk_source_buffer_new_with_language (lang); ec->view = GTK_SOURCE_VIEW (gtk_source_view_new_with_buffer (ec->buffer)); ec->stylemanager = gtk_source_style_scheme_manager_get_default (); ec->errortag = gtk_text_tag_new ("error"); ec->searchtag = gtk_text_tag_new ("search"); ec->editortags = gtk_text_buffer_get_tag_table (ec_buffer); ec->replace_activated = FALSE; ec->term = NULL; gtk_source_view_set_tab_width (ec->view, atoi (config_get_value ("tabwidth"))); gtk_source_view_set_insert_spaces_instead_of_tabs (ec->view, TO_BOOL (config_get_value ("spaces_instof_tabs"))); gtk_source_view_set_auto_indent (ec->view, TO_BOOL (config_get_value ("autoindentation"))); #ifdef USE_GTKSPELL if (config_get_value ("spelling")) editor_activate_spellchecking (ec, TRUE); #endif editor_sourceview_config (ec); gtk_text_buffer_set_modified (ec_buffer, FALSE); /* Register motion callback */ ec->sigid[0] = g_signal_connect (ec->view, "key-press-event", G_CALLBACK (on_key_press_cb), mc); ec->sigid[1] = g_signal_connect (ec->view, "key-release-event", G_CALLBACK (on_key_release_cb), mc); ec->sigid[2] = g_signal_connect (ec->buffer, "changed", G_CALLBACK (check_preview_timer), NULL); ec->sigid[3] = g_signal_connect_after(ec->buffer, "insert-text", G_CALLBACK(on_inserted_text), ec); ec->sigid[4] = g_signal_connect_after(ec->buffer, "delete-range", G_CALLBACK(on_delete_range), ec); return ec; } void editor_destroy (GuEditor* ec) { gint i = 0; for (i = 0; i < 2; ++i) { if (g_signal_handler_is_connected (ec->view, ec->sigid[i])) { g_signal_handler_disconnect (ec->view, ec->sigid[i]); } } for (i = 2; i < 5; ++i) { if (g_signal_handler_is_connected (ec->buffer, ec->sigid[i])) { g_signal_handler_disconnect (ec->buffer, ec->sigid[i]); } } editor_fileinfo_cleanup (ec); g_free(ec); } static void on_inserted_text(GtkTextBuffer *textbuffer,GtkTextIter *location, gchar *text,gint len, gpointer user_data) { if (location == NULL || user_data == NULL) { return; } GuEditor* e = GU_EDITOR(user_data); e->last_edit = *location; e->sync_to_last_edit = TRUE; } static void on_delete_range(GtkTextBuffer *textbuffer,GtkTextIter *start, GtkTextIter *end, gpointer user_data) { if (start == NULL || user_data == NULL) { return; } GuEditor* e = GU_EDITOR(user_data); e->last_edit = *start; e->sync_to_last_edit = TRUE; } /* FileInfo: * When a TeX document includes materials from other files (image, documents, * bibliography ... etc), pdflatex will try to find those files under the * working directory if the include path is not absolute. * Before Gummi svn505, gummi copies the TeX file to a temporarily directory * and compile there, because of this, the included files can't be located if * the include path is not absolute. In svn505 we copy the TeX file to the * same directory as the original TeX document but named it as '.FILENAME.swp'. * Since pdflatex refuses to compile TeX files with '.' prefixed, we have to * set the environment variable 'openout_any=a'. * * For a newly created document, all files including the TeX file is stored * under the temp directory. For files that are already saved, only the * workfile is saved under DIRNAME (FILENAME). Other compilation-related files * are located in the temp directory. * * P.S. pdflatex will automatically strip the suffix, so for a file named * FILE.tex under /absolute/path/: * * filename = /absolute/path/FILE.tex * workfile = /absolute/path/.FILE.tex.swp * pdffile = /tmp/.FILE.tex.pdf */ void editor_fileinfo_update (GuEditor* ec, const gchar* filename) { if (ec->workfd != -1) editor_fileinfo_cleanup (ec); ec->fdname = g_build_filename (C_TMPDIR, "gummi_XXXXXX", NULL); ec->workfd = g_mkstemp (ec->fdname); // This is required for Windows 7, but not for Linux. It may also // be the proper way for *nix, but I don't want to change this // crucial piece of code at this stage of development -alexander #ifdef WIN32 close(ec->workfd); #endif if (filename) { gchar* base = g_path_get_basename (filename); gchar* dir = g_path_get_dirname (filename); ec->filename = g_strdup (filename); ec->basename = g_strdup_printf ("%s%c.%s", dir, G_DIR_SEPARATOR, base); ec->workfile = g_strdup_printf ("%s.swp", ec->basename); ec->pdffile = g_strdup_printf ("%s%c.%s.pdf", C_TMPDIR, G_DIR_SEPARATOR, base); g_free (base); g_free (dir); } else { ec->workfile = g_strdup (ec->fdname); ec->basename = g_strdup (ec->fdname); ec->pdffile = g_strdup_printf ("%s.pdf", ec->fdname); } } gboolean editor_fileinfo_update_biblio (GuEditor* ec, const gchar* filename) { g_free (ec->bibfile); if (ec->filename && !g_path_is_absolute (filename)) { gchar* dirname = g_path_get_dirname (ec->filename); ec->bibfile = g_build_filename (dirname, filename, NULL); g_free (dirname); } else ec->bibfile = g_strdup (filename); return utils_path_exists (ec->bibfile); } void editor_fileinfo_cleanup (GuEditor* ec) { gchar* auxfile = NULL; gchar* logfile = NULL; gchar* syncfile = NULL; if (ec->filename) { gchar* dirname = g_path_get_dirname (ec->filename); gchar* basename = g_path_get_basename (ec->filename); auxfile = g_strdup_printf ("%s%c.%s.aux", C_TMPDIR, G_DIR_SEPARATOR, basename); logfile = g_strdup_printf ("%s%c.%s.log", C_TMPDIR, G_DIR_SEPARATOR, basename); syncfile = g_strdup_printf ("%s%c.%s.synctex.gz", C_TMPDIR, G_DIR_SEPARATOR, basename); g_free (basename); g_free (dirname); } else { gchar* dirname = g_path_get_dirname (ec->workfile); gchar* basename = g_path_get_basename (ec->workfile); auxfile = g_strdup_printf ("%s.aux", ec->fdname); logfile = g_strdup_printf ("%s.log", ec->fdname); syncfile = g_strdup_printf ("%s.synctex.gz", ec->fdname); g_free (basename); g_free (dirname); } // TODO: make a loop or maybe make register of created files? proc? close (ec->workfd); ec->workfd = -1; g_remove (auxfile); g_remove (logfile); g_remove (syncfile); g_remove (ec->fdname); g_remove (ec->workfile); g_remove (ec->pdffile); g_remove (ec->basename); g_free (auxfile); g_free (logfile); g_free (syncfile); g_free (ec->fdname); g_free (ec->filename); g_free (ec->workfile); g_free (ec->pdffile); g_free (ec->basename); ec->fdname = NULL; ec->filename = NULL; ec->workfile = NULL; ec->pdffile = NULL; ec->basename = NULL; } void editor_sourceview_config (GuEditor* ec) { GtkWrapMode wrapmode = 0; gtk_source_buffer_set_highlight_matching_brackets (ec->buffer, TRUE); const gchar* style_scheme = config_get_value ("style_scheme"); editor_set_style_scheme_by_id (ec, style_scheme); const gchar* font = config_get_value ("font"); slog (L_INFO, "setting font to %s\n", font); PangoFontDescription* font_desc = pango_font_description_from_string (font); gtk_widget_modify_font (GTK_WIDGET (ec->view), font_desc); pango_font_description_free (font_desc); gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW (ec->view), TO_BOOL (config_get_value ("line_numbers"))); gtk_source_view_set_highlight_current_line (GTK_SOURCE_VIEW (ec->view), TO_BOOL (config_get_value ("highlighting"))); /* The condition 'textwrapping=False && wordwrapping=True' can't happen */ if (config_get_value ("textwrapping")) wrapmode += 1; if (config_get_value ("wordwrapping")) wrapmode += 1; gtk_text_view_set_wrap_mode (ec_view, wrapmode); } #ifdef USE_GTKSPELL void editor_activate_spellchecking (GuEditor* ec, gboolean status) { const gchar* lang = config_get_value ("spell_language"); GError* err = NULL; GError* err2 = NULL; GtkSpell* spell = 0; if (status) { if (! (spell = gtkspell_new_attach (ec_view, "en", &err))) { slog (L_ERROR, "gtkspell_new_attach (): %s\n", err->message); g_error_free (err); } if (!gtkspell_set_language (spell, lang, &err2)) { slog (L_ERROR, "gtkspell_set_language (): %s\n", err2->message); g_error_free (err2); } } else { GtkSpell* spell = gtkspell_get_from_text_view (ec_view); if (spell) gtkspell_detach (spell); } } #endif void editor_fill_buffer (GuEditor* ec, const gchar* text) { gtk_text_buffer_begin_user_action (ec_buffer); gtk_source_buffer_begin_not_undoable_action (ec->buffer); gtk_widget_set_sensitive (GTK_WIDGET (ec->view), FALSE); gtk_text_buffer_set_text (ec_buffer, text, strlen (text)); gtk_widget_set_sensitive (GTK_WIDGET (ec->view), TRUE); gtk_source_buffer_end_not_undoable_action (ec->buffer); gtk_text_buffer_end_user_action (ec_buffer); /* place cursor in the beggining of the document */ GtkTextIter start; gtk_text_buffer_get_start_iter (ec_buffer, &start); gtk_text_buffer_place_cursor (ec_buffer, &start); gtk_widget_grab_focus (GTK_WIDGET (ec->view)); ec->sync_to_last_edit = FALSE; } gchar* editor_grab_buffer (GuEditor* ec) { GtkTextIter start, end; gtk_text_buffer_get_bounds (ec_buffer, &start, &end); gchar* pstr = gtk_text_iter_get_text (&start, &end); return pstr; } gboolean editor_buffer_changed (GuEditor* ec) { if (gtk_text_buffer_get_modified (GTK_TEXT_BUFFER (ec->buffer))) { return TRUE; } return FALSE; } void editor_insert_package (GuEditor* ec, const gchar* package) { GtkTextIter start, mstart, mend, sstart, send; gchar* pkgstr = g_strdup_printf ("\\usepackage{%s}\n", package); gtk_text_buffer_get_start_iter (ec_buffer, &start); gtk_text_iter_forward_search (&start, (gchar*)"\\begin{document}", 0, &mstart, &mend, NULL); if (!gtk_text_iter_backward_search (&mstart, pkgstr, 0, &sstart, &send, NULL)) { gtk_source_buffer_begin_not_undoable_action (ec->buffer); gtk_text_buffer_begin_user_action (ec_buffer); gtk_text_buffer_insert (ec_buffer, &mstart, pkgstr, -1); gtk_text_buffer_end_user_action (ec_buffer); gtk_source_buffer_end_not_undoable_action (ec->buffer); gtk_text_buffer_set_modified (ec_buffer, TRUE); } g_free (pkgstr); } void editor_insert_bib (GuEditor* ec, const gchar* package) { GtkTextIter start, end, mstart, mend, sstart, send; gchar* pkgstr = g_strdup_printf ( "\\bibliography{%s}{}\n\\bibliographystyle{plain}\n", package); gtk_text_buffer_get_start_iter (ec_buffer, &start); gtk_text_buffer_get_end_iter (ec_buffer, &end); gtk_text_iter_backward_search (&end, (gchar*)"\\end{document}", 0, &mstart, &mend, NULL); if (!gtk_text_iter_forward_search (&start, "\\bibliography{", 0, &sstart, &send, NULL)) { gtk_source_buffer_begin_not_undoable_action (ec->buffer); gtk_text_buffer_begin_user_action (ec_buffer); gtk_text_buffer_insert (ec_buffer, &mstart, pkgstr, -1); gtk_text_buffer_end_user_action (ec_buffer); gtk_source_buffer_end_not_undoable_action (ec->buffer); gtk_text_buffer_set_modified (ec_buffer, TRUE); } g_free (pkgstr); } void editor_set_selection_textstyle (GuEditor* ec, const gchar* type) { GtkTextIter start, end; gint i = 0, selected = 0; const gchar* selected_text = 0; gint style_size = sizeof (style) / sizeof (style[0]); gchar** result = NULL; GError* err = NULL; GRegex* match_str = NULL; GMatchInfo* match_info = NULL; gchar* outtext = NULL; gchar* regexbuf = NULL; /* grab selected text */ gtk_text_buffer_get_selection_bounds (ec_buffer, &start, &end); selected_text = gtk_text_iter_get_text (&start, &end); /* select style */ for (i = 0; i < style_size; ++i) if (STR_EQU (style[i][0], type)) { selected = i; break; } /* generate regex expression */ regexbuf = g_strdup_printf ("(.*)%s%s(.*)%s%s(.*)", (style[selected][1][0] == '\\')? "\\": "", style[selected][1], (style[selected][2][0] == '\\')? "\\": "", style[selected][2]); if (! (match_str = g_regex_new (regexbuf, G_REGEX_DOTALL, 0, &err))) { slog (L_ERROR, "g_regex_new (): %s\n", err->message); g_error_free (err); goto cleanup; } if (g_regex_match (match_str, selected_text, 0, &match_info)) { result = g_match_info_fetch_all (match_info); if (strlen (result[1]) == 0 && strlen (result[3]) == 0) { /* already applied, so we remove it */ outtext = g_strdup (result[2]); } else if (strlen (result[1]) != 0 || strlen (result[3]) != 0) { /* the text contains a partially styled text, remove it and apply * style to the whole text */ outtext = g_strdup_printf ("%s%s%s%s%s", style[selected][1], result[1], result[2], result[3], style[selected][2]); } } else { /* no previous style applied */ outtext = g_strdup_printf ("%s%s%s", style[selected][1], selected_text, style[selected][2]); } gtk_text_buffer_begin_user_action (ec_buffer); gtk_text_buffer_delete (ec_buffer, &start, &end); gtk_text_buffer_insert (ec_buffer, &start, outtext, -1); end = start; gtk_text_iter_backward_chars (&start, strlen (outtext)); gtk_text_buffer_select_range (ec_buffer, &start, &end); gtk_text_buffer_end_user_action (ec_buffer); gtk_text_buffer_set_modified (ec_buffer, TRUE); cleanup: g_free (outtext); g_free (regexbuf); g_strfreev (result); g_match_info_free (match_info); g_regex_unref (match_str); } void editor_apply_errortags (GuEditor* ec, gint* lines) { GtkTextIter start, end; gint count = 0; /* remove the tag from the table if it is in threre */ if (gtk_text_tag_table_lookup (ec->editortags, "error")) gtk_text_tag_table_remove (ec->editortags, ec->errortag); gtk_text_tag_table_add (ec->editortags, ec->errortag); while (lines[count]) { gtk_text_buffer_get_iter_at_line (ec_buffer,&start,lines[count]-1); gtk_text_buffer_get_iter_at_line (ec_buffer, &end, lines[count]); gtk_text_buffer_apply_tag (ec_buffer, ec->errortag, &start, &end); ++count; } } void editor_jumpto_search_result (GuEditor* ec, gint direction) { if (!ec->term) return; if (direction == 1) editor_search_next (ec, FALSE); else editor_search_next (ec, TRUE); } void editor_start_search (GuEditor* ec, const gchar* term, gboolean backwards, gboolean wholeword, gboolean matchcase) { /* save options */ if (ec->term != term) { g_free (ec->term); ec->term = g_strdup (term); } ec->backwards = backwards; ec->wholeword = wholeword; ec->matchcase = matchcase; editor_apply_searchtag (ec); editor_search_next (ec, FALSE); } void editor_apply_searchtag (GuEditor* ec) { GtkTextIter start, mstart, mend; gboolean ret = FALSE; gtk_text_buffer_get_start_iter (ec_buffer, &start); if (gtk_text_tag_table_lookup (ec->editortags, "search")) gtk_text_tag_table_remove (ec->editortags, ec->searchtag); gtk_text_tag_table_add (ec->editortags, ec->searchtag); while (TRUE) { ret = gtk_source_iter_forward_search (&start, ec->term, (ec->matchcase? 0: GTK_SOURCE_SEARCH_CASE_INSENSITIVE), &mstart, &mend, NULL); if (ret && (!ec->wholeword || (ec->wholeword && gtk_text_iter_starts_word (&mstart) && gtk_text_iter_ends_word (&mend)))) { gtk_text_buffer_apply_tag (ec_buffer, ec->searchtag, &mstart, &mend); start = mend; } else break; } } void editor_search_next (GuEditor* ec, gboolean inverse) { GtkTextIter current, start, end, mstart, mend; gboolean ret = FALSE, response = FALSE; editor_get_current_iter (ec, ¤t); if (ec->backwards ^ inverse) { ret = gtk_source_iter_backward_search (¤t, ec->term, (ec->matchcase? 0: GTK_SOURCE_SEARCH_CASE_INSENSITIVE), &mstart, &mend, NULL); } else { gtk_text_iter_forward_chars (¤t, strlen (ec->term)); ret = gtk_source_iter_forward_search (¤t, ec->term, (ec->matchcase? 0: GTK_SOURCE_SEARCH_CASE_INSENSITIVE), &mstart, &mend, NULL); } if (ret && (!ec->wholeword || (ec->wholeword && gtk_text_iter_starts_word (&mstart) && gtk_text_iter_ends_word (&mend)))) { gtk_text_buffer_select_range (ec_buffer, &mstart, &mend); editor_scroll_to_cursor (ec); } /* check if the top/bottom is reached */ gtk_text_buffer_get_start_iter (ec_buffer, &start); gtk_text_buffer_get_end_iter (ec_buffer, &end); if (!ret) { if (ec->backwards ^ inverse) { response = utils_yes_no_dialog ( _("Top reached, search from bottom?")); if (GTK_RESPONSE_YES == response) { gtk_text_buffer_place_cursor (ec_buffer, &end); editor_search_next (ec, inverse); } } else { response = utils_yes_no_dialog ( _("Bottom reached, search from top?")); if (GTK_RESPONSE_YES == response) { gtk_text_buffer_place_cursor (ec_buffer, &start); editor_search_next (ec, inverse); } } } } void editor_start_replace_next (GuEditor* ec, const gchar* term, const gchar* rterm, gboolean backwards, gboolean wholeword, gboolean matchcase) { GtkTextIter current, mstart, mend; gboolean ret = FALSE; if (!ec->replace_activated) { ec->replace_activated = TRUE; editor_start_search (ec, term, backwards, wholeword, matchcase); return; } /* place cursor to the next result */ editor_get_current_iter (ec, ¤t); if (backwards) ret = gtk_source_iter_backward_search (¤t, term, (matchcase? 0: GTK_SOURCE_SEARCH_CASE_INSENSITIVE), &mstart, &mend, NULL); else ret = gtk_source_iter_forward_search (¤t, term, (matchcase? 0: GTK_SOURCE_SEARCH_CASE_INSENSITIVE), &mstart, &mend, NULL); if (ret && (!wholeword || (wholeword && gtk_text_iter_starts_word (&mstart) && gtk_text_iter_ends_word (&mend)))) { gtk_text_buffer_begin_user_action (ec_buffer); gtk_text_buffer_delete (ec_buffer, &mstart, &mend); gtk_text_buffer_insert (ec_buffer, &mstart, rterm, -1); gtk_text_buffer_end_user_action (ec_buffer); editor_search_next (ec, FALSE); } return; } void editor_start_replace_all (GuEditor* ec, const gchar* term, const gchar* rterm, gboolean backwards, gboolean wholeword, gboolean matchcase) { GtkTextIter start, mstart, mend; gboolean ret = FALSE; gtk_text_buffer_get_start_iter (ec_buffer, &start); while (TRUE) { ret = gtk_source_iter_forward_search (&start, term, (matchcase? 0: GTK_SOURCE_SEARCH_CASE_INSENSITIVE), &mstart, &mend, NULL); if (ret && (!wholeword || (wholeword && gtk_text_iter_starts_word (&mstart) && gtk_text_iter_ends_word (&mend)))) { gtk_text_buffer_begin_user_action (ec_buffer); gtk_text_buffer_delete (ec_buffer, &mstart, &mend); gtk_text_buffer_insert (ec_buffer, &mstart, rterm, -1); gtk_text_buffer_end_user_action (ec_buffer); start = mstart; } else break; } } void editor_get_current_iter (GuEditor* ec, GtkTextIter* current) { GtkTextMark* mark = gtk_text_buffer_get_insert (ec_buffer); gtk_text_buffer_get_iter_at_mark (ec_buffer, current, mark); } void editor_scroll_to_cursor (GuEditor* ec) { gtk_text_view_scroll_to_mark (ec_view, gtk_text_buffer_get_insert (ec_buffer), 0.25, FALSE, 0.0, 0.0); } void editor_scroll_to_line (GuEditor* ec, gint line) { if (ec == NULL) { return; } GtkTextIter iter; gtk_text_buffer_get_iter_at_line(ec_buffer, &iter, line); gtk_text_buffer_place_cursor(ec_buffer, &iter); editor_scroll_to_cursor(ec); ec->sync_to_last_edit = FALSE; } void editor_undo_change (GuEditor* ec) { GtkTextIter current; if (gtk_source_buffer_can_undo (ec->buffer)) { gtk_source_buffer_undo (ec->buffer); editor_get_current_iter (ec, ¤t); editor_scroll_to_cursor (ec); gtk_text_buffer_set_modified (ec_buffer, TRUE); } } void editor_redo_change (GuEditor* ec) { GtkTextIter current; if (gtk_source_buffer_can_redo (ec->buffer)) { gtk_source_buffer_redo (ec->buffer); editor_get_current_iter (ec, ¤t); editor_scroll_to_cursor (ec); gtk_text_buffer_set_modified (ec_buffer, TRUE); } } void editor_set_style_scheme_by_id (GuEditor* ec, const gchar* id) { GtkSourceStyleScheme* scheme = gtk_source_style_scheme_manager_get_scheme (ec->stylemanager, id); slog (L_INFO, "setting styles scheme to %s\n", id); if (!scheme) { slog (L_ERROR, "no style scheme %s found, setting to classic\n", id); scheme = gtk_source_style_scheme_manager_get_scheme (ec->stylemanager, "classic"); } gtk_source_buffer_set_style_scheme (ec->buffer, scheme); set_style_fg_bg(G_OBJECT (ec->searchtag), scheme, "search-match", "yellow"); set_style_fg_bg(G_OBJECT (ec->errortag), scheme,"def:error", "red"); } static inline gdouble gdkcolor_luminance(GdkColor c) { return (0.2126 * c.red + 0.7152 * c.green + 0.0722 * c.blue) / G_MAXUINT16; } /** * Sets a object's fore- and background color to that of scheme's style * "styleName". If no background color is defined in the style, defaultBG is * used. defaultBG can be any valid parameter to gdk_color_parse(). * If only a foreground color was defined and it has not enough contrast to the * default background, it will be overwritten. The foreground color will either * be white or black, which has more contrast. */ void set_style_fg_bg (GObject* obj, GtkSourceStyleScheme* scheme, gchar* styleName, gchar* defaultBG) { GtkSourceStyle *style = NULL; gchar *bg = NULL; gchar *fg = NULL; gboolean foreground_set; gboolean background_set; GdkColor foreground; GdkColor background; if (scheme == NULL) { goto set_style_fg_bg_return_defaults; } style = gtk_source_style_scheme_get_style (scheme, styleName); if (style == NULL) { goto set_style_fg_bg_return_defaults; } // Get properties of style g_object_get (style, "foreground-set", &foreground_set, "foreground", &fg, "background-set", &background_set, "background", &bg, NULL); if (foreground_set) { if (fg == NULL || !gdk_color_parse (fg, &foreground)) foreground_set = FALSE; } if (background_set) { if (bg == NULL || !gdk_color_parse (bg, &background)) background_set = FALSE; } g_free(fg); g_free(bg); if (background_set && foreground_set) { // We trust the style to set both to good values // Do nothing } else if (!background_set && foreground_set) { // Set bg to default and check if fg has enough contrast gdk_color_parse(defaultBG, &background); gdouble diff = ABS(gdkcolor_luminance(foreground) - gdkcolor_luminance(background)); if (diff < 0.5) { slog(L_INFO, "Style \"%s\" defines a foreground, but no background " "color. As the fourground color has not enough " "contrast to Gummis default background color, the " "foreground color has been adjusted.\n", styleName); if (gdkcolor_luminance(background) > 0.5) { gdk_color_parse("black", &foreground); } else { gdk_color_parse("white", &foreground); } } } else if (background_set && !foreground_set) { // Choose a fg = white or black, which has more contrast if (gdkcolor_luminance(background) > 0.5) { gdk_color_parse("black", &foreground); } else { gdk_color_parse("white", &foreground); } } else { // none set, set defaults goto set_style_fg_bg_return_defaults; } g_object_set (obj, "foreground-gdk", &foreground, "background-gdk", &background, NULL); return; set_style_fg_bg_return_defaults: // No valid style, set defaults gdk_color_parse(defaultBG, &background); if (gdkcolor_luminance(background) > 0.5) { gdk_color_parse("black", &foreground); } else { gdk_color_parse("white", &foreground); } g_object_set (obj, "foreground-gdk", &foreground, "background-gdk", &background, NULL); } /* The following functions are taken from gedit and partially modified */ gint schemes_compare (gconstpointer a, gconstpointer b) { GtkSourceStyleScheme *scheme_a = (GtkSourceStyleScheme *)a; GtkSourceStyleScheme *scheme_b = (GtkSourceStyleScheme *)b; const gchar *name_a = gtk_source_style_scheme_get_name (scheme_a); const gchar *name_b = gtk_source_style_scheme_get_name (scheme_b); return g_utf8_collate (name_a, name_b); } GList* editor_list_style_scheme_sorted (void) { const gchar * const * scheme_ids; GList *schemes = NULL; GtkSourceStyleSchemeManager* manager = gtk_source_style_scheme_manager_get_default(); scheme_ids = gtk_source_style_scheme_manager_get_scheme_ids (manager); while (*scheme_ids != NULL) { GtkSourceStyleScheme *scheme; scheme = gtk_source_style_scheme_manager_get_scheme (manager, *scheme_ids); schemes = g_list_prepend (schemes, scheme); ++scheme_ids; } if (schemes != NULL) schemes = g_list_sort (schemes, (GCompareFunc)schemes_compare); return schemes; } gummi-0.6.5/src/importer.c0000644000175000017500000001173012040524270012353 00000000000000/** * @file importer.c * @brief * * Copyright (C) 2009-2012 Gummi-Dev Team * All Rights reserved. * * 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 AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include "importer.h" #include #include #include "editor.h" #include "environment.h" #include "utils.h" const gchar align_type[][4] = { "l", "c", "r" }; const gchar bracket_type[][16] = { "matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix" }; const gchar* importer_generate_table (gint rows, gint cols, gint borders, gint alignment) { gint i = 0, j = 0; static gchar result[BUFSIZ * 2] = { 0 }; gchar table[BUFSIZ * 2] = { 0 }, begin_tabular[BUFSIZ] = "\\begin{tabular}{", end_tabular[] = "\n\\end{tabular}\n", line[] = "\n\\hline", tmp[BUFSIZ / 8]; /* clear previous data */ result[0] = 0; if (borders) strncat (begin_tabular, "|", BUFSIZ - strlen (begin_tabular) -1); for (i = 0; i < cols; ++i) { strncat (begin_tabular, align_type[alignment], BUFSIZ -strlen (begin_tabular) -1); if (borders == 2 || (borders == 1 && i == cols -1)) strncat (begin_tabular, "|", BUFSIZ -strlen (begin_tabular) -1); } strncat (begin_tabular, "}", BUFSIZ -strlen (begin_tabular) -1); if (borders) strncat (table, line, BUFSIZ * 2 -strlen (table) -1); for (i = 0; i < rows; ++i) { strncat (table, "\n\t", BUFSIZ * 2 -strlen (table) -1); for (j = 0; j < cols; ++j) { snprintf (tmp, BUFSIZ/8, "%d%d", i + 1, j + 1); strncat (table, tmp, BUFSIZ * 2 -strlen (table) -1); if (j != cols -1) strncat (table, " & ", BUFSIZ * 2 -strlen (table) -1); else strncat (table, "\\\\", BUFSIZ * 2 -strlen (table) -1); } if (borders == 2 || (borders == 1 && i == rows -1)) strncat (table, line, BUFSIZ * 2 -strlen (table) -1); } strncat (result, begin_tabular, BUFSIZ *2 -strlen (result) -1); strncat (result, table, BUFSIZ *2 -strlen (result) -1); strncat (result, end_tabular, BUFSIZ *2 -strlen (result) -1); return result; } const gchar* importer_generate_matrix (gint bracket, gint rows, gint cols) { gint i = 0, j = 0; static gchar result[BUFSIZ * 2] = { 0 }; gchar tmp[BUFSIZ / 8]; /* clear previous data */ result[0] = 0; strncat (result, "$\\begin{", BUFSIZ * 2 -strlen (result) -1); strncat (result, bracket_type[bracket], BUFSIZ * 2 -strlen (result) -1); strncat (result, "}", BUFSIZ * 2 - strlen (result) -1); for (i = 0; i < rows; ++i) { strncat (result, "\n\t", BUFSIZ * 2 -strlen (result) -1); for (j = 0; j < cols; ++j) { snprintf (tmp, BUFSIZ/8, "%d%d", i + 1, j + 1); strncat (result, tmp, BUFSIZ * 2 -strlen (result) -1); if (j != cols -1) strncat (result, " & ", BUFSIZ * 2 -strlen (result) -1); else strncat (result, "\\\\", BUFSIZ * 2 -strlen (result) -1); } } strncat (result, "\n\\end{", BUFSIZ * 2 -strlen (result) -1); strncat (result, bracket_type[bracket], BUFSIZ * 2 -strlen (result) -1); strncat (result, "}$\n", BUFSIZ * 2 -strlen (result) -1); return result; } const gchar* importer_generate_image (const gchar* path, const gchar* caption, const gchar* label, gdouble scale) { static gchar result[BUFSIZ] = { 0 }; gchar scale_str[16] = { 0 }; gchar* loc = NULL; /* clear previous data */ result[0] = 0; snprintf (scale_str, 16, "%.2f", scale); /* some locales use ',' as seperator, replace them as '.' */ if ( (loc = strstr (scale_str, ","))) *loc = '.'; snprintf (result, BUFSIZ, "\\begin{figure}[htp]\n\\centering\n" "\\includegraphics[scale=%s]{%s}\n\\caption{%s}\n\\label{%s}\n" "\\end{figure}", scale_str, path, caption, label); return result; } gummi-0.6.5/COPYING0000644000175000017500000000212612040524264010614 00000000000000Copyright (C) 2009-2012 Gummi-Dev Team All Rights reserved. 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. gummi-0.6.5/depcomp0000755000175000017500000004426712040524264011152 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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 outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi 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 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 -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then 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 -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; 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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then 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 -eq 0; then : else 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "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" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "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:: \1 \\:p' >> "$depfile" echo " " >> "$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: gummi-0.6.5/config.h.in0000644000175000017500000000563012040524317011606 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* The gettext domain */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* 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_UNISTD_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* 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 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS #undef USE_GTKSPELL /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* 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 `unsigned int' if does not define. */ #undef size_t gummi-0.6.5/missing0000755000175000017500000002623312040524264011165 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, 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 run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] 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 # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gummi-0.6.5/Makefile.in0000644000175000017500000005734712040524305011641 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ pkglibexecdir = $(libexecdir)/@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 = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ compile depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(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 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-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 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=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags 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__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 distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GUI_CFLAGS = @GUI_CFLAGS@ GUI_LIBS = @GUI_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_GTKSPELL = @USE_GTKSPELL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ 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_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gthread_CFLAGS = @gthread_CFLAGS@ gthread_LIBS = @gthread_LIBS@ gtksourceview_CFLAGS = @gtksourceview_CFLAGS@ gtksourceview_LIBS = @gtksourceview_LIBS@ gtkspell_CFLAGS = @gtkspell_CFLAGS@ gtkspell_LIBS = @gtkspell_LIBS@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ poppler_CFLAGS = @poppler_CFLAGS@ poppler_LIBS = @poppler_LIBS@ 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 = po src data lib 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) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign 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. $(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//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(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" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 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__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(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 mkdir $(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__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 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) 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 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: 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: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzip dist-lzma 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 installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # 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: gummi-0.6.5/data/0000755000175000017500000000000012040524317010550 500000000000000gummi-0.6.5/data/misc/0000755000175000017500000000000012040524317011503 500000000000000gummi-0.6.5/data/misc/gummi.10000644000175000017500000000063312040524271012624 00000000000000.TH GUMMI 1 "APRIL 2011" Linux "User Manuals" .SH NAME gummi \- LaTeX editor .SH DESCRIPTION .B gummi is a simple LaTeX editor for GTK+. .SH OPTIONS .TP \-d run gummi with debug logging enabled. .TP \-h display command line options. .SH BUGS Undoubtedly, please report at: http://gummi.midnightcoding.org .SH AUTHORS Alexander van der Mey .PP Wei-Ning Huang gummi-0.6.5/data/misc/Makefile.am0000644000175000017500000000034512040524271013460 00000000000000man_MANS = $(PACKAGE).1 desktopdir = $(datadir)/applications desktop_DATA = $(PACKAGE).desktop miscdir = $(datadir)/$(PACKAGE)/misc misc_DATA = default.tex EXTRA_DIST = $(man_MANS) \ $(desktop_DATA).in \ $(misc_DATA) gummi-0.6.5/data/misc/default.tex0000644000175000017500000000321712040524271013573 00000000000000\documentclass[11pt]{article} %Gummi|065|=) \title{\textbf{Welcome to Gummi 0.6.5}} \author{Alexander van der Mey\\ Wei-Ning Huang\\ Dion Timmermann} \date{} \begin{document} \maketitle \section{Before you start} You are now using Gummi 0.6.5. Many new exciting features have been added to the 0.6 series. The document editor is now a tabbed instance, allowing multiple documents to be worked on simultaneously. Using the new projects menu, you can group files together for easy access. Support for two high-level {\LaTeX} building systems, \emph{rubber}\footnote{https://launchpad.net/rubber/} \& \emph{latexmk}\footnote{http://www.phys.psu.edu/{\textasciitilde}collins/software/latexmk-jcc/} has been added to this release as well. Your preferred typesetter can be configured through the Compilation tab in the Preferences menu. Typesetters that are not installed on your system will not be selectable. Added for your viewing convenience is a continuous preview mode for the PDF. This mode is enabled by default, but can also be disabled through the \emph{(View $\rightarrow$ Page layout in preview)} menu. Complementary to this feature is SyncTeX integration, which allows you to synchronize the position in your editor with the PDF preview. \section{Feedback} We hope you will enjoy using this release as much as we enjoyed creating it. If you have comments, suggestions or wish to report an issue you are experiencing - contact us at: \emph{http://gummi.midnightcoding.org}. \section{One more thing} If you are wondering where your old default text is; it has been stored as a template. The template menu can be used to access and restore it. \end{document} gummi-0.6.5/data/misc/gummi.desktop.in0000644000175000017500000000034112040524271014536 00000000000000[Desktop Entry] Version=1.0 Name=@PACKAGE_NAME@ GenericName=LaTeX Editor Comment=Simple LaTeX Editor Exec=@PACKAGE@ %F Icon=@PACKAGE@ Terminal=false Type=Application Categories=Office; StartupNotify=true MimeType=text/x-tex; gummi-0.6.5/data/misc/Makefile.in0000644000175000017500000004045512040524305013475 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ pkglibexecdir = $(libexecdir)/@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 = : subdir = data/misc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(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 = 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)" "$(DESTDIR)$(desktopdir)" \ "$(DESTDIR)$(miscdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(desktop_DATA) $(misc_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GUI_CFLAGS = @GUI_CFLAGS@ GUI_LIBS = @GUI_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_GTKSPELL = @USE_GTKSPELL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ 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_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gthread_CFLAGS = @gthread_CFLAGS@ gthread_LIBS = @gthread_LIBS@ gtksourceview_CFLAGS = @gtksourceview_CFLAGS@ gtksourceview_LIBS = @gtksourceview_LIBS@ gtkspell_CFLAGS = @gtkspell_CFLAGS@ gtkspell_LIBS = @gtkspell_LIBS@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ poppler_CFLAGS = @poppler_CFLAGS@ poppler_LIBS = @poppler_LIBS@ 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 = $(PACKAGE).1 desktopdir = $(datadir)/applications desktop_DATA = $(PACKAGE).desktop miscdir = $(datadir)/$(PACKAGE)/misc misc_DATA = default.tex EXTRA_DIST = $(man_MANS) \ $(desktop_DATA).in \ $(misc_DATA) 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) --foreign data/misc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/misc/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) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || 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)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) install-miscDATA: $(misc_DATA) @$(NORMAL_INSTALL) @list='$(misc_DATA)'; test -n "$(miscdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(miscdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(miscdir)" || 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)$(miscdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(miscdir)" || exit $$?; \ done uninstall-miscDATA: @$(NORMAL_UNINSTALL) @list='$(misc_DATA)'; test -n "$(miscdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(miscdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @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) $(DATA) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(miscdir)"; 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-desktopDATA install-man install-miscDATA 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-desktopDATA uninstall-man uninstall-miscDATA uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-desktopDATA 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-miscDATA \ 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 uninstall uninstall-am \ uninstall-desktopDATA uninstall-man uninstall-man1 \ uninstall-miscDATA # 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: gummi-0.6.5/data/Makefile.am0000644000175000017500000000004112040524272012517 00000000000000SUBDIRS = ui icons snippets misc gummi-0.6.5/data/ui/0000755000175000017500000000000012040524317011165 500000000000000gummi-0.6.5/data/ui/prefs.glade0000644000175000017500000034203612040524272013232 00000000000000 50 2048 150 1 10 1 60 10 1 10 True False gtk-clear compile when idle for compile every None Always Only when syncing preview with editor Never 1 60 1.0000000002235174 1 10 False Gummi Preferences False True center-on-parent True dialog True True False True True 10 left 3 True False 12 12 True False 3 True False 0 Text wrapping False False 5 0 True False 6 True False 12 True False False False 0 Enable text wrapping False True True False True True True 1 True True 0 True False 12 True False False False 0 Do not split words over two lines False True True False True False True 1 True True 1 True True 1 False False 0 True False 3 True False 0 Line numbers False False 5 0 True False 12 True False False False 0 Display line numbers False True True False True False True 1 True True 1 False False 1 True False 3 True False 0 Highlighting False False 5 0 True False 12 True False False False 0 Highlight current line False True True False True False True 1 True True 1 False False 2 True False View False True False 12 12 True False 3 True False 0 Tab stops False False 5 0 True False 12 True False False False 0 True False True False Tab width: False False 0 True True False False True True tabwidth_adj False False 6 1 True True 1 True True 1 True False 12 True False False False 0 Insert _spaces instead of tabs False True True False True True False True 1 True True 2 False False 0 True False 3 True False 0 Automatic Indentation False False 5 0 True False 12 True False False False 0 _Enable automatic indentation False True True False True True True True 1 True True 1 False False 1 True False True False 0 Snippets False False 5 0 True False 12 True False False False 0 Configure snippets False True True True 0.49000000953674316 False False 1 True True 1 False False 2 True False 3 True False 0 File saving False False 5 0 True False 12 True False False False 0 True False _Autosave files every False True True False True True False False 0 True True 0.5 False False True True autosave_time False True 6 1 True False minutes False True 2 True True 1 True True 1 False False 3 1 True False Editor 1 False True False 12 12 True False 3 True False 0 Editor font False False 5 0 True False 12 True False False False 0 False 300 True True True True True 1 True True 1 False False 0 True False True False 0 Color Scheme False False 5 0 True False 12 True False False False 0 True True automatic automatic etched-in True True list_styleschemes False False Style Scheme 0 True True 1 True True 1 True True 1 2 True False Font & Colors 2 False True False True False True True automatic automatic etched-in True True True True 12 0 True True 12 0 3 True False Default Text 3 False True False 12 12 True False 5 True False 0 Typesetter command False False 5 0 True False 6 True False 12 True False False False 0 TeXLive with PdfTeX False True False True False This program was not found on your system. False True True True True 1 True True 0 True False 12 True False False False 0 TeXLive with XeTeX False True False True False This program was not found on your system. False True True typ_pdflatex True True 1 True True 1 True False 12 True False False False 0 Rubber False True False True False This program was not found on your system. False True True typ_pdflatex True True 1 True True 2 True False 12 True False False False 0 Latexmk False True False True False This program was not found on your system. False True True typ_pdflatex True True 1 True True 3 True True 1 False False 0 True False 3 True False 0 Typesetter options False False 5 0 True False 6 True False 12 True False False False 0 Use shell-escape False True False True False True True True True 1 True True 0 True False 12 True False False False 0 Enable SyncTeX False True False True False True True True True 1 True True 1 False False 1 False True 1 True False 3 True False 0 Compilation steps False False 5 0 True False 6 True False 12 True False False False 0 TeX → PDF False True True False True True True True 1 True True 0 True False 12 True False False False 0 TeX → DVI → PDF False True True False True True method_texpdf True True 1 True True 1 True False 12 True False False False 0 TeX → DVI → PS → PDF False True True False True True method_texpdf True True 1 True True 2 False False 1 False True 2 4 True False Compilation 4 False True False 12 12 True False 3 True False 0 PDF Compiling False False 5 0 True False 6 True False False True True False True True False True 11 0 True False list_compileschemes 0 0 False True 1 True True 0.5 True False False True True pdfcompile_time False True 10 2 True False seconds False True 5 3 False False 0 False False 1 False True 0 True False 3 True False 0 Use animated scroll False False 5 0 True False 12 True False False False 0 300 True False liststore1 0 0 False True 1 True True 1 False False 1 True False 3 True False 0 Cache size False False 5 0 True False 6 True False 12 True False False False 0 True True 0.5 True False False True True adj_cache_size False True 1 True False MB False True 5 2 False False 0 False False 1 False True 2 5 True False Preview 5 False True False 12 12 True False 3 True False 0 Spell check language False False 5 0 True False 12 True False False False False 0 300 True False list_languages 0 False True 1 True True 1 False False 0 True False True False 0 PDF Exporting False False 5 0 True False 3 True False 12 True False False True 0 Automatically export PDF on document save False True True False True True True 1 True True 0 False False 1 False True 1 6 True False Miscellaneous 6 False True True 0 True False 10 10 end _Reset defaults False True True True image1 True False False 0 gtk-close False True True True True True False False 1 False False 1 1 24 8 1 gummi-0.6.5/data/ui/Makefile.am0000644000175000017500000000016412040524272013142 00000000000000gladedir = $(datadir)/$(PACKAGE)/ui glade_DATA = gummi.glade prefs.glade snippets.glade EXTRA_DIST = $(glade_DATA) gummi-0.6.5/data/ui/Makefile.in0000644000175000017500000003143612040524305013156 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ pkglibexecdir = $(libexecdir)/@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 = : subdir = data/ui DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(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 = 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; }; \ } am__installdirs = "$(DESTDIR)$(gladedir)" DATA = $(glade_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GUI_CFLAGS = @GUI_CFLAGS@ GUI_LIBS = @GUI_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_GTKSPELL = @USE_GTKSPELL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ 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_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gthread_CFLAGS = @gthread_CFLAGS@ gthread_LIBS = @gthread_LIBS@ gtksourceview_CFLAGS = @gtksourceview_CFLAGS@ gtksourceview_LIBS = @gtksourceview_LIBS@ gtkspell_CFLAGS = @gtkspell_CFLAGS@ gtkspell_LIBS = @gtkspell_LIBS@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ poppler_CFLAGS = @poppler_CFLAGS@ poppler_LIBS = @poppler_LIBS@ 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@ gladedir = $(datadir)/$(PACKAGE)/ui glade_DATA = gummi.glade prefs.glade snippets.glade EXTRA_DIST = $(glade_DATA) 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) --foreign data/ui/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/ui/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-gladeDATA: $(glade_DATA) @$(NORMAL_INSTALL) @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(gladedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(gladedir)" || 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)$(gladedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(gladedir)" || exit $$?; \ done uninstall-gladeDATA: @$(NORMAL_UNINSTALL) @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(gladedir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: 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 $(DATA) installdirs: for dir in "$(DESTDIR)$(gladedir)"; 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-gladeDATA 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-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-gladeDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic 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-gladeDATA \ 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-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-gladeDATA # 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: gummi-0.6.5/data/ui/gummi.glade0000644000175000017500000061533712040524272013240 00000000000000 60 1 10 10 320 240 False True 10 Document statistics False True center-on-parent True dialog True True mainwindow True False 5 True False Document name False True 0 True False True False 0 Words in: True True 0 True False True False True False False True 0 True False 0 text True True 1 True False 1 10 0 True True 2 True True 0 True False True False False True 0 True False 0 headers True True 1 True False 1 10 0 True True 2 True True 1 True False True False False True 0 True False 0 float captions True True 1 True False 1 10 0 True True 2 True True 2 True True 1 True False 0 Number of: True True 2 True False True False True False False True 0 True False 0 headers True True 1 True False 1 10 0 True True 2 True True 0 True False True False False True 0 True False 0 floats True True 1 True False 1 10 0 True True 2 True True 1 True False True False False True 0 True False 0 math environments True True 1 True False 1 10 0 True True 2 True True 2 True True 3 True True 1 True False end gtk-close False True True True True False False 0 False True 2 False True False 10 10 True False 1 PDF Preview could not initialise. True True 0 False True gtk-dialog-warning False True 1 True False 0 center True char True True 2 True False gtk-execute True False gtk-find True False 16 system-software-update True False gtk-info 1 True False gtk-refresh 1 True False gtk-preferences 1 True False gtk-clear 1 True False gtk-execute 1 True False gtk-new 1 True False gtk-open 1 True False gtk-close 1 True False gtk-execute 1 True False gtk-open 1 True False gtk-save-as 1 True False gtk-info 1 True False gtk-new 1 True False 16 emblem-documents 0.10000000000000001 3 1 0.10000000000000001 10 True False True True False True False 5 2 2 5 5 True False 0 File: fill GTK_FILL True True False True gtk-open False True True True 1 2 True False 0 Style: fill 1 2 GTK_FILL True False 1 2 1 2 True True 0 True False 5 gtk-apply False 110 35 True True True True False False False end 0 False True 1 True False True queue True False True False 5 4 2 5 5 True False 0 File: fill GTK_FILL 80 True False 0 Caption: fill 1 2 GTK_FILL True False 0 Label: 2 3 GTK_FILL True False 0 Scale: 3 4 GTK_FILL 80 True False True 0.5 True False False True True image_scaler 2 1 2 3 4 GTK_EXPAND True True True gtk-open False True True True 1 2 True False True 0.5 True False False True True 1 2 1 2 True False True 0.5 True False False True True 1 2 2 3 True True 0 True False 5 gtk-apply False 110 35 True True True True False False False end 0 False True 1 True False True queue True False True False 5 2 3 5 5 True False 0 Rows: GTK_EXPAND True False 0 Columns: 1 2 GTK_EXPAND True True False 0.5 True False False True True matrix_rows 1 2 GTK_EXPAND 5 True True False 0.5 True False False True True matrix_cols 1 2 1 2 GTK_EXPAND 5 True False list_matrixbracket 0 0 2 3 1 2 GTK_EXPAND 5 True False Bracket: 2 3 GTK_EXPAND True True 0 True False 5 gtk-apply False 110 35 True True True True False False False end 0 False True 1 True False True queue True False True False 5 2 3 5 5 True False 0 Rows: GTK_EXPAND True False 0 Columns: 1 2 GTK_EXPAND True True False 0.5 True False False True True table_rows 1 2 GTK_EXPAND 5 True True False 0.5 True False False True True table_cols 1 2 1 2 GTK_EXPAND 5 True False list_tableborder 0 0 2 3 1 2 GTK_EXPAND 5 True False list_tablealign 0 0 2 3 GTK_EXPAND 5 True True 0 True False 5 gtk-apply False 110 35 True True True True False False False end 0 False True 1 Unbracketed Parentheses Brackets Braces Single line Double line Best Fit Fit Page Width 50% 70% 85% 100% 125% 150% 200% 300% 400% Align left Align center Align right No borders Border outline Border all cells False Gummi - LaTeX Editor True False True False False True False _File True True False gtk-new False True False True True New from _Template False True False True image7 False _Open... False True False True image4 False True False gtk-save False True False True True Save _As... False True False True image5 False _Export to PDF False True False True image9 False True False False False True shouldnotseeme False False True shouldnotseeme False False True shouldnotseeme False False True shouldnotseeme False False True shouldnotseeme True False gtk-close False True False True True gtk-quit False True False True True False True False _Edit True True False gtk-undo False True False True True gtk-redo False True False True True True False gtk-cut False True False 1 True True gtk-copy False True False True True gtk-paste False True False True True gtk-delete False True False True True True False gtk-select-all False True False True True True False gtk-preferences False True False True True False True False _View True True False False True False _Statusbar True False True False _Toolbar True False True False _Right Pane True True False False True False False Use SyncTeX to scroll preview to the part of the document that was last edited. Sync Preview with Editor True False True False Page Layout in Preview True True False False True False Single Page True True False True False Continuous, One Column True True page_layout_single_page True False False True False _Fullscreen True False True False _Search True True False gtk-find-and-replace False True False True True False True False Find Ne_xt True False True False Find Pre_vious True False True False _Document True True False Compile _Document False True False Compile LaTeX document and update preview. True image10 False Set Compilation Options False True False image19 False True False _Cleanup Build Files False True False True image2 False Run _Makeindex False True False True image21 False Run _BibTeX False True False True image3 False True False Document _Statistics False True False True image6 False True False False True False Enable S_pell Checking True False True False Enable S_nippets True False True False _Project True True False Create new Project False True False False This function requires the current active document to be saved. image22 False Open Project False True False image23 False Close Project False True False False image27 False False True False _Help True True False User _Guide False True False True image1 False Check _Updates False True False True im_updatechk False gtk-about False True False True True False True 0 True False True icons False True False New True gtk-new False True False True False True Open True gtk-open False True False True False True Save True gtk-save False True True False False True False True False toolbutton5 True format-text-bold False True False True False toolbutton6 True format-text-italic False True False True False toolbutton7 True format-text-underline False True True False False True False True False toolbutton1 True format-justify-left False True False True False toolbutton2 True format-justify-center False True False True False toolbutton3 True format-justify-right False True True False False True False True False False True True False True False toolbutton2 True gtk-media-pause False True False True False toolbutton5 True gtk-yes False True False True 1 True False 200 True False True False True True True 0 True False True False False True 0 True False text False True False True False True False True False Image True False True False True False Table True False True False True False Matrix True False True False True False Bibliography True False True False True 1 False True 1 True False True False True True False 0 5 True False True True 4 automatic automatic True etched-in True False none True False True True 0 True False False True False False Previous True gtk-go-back False True False True False False Next True gtk-go-forward False True True False False False True False True False 6 50 True True 6 0 0.5 True False False True True True True 0 True False of 0 True True 1 False True False False False True False 125 True False list_sizes 1 0 False False True 1 True False Preview Pane False True True 4 automatic automatic etched-in True True False False 1 True False Build Log 1 False True False 4 True False 5 5 True False 3 2 5 True False 0 10 Nr of files: 2 3 GTK_FILL True False 0 10 Root path: 1 2 GTK_FILL True False 0 Project name: GTK_SHRINK | GTK_FILL True False 0 10 start 1 2 True False 0 10 start 1 2 1 2 True False 0 10 1 2 2 3 False True 0 True True automatic automatic in True True list_projfiles False 0 0 Document 1 File path 2 True True 1 True False 10 end gtk-add False True False True True Select a file to add it to the active project. True False False False 0 gtk-remove False True False True True Remove the selected file from the project. True False False False 1 False True 2 2 True False Project 2 False True False 4 queue True False True False True False True False Filename: True True 0 True False none True True 1 True False References: True True 2 True False N/A True True 3 True True 0 100 True False spread Detect False True False False Detect mention of a bibtex file in the current document im_bibdetect False False 0 Compile False True False True Compile the active bibliography database im_bibcompile False False 1 True True 1 False True 0 True False 5 20 True True 0.02 no bibliography file detected bibprogressmon True True 5 0 False True 1 True True automatic automatic True True list_biblios True fixed 200 Title True True descending 1 True fixed 100 Author True True descending 2 True fixed 50 Year True descending 3 True True 2 True False True False filter: False True 5 0 True False True False False True True True True 5 1 False True 5 3 3 True False Bibliography 3 False True True 0 True False True True 2 True False True 2 False True 3 100 1 10 100 1 10 False 15 Find center-on-parent 360 180 True dialog True True mainwindow True False 8 True False True False 14 Search for: False True 0 True True True gtk-find False False True True True True 1 True True 0 True False True False 7 Replace with: False True 0 True True gtk-find-and-replace False False True True True True 1 True True 1 True False 6 3 Match entire word only False True True False True True True 0 Search backwards False True True False True True True 1 Match case False True True False True True True 2 True True 2 True False 10 end gtk-close False True True True True False False 0 gtk-find False True True True True False False 1 _Replace False True True True True False False 2 Replace _All False True True True True False False 3 False False 3 False 5 Save early.. save often! True center-on-parent dialog True mainwindow warning Thank you for testing Gummi 0.5.999! This release is meant as a public beta version for the upcoming Gummi 0.6.0 release. It is NOT meant for production use. Your feedback on this release is highly appreciated. Should you encounter any problems, please create a bug report on our website or email us on alexvandermey@gmail.com. Running "gummi" or "gummi-d" from the command line will provide more information. True False 2 True True True end False True end 0 1 100 3 1 10 1 100 3 1 10 370 280 False 10 Create new document from template.. False True center-on-parent dialog True mainwindow True False True False True False queue etched-out True True automatic automatic 200 True True list_templates False 0 templates 0 True True 0 True False False False 1 True True 0 True False spread gtk-add False 100 35 True True True Make a template from the current active document. True False False 0 gtk-remove False 100 35 True True True Deletes the selected template True False False 1 True False False False 2 gtk-open False True False True True Open the selected template True False False 3 gtk-close False True True True True False False 4 True True 1 False 5 Save early.. save often! False True center-on-parent dialog True False mainwindow warning Welcome to the 0.6.2~beta1 release of Gummi for Windows. This release is meant as a public test version and is not guaranteed to be stable. It is NOT meant for production use. Your feedback on this release is highly appreciated. Should you encounter any problems, please create a bug report on our bug tracker or email us on alexvandermey@gmail.com. Future updates and new builds will be announced on our website at http://gummi.midnightcoding.org True False 2 True True True end True False 10 False False 0 gtk-ok False True False True True True False False 1 False True end 0 w32button gummi-0.6.5/data/ui/snippets.glade0000644000175000017500000006230112040524272013752 00000000000000 True False gtk-clear True 5 Snippets Manager True center-on-parent 750 500 True normal True False 2 True False end _Reset False True True True Reset all snippets image_reset True False False end 0 gtk-close False True True True True False False 1 False True end 0 True True 275 True False 6 True False 0 Snippets: right False False 0 True True automatic automatic in True True list_snippets False Snippets 0 True True 1 True False 6 False True True True Create a new snippet True False gtk-new False False 0 False True True True True False Remove selected snippet gtk-delete False False 1 False False 2 False True True False 12 True False True False 0 Edit: True right False False 0 True True automatic automatic in True True 1 True False 3 start True False Insert macro False False 0 selected text False True True True False False 1 filename False True True True False False 2 basename False True True True False False 3 False True 3 2 True True 0 True False 6 True False 0 Activation True right False False 0 True False True False False False 0 True False 2 2 6 6 True False 0 Tab trigger: GTK_FILL GTK_FILL True False 0 Shortcut key: 1 2 GTK_FILL GTK_FILL True True False False True True 1 2 True True False False False True True 1 2 1 2 True True 1 True True 1 False False 1 True True True True 1 snippetsgui_close snippetsgui_reset gummi-0.6.5/data/snippets/0000755000175000017500000000000012040524317012415 500000000000000gummi-0.6.5/data/snippets/snippets.lang0000644000175000017500000001624512040524270015053 00000000000000