diff -Nru gitg-0.0.3/aclocal.m4 gitg-0.0.6/aclocal.m4 --- gitg-0.0.3/aclocal.m4 2009-04-23 22:17:57.000000000 +0100 +++ gitg-0.0.6/aclocal.m4 2010-02-21 09:56:09.000000000 +0000 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2005, 2006, 2007, 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. @@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(AC_AUTOCONF_VERSION, [2.61],, -[m4_warning([this file was generated for autoconf 2.61. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, +[m4_warning([this file was generated for autoconf 2.64. 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'.])]) @@ -55,10 +55,11 @@ AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files]) AC_ARG_ENABLE(schemas-install, - [ --disable-schemas-install Disable the schemas installation], + AC_HELP_STRING([--disable-schemas-install], + [Disable the schemas installation]), [case ${enableval} in yes|no) ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-schemas-install) ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-install]) ;; esac]) AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no]) ]) @@ -686,7 +687,7 @@ fi[]dnl ])# PKG_CHECK_MODULES -# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -698,10 +699,10 @@ # 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.10' +[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.10.1], [], +m4_if([$1], [1.11], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -715,12 +716,12 @@ # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10.1])dnl +[AM_AUTOMAKE_VERSION([1.11])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -777,14 +778,14 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# 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 8 +# serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- @@ -797,6 +798,7 @@ 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='#' @@ -810,14 +812,14 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 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 9 +# serial 10 # 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, @@ -874,6 +876,16 @@ 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 @@ -891,7 +903,17 @@ 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 @@ -901,19 +923,23 @@ break fi ;; + 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 - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $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 sub/conftest.${OBJEXT-o} 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 @@ -970,57 +996,68 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# 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 3 +#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # 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" +[{ + # 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 -done +} ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -1040,13 +1077,13 @@ # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008 Free Software Foundation, Inc. +# 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 13 +# 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. @@ -1063,7 +1100,7 @@ # 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.60])dnl +[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 @@ -1114,8 +1151,8 @@ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_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. @@ -1123,24 +1160,37 @@ 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([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 + [_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 + [_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_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 @@ -1163,7 +1213,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 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, @@ -1174,7 +1224,14 @@ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +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. @@ -1201,27 +1258,38 @@ # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1996, 1998, 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 4 +# serial 5 +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl + AC_SUBST([MAINT])dnl ] ) @@ -1229,13 +1297,13 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# 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 3 +# serial 4 # AM_MAKE_INCLUDE() # ----------------- @@ -1244,7 +1312,7 @@ [am_make=${MAKE-make} cat > confinc << 'END' am__doit: - @echo done + @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. @@ -1254,24 +1322,24 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi +# 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 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi + 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]) @@ -1281,14 +1349,14 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# 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 5 +# serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -1305,7 +1373,14 @@ AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +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 " @@ -1343,13 +1418,13 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 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 3 +# serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -1366,7 +1441,7 @@ # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- @@ -1376,14 +1451,14 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# 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 4 +# serial 5 # AM_SANITY_CHECK # --------------- @@ -1392,16 +1467,29 @@ # 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` + 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` + set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ @@ -1426,6 +1514,33 @@ fi AC_MSG_RESULT(yes)]) +# Copyright (C) 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 1 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -1454,18 +1569,25 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006 Free Software Foundation, Inc. +# Copyright (C) 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 2 + # _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 Free Software Foundation, Inc. diff -Nru gitg-0.0.3/AUTHORS gitg-0.0.6/AUTHORS --- gitg-0.0.3/AUTHORS 2009-03-01 07:57:43.000000000 +0000 +++ gitg-0.0.6/AUTHORS 2010-01-23 21:03:23.000000000 +0000 @@ -1 +1 @@ -Jesse van den Kieboom +Jesse van den Kieboom diff -Nru gitg-0.0.3/ChangeLog gitg-0.0.6/ChangeLog --- gitg-0.0.3/ChangeLog 2009-04-23 22:20:09.000000000 +0100 +++ gitg-0.0.6/ChangeLog 2010-02-21 09:56:22.000000000 +0000 @@ -1,3 +1,1458 @@ +2010-02-21 Jesse van den Kieboom +commit 5ffae68dac8771024dd65dc98c0c1a99748395da + + Fixed crash in getting xds name from X property + + gitg/gitg-dnd.c | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +2010-02-21 Jesse van den Kieboom +commit 64983cffbc105cbf5cd4e5d7b7c75c9e85498f64 + + Only have scrolling when dnd refs + + gitg/gitg-dnd.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +2010-02-21 Jesse van den Kieboom +commit 881af8674c0eaf0a3636dcca3fb8c5ac67f6900a + + Implemented multi selection stage/unstage/revert + + gitg/gitg-commit-view.c | 111 ++++++++++++++++++++++++++++++++++++++++------- + 1 files changed, 95 insertions(+), 16 deletions(-) + +2010-02-11 Christophe Benz +commit 4f12db0fb72b95069667eb1c16a94c44f5969561 + + Updated French translation + + po/fr.po | 126 +++++++++++++++++++++++++++++++++++++------------------------- + 1 files changed, 75 insertions(+), 51 deletions(-) + +2010-01-28 Andrej Žnidaršič +commit f438dc0a7dc5e12f612dbbec0cbc4dc6d4a1b154 + + Updated Slovenian translation + + po/sl.po | 307 ++++++++++++++++++++++++++++++++++++++++++-------------------- + 1 files changed, 210 insertions(+), 97 deletions(-) + +2010-01-27 Joe Hansen +commit 2f2976f50bf84220e2c45500db140b51f5f1f985 + + Updated Danish translation + + po/da.po | 724 +++++++++++++++++++++++++++++++++++++++----------------------- + 1 files changed, 456 insertions(+), 268 deletions(-) + +2010-01-23 Matej Urbančič +commit d67831b73ba0403e23d25d76931c5fb3a2b72783 + + Added sl for Slovenian translation + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +2010-01-23 Andrej Žnidaršič +commit 9031447b669f1ee2b90b4a70fb68e8a505af813e + + Updated Slovenian translation + + po/sl.po | 839 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 839 insertions(+), 0 deletions(-) + +2010-01-19 Jesse van den Kieboom +commit bd90f99b52126abc80162f60e83f22b247af4d81 + + Added format patch action to revision context menu + + gitg/gitg-dnd.c | 17 +------ + gitg/gitg-menus.xml | 7 +++ + gitg/gitg-revision.c | 17 ++++++++ + gitg/gitg-revision.h | 2 + + gitg/gitg-window.c | 110 +++++++++++++++++++++++++++++++++++++++++++++++++- + 5 files changed, 137 insertions(+), 16 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit 05fb35d61708ca4e6e84f0a55f9a4b2bcc011351 + + Added MAINTAINERCLEANFILES + + Makefile.am | 21 +++++++++++++++++++++ + 1 files changed, 21 insertions(+), 0 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit a27c874a5d585a6d8672a81acff00f97b821b851 + + Reselect last selected commit on reload + + gitg/gitg-repository.c | 2 + + gitg/gitg-window.c | 89 +++++++++++++----------------------------------- + 2 files changed, 26 insertions(+), 65 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit 256beb52573709d99cbb180d39d2d6fa15aac8a2 + + Fix assumption on line rendering data being called in order + + This fixes weird line rendering issues when the data func is called + to check activatability in the gutter + + gitg/gitg-diff-view.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit d5f432509e49de7a4a97cec31f47a3618b005459 + + Moved format-patch to branch_actions + + gitg/gitg-branch-actions.c | 116 ++++++++++++++++++++++++++++++++++++++++++++ + gitg/gitg-branch-actions.h | 2 + + gitg/gitg-dnd.c | 36 +++----------- + gitg/gitg-window.c | 49 ++++++++++-------- + gitg/gitg-window.h | 2 + + 5 files changed, 155 insertions(+), 50 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit bf6724cd53936d1aeff1193fd4950c30bcc4b1ce + + Fixed memory leak in treeish dnd target + + gitg/gitg-dnd.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +2010-01-17 Paolo Borelli +commit 028ba8bf47252b693837250c0328f42ab6596c8c + + Newly added remote name should be editable + + gitg/gitg-repository-dialog.c | 9 ++++----- + 1 files changed, 4 insertions(+), 5 deletions(-) + +2010-01-17 Paolo Borelli +commit 1e5a7b972246007185db68a606b844ccf5db4467 + + Put the icon cell renderer in the name column + + gitg/gitg-repository-dialog.c | 2 +- + gitg/gitg-repository.ui | 8 ++------ + 2 files changed, 3 insertions(+), 7 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit f29edc3ad5b26da13f21d681eb78ed817ea199b5 + + Fix subheader visibility while hiding regions + + gitg/gitg-diff-view.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit 5e6e2f4af138499c812c3d77671774e062b5052c + + Fixed hiding part of diff header and stage/unstage hunks + + gitg/gitg-commit-view.c | 6 +++--- + gitg/gitg-diff-view.c | 7 +++++-- + 2 files changed, 8 insertions(+), 5 deletions(-) + +2010-01-16 Edward Rudd +commit c2386bfc41509e6683ed98d2274c9b0d2e0edbfd + + Fix memory leaks in gitg_repository_get_remotes + + gitg/gitg-repository.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +2010-01-17 Jesse van den Kieboom +commit 37052f8002f92260281b42a5508d9dc659e312ba + + Check valid filename on direct save + + gitg/gitg-dnd.c | 16 ++++++++++++---- + 1 files changed, 12 insertions(+), 4 deletions(-) + +2010-01-13 Jesse van den Kieboom +commit e373c02658399e22dc4883f0a81f0d34406de48e + + Use GPtrArray instead of manually g_realloc + + This fixes bug #606791 where the wrong memory was realloced. + + gitg/gitg-repository.c | 16 +++++++++------- + 1 files changed, 9 insertions(+), 7 deletions(-) + +2010-01-11 Jesse van den Kieboom +commit 6c44cc78892c89c204be998be7f5b5988b22084b + + Block drag-data-delete emission as per gtk+ advice + + gitg/gitg-dnd.c | 13 +++++++++++++ + 1 files changed, 13 insertions(+), 0 deletions(-) + +2010-01-11 Jesse van den Kieboom +commit 3cd255a482d7167201c1cfca9049b5c9083f614a + + Hide redundent header lines in diff view + + gitg/gitg-diff-view.c | 34 ++++++++++++++++++++++++++++++++-- + 1 files changed, 32 insertions(+), 2 deletions(-) + +2010-01-11 Jesse van den Kieboom +commit 19c533f8736914a308397e21cc73063d909fb093 + + Implemented XDS DND protocol for direct save + + This allows you to for example drag a revision into nautilus generating + a format patch + + gitg/gitg-dnd.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 163 insertions(+), 2 deletions(-) + +2010-01-11 Jesse van den Kieboom +commit 19396f8fb0335fffb3f842f83c4ea2b0159de699 + + Use GtkSourceGutter API to render diff line numbers + + gitg/Makefile.am | 2 + + gitg/gitg-diff-line-renderer.c | 255 ++++++++++++++++++++++++++++++ + gitg/gitg-diff-line-renderer.h | 36 +++++ + gitg/gitg-diff-view.c | 342 +++++++++++++++++----------------------- + gitg/gitg-window.ui | 4 +- + 5 files changed, 441 insertions(+), 198 deletions(-) + +2010-01-11 Jesse van den Kieboom +commit fadebf32d3f0e051201c096398eaf373e0effccf + + Removed .gitignore files (now autogenerated) + + m4/.gitignore | 1 - + po/.gitignore | 4 ---- + 2 files changed, 0 insertions(+), 5 deletions(-) + +2009-04-21 Ignacio Casal Quinteiro +commit e3c4fb6594a8437adcb1146feb75a66d2f0f4fa0 + + GtkEntry instead of sexy-icon-entry. + + Remove SexyIconEntry and use GtkEntry instead. + + gitg/Makefile.am | 4 +- + gitg/gitg-window.c | 10 +- + gitg/gitg.c | 1 - + gitg/sexy-icon-entry.c | 968 ------------------------------------------------ + gitg/sexy-icon-entry.h | 101 ----- + 5 files changed, 5 insertions(+), 1079 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 9e5f70e924f99eb3f7a008b752e5dbf31f643770 + + Updated dutch translations + + po/nl.po | 260 ++++++++++++++++++++++++++++++++++++++++++-------------------- + 1 files changed, 178 insertions(+), 82 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 8da9af058e73864474223c00a0f6ffbc932026c5 + + Copy-paste error using word FEED instead of GITG + + data/gitg.schemas.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 5fdce5032d16320e2c95476fe96e15a005d29ce3 + + .gitignore is automatically generated now + + .gitignore | 26 -------------------------- + 1 files changed, 0 insertions(+), 26 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 66056bcfed93ff6420e2bc005353ed09245fa328 + + Fixup desktop file and install icons correctly + + data/gitg.desktop.in.in | 6 +- + data/icons/Makefile.am | 66 ++- + data/icons/gitg22x22.png | Bin 0 -> 3818 bytes + data/icons/hicolor_apps_16x16_gitg.png | Bin 0 -> 754 bytes + data/icons/hicolor_apps_22x22_gitg.png | Bin 0 -> 3818 bytes + data/icons/hicolor_apps_24x24_gitg.png | Bin 0 -> 1225 bytes + data/icons/hicolor_apps_32x32_gitg.png | Bin 0 -> 1743 bytes + data/icons/hicolor_apps_48x48_gitg.png | Bin 0 -> 2744 bytes + data/icons/hicolor_apps_scalable_gitg.svg | 1196 +++++++++++++++++++++++++++++ + gitg/gitg.c | 1 + + 10 files changed, 1258 insertions(+), 11 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 54a75e13063aaa65f986ee73931d08a592f9b8fe + + Accept treeish selections instead of only SHA 1 + + gitg/gitg-window.c | 47 +++++++++++++++++++++++++++-------------------- + gitg/gitg-window.h | 4 ++-- + gitg/gitg.c | 7 +------ + 3 files changed, 30 insertions(+), 28 deletions(-) + +2010-01-10 Claude Paroz +commit 7b623a053f5f91d20cf7435ce87959321eb55eae + + Updated French translation + + po/fr.po | 274 ++++++++++++++++++++++++++++++++++++++++++-------------------- + 1 files changed, 185 insertions(+), 89 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 34b2010b0bd34f9a53138aec6473d15ae54f7729 + + Fixed emitting loaded signal on repository + + gitg/gitg-repository.c | 14 ++++++++++---- + 1 files changed, 10 insertions(+), 4 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 5be46f7304228d376eb2cc6f0a97e4b3edb773ed + + Forgot to end g_object_set with NULL + + gitg/gitg-window.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 84297e6fedd19591fc5a11418f2c68b89727f2e3 + + Added preference for vertical/horizontal layout + + configure.ac | 2 +- + data/gitg.schemas.in | 12 ++++++++ + gitg/gitg-preferences-dialog.c | 8 ++++++ + gitg/gitg-preferences.c | 15 +++++++++++ + gitg/gitg-preferences.ui | 55 +++++++++++++++++++++++++++++++++++++++- + gitg/gitg-repository.ui | 2 +- + gitg/gitg-tag.ui | 2 +- + gitg/gitg-window.c | 20 ++++++++++++++ + gitg/gitg-window.ui | 2 +- + 9 files changed, 113 insertions(+), 5 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit c93eed928cca29d4be7759058a969b8ef26a96e4 + + Do not export subject with treeish + + gitg/gitg-dnd.c | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 762896485f4738c95905804747b9753b9cea9fdf + + Added preference for showing history in topo order + + data/gitg.schemas.in | 13 +++ + gitg/gitg-preferences-dialog.c | 7 ++ + gitg/gitg-preferences.c | 15 ++++ + gitg/gitg-preferences.ui | 13 +++ + gitg/gitg-repository.c | 181 +++++++++++++++++++++++----------------- + 5 files changed, 153 insertions(+), 76 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit fc31d94d87b20d100474f7725d3acf1f6843abbc + + Bump gtk+ version to 2.14 + + configure.ac | 2 +- + gitg/gitg-preferences.ui | 2 +- + gitg/gitg-repository.ui | 2 +- + gitg/gitg-window.c | 16 ++++++++-------- + 4 files changed, 11 insertions(+), 11 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 31a578bbc43f425586012959ef73923a7768eaa8 + + Color working ref orange + + gitg/gitg-label-renderer.c | 20 ++++++++++++++++++-- + gitg/gitg-ref.c | 16 ++++++++++++++++ + gitg/gitg-ref.h | 4 ++++ + gitg/gitg-repository.c | 8 ++++++++ + 4 files changed, 46 insertions(+), 2 deletions(-) + +2010-01-10 Jesse van den Kieboom +commit 6e19510b9331e74ad91bf50e5fc7309bcdb1888c + + Fixed some memory leaks + + gitg/gitg-window.c | 12 +++++++++++- + 1 files changed, 11 insertions(+), 1 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit c79088a955aace14b43f7847ce099b5a6ec4782b + + Added cherry-pick to context menu + + gitg/gitg-branch-actions.c | 1 - + gitg/gitg-menus.xml | 16 ++++- + gitg/gitg-window.c | 132 ++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 144 insertions(+), 5 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 6120609ac0f5d85613ada438fe0380dfc42ae5f8 + + Improved branch selection and added local branches selection + + gitg/gitg-repository.c | 30 +++++ + gitg/gitg-repository.h | 1 + + gitg/gitg-window.c | 290 ++++++++++++++++++++++++++++++++---------------- + 3 files changed, 225 insertions(+), 96 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 684f9172e90670683b12dc0c64ffb7c1e5086132 + + Implemented cherry-picking + + gitg/gitg-branch-actions.c | 182 ++++++++++++++++++++++++++++++++++++++++++++ + gitg/gitg-branch-actions.h | 2 + + gitg/gitg-dnd.c | 26 +++++-- + gitg/gitg-dnd.h | 8 ++- + gitg/gitg-window.c | 43 ++++++++++- + 5 files changed, 253 insertions(+), 8 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 9c44c7e60809efc8e5c94c8f92bc47fd5fbf7d24 + + Removed .gitignore, they are now generated by git.mk + + data/.gitignore | 2 -- + gitg/.gitignore | 2 -- + 2 files changed, 0 insertions(+), 4 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 42fcc13ae3bf4020bf34558583aea851dba520a4 + + Remove use of deprecated gtksourceview API + + This bumps gtksourceview requirement to 2.8 + + configure.ac | 2 +- + gitg/gitg-commit-view.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 2701a3b1c76b28c764ebf20d8c81af4a646232cc + + Added DND support for revisions (treeish, text and uri) + + gitg/gitg-dnd.c | 392 ++++++++++++++++++++++++++++++++++++++++---- + gitg/gitg-label-renderer.c | 4 +- + 2 files changed, 363 insertions(+), 33 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 36a4730e44db326a42a923993c81bf2b90b43815 + + Added support for select commit on load + + gitg/gitg-repository.c | 23 +++++++++- + gitg/gitg-repository.h | 4 +- + gitg/gitg-utils.c | 36 ++++++++++++++- + gitg/gitg-utils.h | 4 ++ + gitg/gitg-window.c | 112 ++++++++++++++++++++++++++++++++++++++++++----- + gitg/gitg-window.h | 2 + + gitg/gitg.c | 12 ++++- + 7 files changed, 175 insertions(+), 18 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit 1b6fb14008bc8017f7439bf379e72555965324db + + Added support for handling gitg://[:sha1] uri + + data/gitg.schemas.in | 35 ++++++++++++++++++++++++++++++++++- + gitg/gitg-window.c | 21 +++++++++++++++++++++ + 2 files changed, 55 insertions(+), 1 deletions(-) + +2010-01-09 Jesse van den Kieboom +commit ec0bae0231b59d007fa1db89dc3829b4388bff70 + + Trailing spaces cleanup + + gitg/gitg-branch-actions.c | 308 +++++++++++++------------- + gitg/gitg-cell-renderer-path.c | 92 ++++---- + gitg/gitg-cell-renderer-path.h | 2 +- + gitg/gitg-changed-file.c | 44 ++-- + gitg/gitg-changed-file.h | 6 +- + gitg/gitg-color.c | 10 +- + gitg/gitg-commit-view.c | 398 +++++++++++++++++----------------- + gitg/gitg-commit-view.h | 2 +- + gitg/gitg-commit.c | 264 +++++++++++----------- + gitg/gitg-commit.h | 4 +- + gitg/gitg-config.c | 42 ++-- + gitg/gitg-config.h | 2 +- + gitg/gitg-data-binding.c | 44 ++-- + gitg/gitg-diff-view.c | 220 ++++++++++---------- + gitg/gitg-diff-view.h | 4 +- + gitg/gitg-dirs.c | 12 +- + gitg/gitg-dnd.c | 88 ++++---- + gitg/gitg-label-renderer.c | 68 +++--- + gitg/gitg-lane.c | 12 +- + gitg/gitg-lanes.c | 112 +++++----- + gitg/gitg-lanes.h | 2 +- + gitg/gitg-preferences-dialog.c | 42 ++-- + gitg/gitg-preferences-dialog.h | 2 +- + gitg/gitg-preferences.c | 70 +++--- + gitg/gitg-preferences.h | 2 +- + gitg/gitg-ref.c | 36 ++-- + gitg/gitg-repository-dialog.c | 216 +++++++++--------- + gitg/gitg-repository-dialog.h | 2 +- + gitg/gitg-repository.c | 362 +++++++++++++++--------------- + gitg/gitg-repository.h | 4 +- + gitg/gitg-revision-tree-store.c | 18 +- + gitg/gitg-revision-tree-store.h | 2 +- + gitg/gitg-revision-tree-view.c | 200 +++++++++--------- + gitg/gitg-revision-tree-view.h | 2 +- + gitg/gitg-revision-view.c | 208 +++++++++--------- + gitg/gitg-revision-view.h | 4 +- + gitg/gitg-revision.c | 34 ++-- + gitg/gitg-runner.c | 136 ++++++------ + gitg/gitg-runner.h | 4 +- + gitg/gitg-settings.c | 42 ++-- + gitg/gitg-settings.h | 2 +- + gitg/gitg-spinner.c | 18 +- + gitg/gitg-spinner.h | 4 +- + gitg/gitg-utils.c | 124 ++++++------ + gitg/gitg-window.c | 458 +++++++++++++++++++------------------- + gitg/gitg-window.h | 2 +- + gitg/gitg.c | 40 ++-- + 47 files changed, 1885 insertions(+), 1885 deletions(-) + +2009-11-09 A S Alam +commit eedd9192f9ef2c62c803c1e744ef58c617990565 + + Updating for Punjabi + + po/pa.po | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-11-09 A S Alam +commit b1acf146eedd0310e4c98ba69df9b7f090d6fde5 + + Updating for Punjabi + + po/pa.po | 362 ++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 190 insertions(+), 172 deletions(-) + +2009-11-03 Milo Casagrande +commit 1e55ccb4cb9e57152f669535d62c9f847a42f404 + + Added it to LINGUAS + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +2009-11-03 Milo Casagrande +commit 20c54a0abdc87462e504826e4f2817da7333b7a5 + + Updated Italian translation + * Unfuzzied the first string + + po/it.po | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +2009-11-03 Mario Calabrese +commit 619a73e07640ac68749948846bbe8ad9fecb1e89 + + Added Italian translation + + po/it.po | 868 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 868 insertions(+), 0 deletions(-) + +2009-10-12 Claude Paroz +commit 81069bf608b4de605dd7a64979fe47244a50fbfe + + Updated French translation + + po/fr.po | 609 ++++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 353 insertions(+), 256 deletions(-) + +2009-10-12 Claude Paroz +commit 4304c49c960d561cdc7b11096eafa72fa7bd9f7a + + Do not mark stock labels as translatable + + gitg/gitg-repository.ui | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +2009-09-19 Mario Blättermann +commit bbc4b46791100a7987e591ca54ea19943ec68c69 + + Added German translation + + po/LINGUAS | 1 + + po/de.po | 882 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 883 insertions(+), 0 deletions(-) + +2009-09-15 Gintautas Miliauskas +commit 881d62718ac637cd989186bc8954d6289ca6392e + + Added Lithuanian translation. + + po/LINGUAS | 1 + + po/gitg.pot | 808 ---------------------------------------------------------- + po/lt.po | 809 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 810 insertions(+), 808 deletions(-) + +2009-09-13 Bruce Cowan +commit cbb7728d5f9a44cfd8ec8df32c942a09712c2450 + + Added British English translation + + po/LINGUAS | 1 + + po/en_GB.po | 847 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/gitg.pot | 2 +- + 3 files changed, 849 insertions(+), 1 deletions(-) + +2009-09-07 Ignacio Casal Quinteiro +commit ac60e145a8f2abd99aa6c026e0e0b855e62d0606 + + Be quiet about enums generation + + gitg/Makefile.am | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +2009-09-06 Ignacio Casal Quinteiro +commit 0ce5d751fae13fe84a35d46e325f5e5b2c8f5605 + + Add git.mk to generate the .gitignore. + + Makefile.am | 2 + + data/Makefile.am | 2 + + data/icons/Makefile.am | 2 + + git.mk | 183 ++++++++++++++++++++++++++++++++++++++++++++++++ + gitg/Makefile.am | 2 + + 5 files changed, 191 insertions(+), 0 deletions(-) + +2009-09-06 Ignacio Casal Quinteiro +commit 9417ec2a3225dd312293cb08cb25a691788b27c2 + + Enable silent mode when using a modern automake + + configure.ac | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +------------------------------------------------------------------------------- +Version 0.0.5 +------------------------------------------------------------------------------- + +2009-08-29 Jesse van den Kieboom +commit 15be72a77618ac1f4317dd13637d5b0c15e34817 + + Version 0.0.5 + + NEWS | 13 +++++++++++++ + README | 6 +++--- + configure.ac | 2 +- + 3 files changed, 17 insertions(+), 4 deletions(-) + +2009-08-29 Jesse van den Kieboom +commit 5dbaa5a7be8214d2af6269f08cc53a600414a46b + + Updated dutch translations + + po/gitg.pot | 249 +++++++++++++++++++++++++++++++++------------------------ + po/nl.po | 260 ++++++++++++++++++++++++++++++++++------------------------- + 2 files changed, 296 insertions(+), 213 deletions(-) + +2009-08-29 Jesse van den Kieboom +commit 2b849f96d3e7abccc5ede89b422f8261a178a4fb + + Use i18n.commitencoding for encoding commit messages + + gitg/gitg-commit.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 files changed, 53 insertions(+), 3 deletions(-) + +2009-08-29 Jesse van den Kieboom +commit 6c4dd2cfd645f5f2263beb95cc89c1417f02c5ee + + Force UTF-8 encoding for 'log' and 'show' + + gitg/gitg-commit-view.c | 2 +- + gitg/gitg-repository.c | 10 ++++++---- + gitg/gitg-revision-tree-view.c | 4 ++-- + gitg/gitg-revision-view.c | 2 +- + 4 files changed, 10 insertions(+), 8 deletions(-) + +2009-08-29 Jesse van den Kieboom +commit 927047014715316eed56ce7031476de351f1a4a3 + + Fixed warnings and notification for unfound git repository + + gitg/gitg-revision-view.c | 7 +++++-- + gitg/gitg-window.c | 13 ++++++++++++- + 2 files changed, 17 insertions(+), 3 deletions(-) + +2009-08-29 Jesse van den Kieboom +commit 65ff0248474884c42aab130ad68f5982bd1e048e + + Fixed wrong order in merging two local branches + + gitg/gitg-window.c | 15 ++------------- + 1 files changed, 2 insertions(+), 13 deletions(-) + +2009-08-29 Jesse van den Kieboom +commit c43a9684a5cfb49a5aa707047ba4dd895050e50d + + Use tracked remote and clearify branch in push context menu + + The push context menu now uses the tracked remote of the + branch to show in the context menu. It also clearifies to which + remote branch it is actually about to push, and whether it is + an existing branch or a new one. This fixes bug #592098. + + gitg/gitg-branch-actions.c | 21 +++--- + gitg/gitg-branch-actions.h | 2 +- + gitg/gitg-window.c | 163 +++++++++++++++++++++++++++++++++++++------- + 3 files changed, 147 insertions(+), 39 deletions(-) + +2009-07-24 Vitaliy Ischenko +commit f7c47ef35e009b274f2cb50701c777406307772f + + fix segfault in load_refs + + check for return value of gitg_repository_command_with_outputv + not to be NULL + + gitg/gitg-repository.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +2009-07-24 Vitaliy Ischenko +commit 6b9221651b95d84186f7c83557154108d4f33eb8 + + fix stash drop + + reflog file was not deleted after dropping last stash commit + this caused segfault in load_refs from gitg-repository.c + + gitg/gitg-branch-actions.c | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +2009-08-17 Paolo Borelli +commit fabca85e26b5ba6a237223f93fb8c01d47728627 + + Implement renaming of a local branch + + gitg/gitg-branch-actions.c | 116 ++++++++++++++++++++++++++++++++++++++++++++ + gitg/gitg-branch-actions.h | 1 + + gitg/gitg-menus.xml | 7 +++ + gitg/gitg-window.c | 12 +++++ + 4 files changed, 136 insertions(+), 0 deletions(-) + +2009-08-14 Paolo Borelli +commit efb5bf046b84fcf319a102fb7f93b664ceb10e3d + + Show all files in "Tree" list + + Fix parsing logic so that lines sent in the following "updates" are not + discarded + + gitg/gitg-revision-tree-view.c | 10 ++++++---- + 1 files changed, 6 insertions(+), 4 deletions(-) + +2009-08-05 Chihau Chau +commit c23dcecabe649884e1129b966bee5bb343b8d947 + + Updated Spanish translation + + po/es.po | 211 +++++++++++++++++++++++++++++++------------------------------- + 1 files changed, 106 insertions(+), 105 deletions(-) + +2009-08-02 Paolo Borelli +commit a0f147d9131b1a76ff834ea38601200b6f16267a + + Take advantage of gtk_source_language_manager_guess_language + + gitg/gitg-commit-view.c | 18 ++++++++++++------ + gitg/gitg-revision-tree-view.c | 16 ++++++++++------ + gitg/gitg-utils.c | 38 +++----------------------------------- + gitg/gitg-utils.h | 2 +- + 4 files changed, 26 insertions(+), 48 deletions(-) + +2009-08-02 Paolo Borelli +commit 333aa04c041283b1b1f66e7efedc6b0c88db7f12 + + Fix category in desktop file + + data/gitg.desktop.in.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-08-02 Paolo Borelli +commit ef3cb0ea888a78f142d6cdc6a2e7eca1a221cf39 + + Add a --version command line option + + gitg/gitg.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 810e9bb660f11498f4b5ed334d64eb19139906f1 + + Post release increase of version to 0.0.5 + + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-07-27 Guilhem Bonnefille +commit 0e267d0dd8fbb486411ad7c0257c8cb2cd26bea2 + + Fix infinite loop on stash action + + This occurs whith many stash, and trying to remove the third one. + + gitg/gitg-branch-actions.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +------------------------------------------------------------------------------- +Version 0.0.4 +------------------------------------------------------------------------------- + +2009-07-05 Jesse van den Kieboom +commit 006eda48b3ab013c32980b79bb918a046f9217cb + + Version 0.0.4 + + NEWS | 16 ++++++++++++++++ + README | 4 ++-- + 2 files changed, 18 insertions(+), 2 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit b5ebe282096c4cf387de48fec099f91f215bf5f2 + + Updated translations + + gitg/gitg-menus.xml | 18 +- + gitg/gitg-repository.ui | 4 +- + po/Makefile.in.in | 4 +- + po/POTFILES.in | 10 +- + po/da.po | 705 ++++++++++++++++++++++++++++++++++++++-------- + po/es.po | 700 ++++++++++++++++++++++++++++++++++++++-------- + po/fr.po | 701 ++++++++++++++++++++++++++++++++++++++-------- + po/gitg.pot | 638 +++++++++++++++++++++++++++++++++++------- + po/gl.po | 701 ++++++++++++++++++++++++++++++++++++++-------- + po/nl.po | 713 +++++++++++++++++++++++++++++++++++++++-------- + po/pa.po | 706 ++++++++++++++++++++++++++++++++++++++-------- + po/sv.po | 707 ++++++++++++++++++++++++++++++++++++++--------- + 12 files changed, 4623 insertions(+), 984 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit cc46faa110d6c5fb468fa4410b149b4ae7b7fd6a + + Install monitor on .git/HEAD and reload if it changes + + This allows automatic following of the current checked out branch + + gitg/gitg-repository.c | 130 ++++++++++++++++++++++++++++++++++++++--------- + 1 files changed, 105 insertions(+), 25 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit d6bdead0b25d99d64968fcedbeafe2362e8d7efd + + Make sure to clear working ref before emitting LOAD signal + + Since the window title is updated on repository 'load' it was reflecting the + old working ref when a checkout was changed + + gitg/gitg-repository.c | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit e17dbf00e768ab0892175822b3907e3a1ec466f3 + + Fixed misuse of tmpname as tmp index name when it was already freed + + gitg/gitg-branch-actions.c | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 7a3cbb2fa91ff7126f0b215be726ed21a9de97f4 + + Allow unsetting of environment by passing NULL to set_environment + + gitg/gitg-runner.c | 22 +++++++++++++++------- + 1 files changed, 15 insertions(+), 7 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 8a8a2ecf1b4ec615fe89dd0b0d044c851a6f6bf2 + + Do not destroy tag dialog when tagging fails + + gitg/gitg-window.c | 14 +++++++++----- + 1 files changed, 9 insertions(+), 5 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit e3f7c8c3bf1f3f903f7d0df470d3e33376e0e150 + + Improved error message when creation of signed tag object fails + + gitg/gitg-branch-actions.c | 13 ++++++++++++- + 1 files changed, 12 insertions(+), 1 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 002155f05b04f4d2e835eea7ea00015e6534c6ef + + Fixed switch/case to not fall through when removing stash + + gitg/gitg-branch-actions.c | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 10062d12d673a384bafb9ddd7a9305edef5dbef6 + + Implemented tag create, remove and checkout + + gitg/Makefile.am | 1 + + gitg/gitg-branch-actions.c | 122 ++++++++++++++++++++++++ + gitg/gitg-branch-actions.h | 3 + + gitg/gitg-menus.xml | 24 +++++- + gitg/gitg-preferences.c | 27 +++++- + gitg/gitg-tag.ui | 158 +++++++++++++++++++++++++++++++ + gitg/gitg-window.c | 224 +++++++++++++++++++++++++++++++++++++++++-- + 7 files changed, 545 insertions(+), 14 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 0e60d3ef50834e91d8a5015c1191e4aa157334f8 + + Finally fixed emitting update for last buffer contents + + gitg/gitg-runner.c | 18 +++++++----------- + 1 files changed, 7 insertions(+), 11 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit e873587a10f29ef4e80d3b31e82bbeef7d7ce69f + + Fixed creating correct reflog when making a stash item + + gitg/gitg-branch-actions.c | 51 ++++++++++++++++++++++++++++++++++++------- + 1 files changed, 42 insertions(+), 9 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 72bc8371afa34a28e4c59c7bbce98ebd9406e1bf + + Implemented stash actions (remove, apply) + + gitg/gitg-branch-actions.c | 186 ++++++++++++++++++++++++++- + gitg/gitg-branch-actions.h | 1 + + gitg/gitg-dnd.c | 12 +- + gitg/gitg-label-renderer.c | 5 + + gitg/gitg-menus.xml | 8 + + gitg/gitg-ref.c | 13 ++- + gitg/gitg-ref.h | 3 +- + gitg/gitg-repository.c | 73 ++++++----- + gitg/gitg-window.c | 304 +++++++++++++++++++++++++++++--------------- + 9 files changed, 458 insertions(+), 147 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit c9815fb2aaf17bbff1e2a61e96c8da2ecdd60191 + + Implemented 'amend' commit + + gitg/gitg-commit-view.c | 41 +++++++++++- + gitg/gitg-commit.c | 169 ++++++++++++++++++++++++++++++++++++++++++++--- + gitg/gitg-commit.h | 4 +- + gitg/gitg-window.ui | 51 +++++++++++--- + 4 files changed, 240 insertions(+), 25 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 108dd7c54545065050e5b55eece81db84339fa64 + + Fixed setting up environment + + gitg/gitg-runner.c | 27 +++++++++++++++++++++++++-- + 1 files changed, 25 insertions(+), 2 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit d678ec6aa49a2d12fb3233d44d5d4bdff00ca3f6 + + Make sure to emit buffered content when in sync mode + + If the output did not end with a newline, the contents still in the buffer + was not update emitted. + + gitg/gitg-runner.c | 19 +++++++++++++------ + 1 files changed, 13 insertions(+), 6 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 16819b1a3393c76f0ca7dc3412ff4e058c1ccfdf + + Correctly store/restore paned positions + + gitg/gitg-window.c | 51 ++++++++++++++++++++++++++++++++++++++++----------- + gitg/gitg.c | 4 ++-- + 2 files changed, 42 insertions(+), 13 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit fcff4dfb935bc2b495ef773b2ef3233fba2183c0 + + Implemented vertical layout for commit view + + This layout is conform to gitx where the stage/unstage areas are + respectively on the left and right of the commit message + + gitg/gitg-commit-view.c | 3 +- + gitg/gitg-commit-view.h | 4 +- + gitg/gitg-settings.h | 7 +- + gitg/gitg-utils.c | 62 ++++++++ + gitg/gitg-utils.h | 2 + + gitg/gitg-window.c | 55 ++++--- + gitg/gitg-window.ui | 400 ++++++++++++++++++++++++++--------------------- + 7 files changed, 325 insertions(+), 208 deletions(-) + +2009-07-05 Jesse van den Kieboom +commit 9ca7a51589f0d3006a029750f0a451d76ac80257 + + Implemented push, merge, rebase, stash by dnd + + gitg/gitg-branch-actions.c | 608 +++++++++++++++++++++++++++++++++++++---- + gitg/gitg-branch-actions.h | 1 + + gitg/gitg-menus.xml | 17 +- + gitg/gitg-ref.c | 7 +- + gitg/gitg-repository-dialog.c | 1 + + gitg/gitg-repository.c | 45 +++ + gitg/gitg-repository.h | 2 + + gitg/gitg-runner.c | 59 ++++- + gitg/gitg-runner.h | 3 + + gitg/gitg-spinner.c | 2 +- + gitg/gitg-window.c | 161 ++++++++++- + 11 files changed, 824 insertions(+), 82 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 2631c22a5f3f770c8b812e4a9a7ceb92632a4e9c + + Fix fix for autoscroll + + gitg/gitg-dnd.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 2dcdddf28d990145404c734e857ebe90a488628d + + Fixed filter for recently opened repositories + + gitg/gitg-ui.xml | 3 --- + gitg/gitg-window.c | 14 +++++++++----- + 2 files changed, 9 insertions(+), 8 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit ff72080fcea9b5aac2dcce769135a6273623fb52 + + Use fields instead of functions to keep compatible with gtk+ 2.12 + + configure.ac | 2 +- + gitg/gitg-dnd.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 9b7387ae2e2242542652f5323bb065b7af4eef50 + + Use gnome e-mail address in about dialog + + gitg/gitg-window.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 1693ec3d4353c731c21678b52d69e955951fb14a + + Fixed reaping childs and registering exit code + + gitg/gitg-runner.c | 22 +++++++++++++++++----- + 1 files changed, 17 insertions(+), 5 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 85f5166cb10e210d25d2787575e247d38f1725bc + + Implemented async removal of remote branch + + gitg/gitg-branch-actions.c | 164 ++++++++++++++++++++++++++------------------ + gitg/gitg-branch-actions.h | 7 +- + gitg/gitg-runner.c | 9 ++- + 3 files changed, 106 insertions(+), 74 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 0ac787cc825a823e370b929bf325d85bce6ff8db + + Correctly reap child process and kill it when cancelling the runner + + gitg/gitg-runner.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit d6dc2ce53dfd5a2b8086275983c467f6d2478d3b + + Better messages in branch action dialogs + + gitg/gitg-branch-actions.c | 22 ++++++++++++++-------- + 1 files changed, 14 insertions(+), 8 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit a6bce1dafb082d9b5b406f6fa77aacdc30332caa + + Set title of dialogs to 'gitg' instead of '' + + gitg/gitg-branch-actions.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit c29765ae170ddb0d40628c5c1adae5c6b96ddca8 + + Destroy dialog correctly + + gitg/gitg-branch-actions.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 1f1c4358e8ec05d13e8095b04bfd51137ab270f0 + + Added async progress for branch actions + + gitg/gitg-branch-actions.c | 246 ++++++++++++++++++++++++++++++++++++++----- + gitg/gitg-branch-actions.h | 4 +- + gitg/gitg-repository.c | 2 +- + gitg/gitg-window.c | 39 +++++++- + 4 files changed, 259 insertions(+), 32 deletions(-) + +2009-07-04 Jesse van den Kieboom +commit 2f7c20d35aad204a0ca48f8f4f789e9f69968981 + + Implemented spinner to show fetch progress + + This should look a bit better than having the pulsating progress bar + + gitg/Makefile.am | 2 + + gitg/gitg-repository-dialog.c | 107 +++--- + gitg/gitg-repository.ui | 12 +- + gitg/gitg-spinner.c | 794 +++++++++++++++++++++++++++++++++++++++++ + gitg/gitg-spinner.h | 99 +++++ + 5 files changed, 961 insertions(+), 53 deletions(-) + +2009-06-30 Jesse van den Kieboom +commit 086304c412b57de15b5d94f5834529b3b3285265 + + Bumped gtk version to 2.14 + + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-06-29 Jesse van den Kieboom +commit 64566905164b4711e14ef73a7ac70e428079866b + + Use gulong correctly instead of guint + + gitg/gitg-repository-dialog.c | 11 ++++++----- + 1 files changed, 6 insertions(+), 5 deletions(-) + +2009-06-29 Jesse van den Kieboom +commit bf75d62fa960bb5f22b46740ade675a50a7b23c9 + + Fixed signed off check button indicator + + gitg/gitg-window.ui | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-06-29 Jesse van den Kieboom +commit a8832f93d563d9c040f05a15ed828d68339fe6bb + + Implemented pushing local branches to remotes + + This is currently blocking (bad) + + gitg/gitg-branch-actions.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ + gitg/gitg-branch-actions.h | 2 +- + gitg/gitg-window.c | 11 +++++++- + 3 files changed, 67 insertions(+), 3 deletions(-) + +2009-06-29 Jesse van den Kieboom +commit 8ffe9aca4e864b0e7b28344a539accd12544a001 + + Cleanup and added checks for valid types + + gitg/gitg-branch-actions.c | 53 ++++++++++++++++++++++++------------------- + 1 files changed, 30 insertions(+), 23 deletions(-) + +2009-06-29 Jesse van den Kieboom +commit f5dc1aaec6d371fd58fe3cb0168926c0cc9d5858 + + Fixed compiler warnings + + gitg/gitg-branch-actions.c | 5 +++++ + gitg/gitg-dnd.c | 8 +++++--- + gitg/gitg-repository-dialog.c | 2 ++ + 3 files changed, 12 insertions(+), 3 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit cfcb51861b9902ab00205e6f4865e3871f631082 + + Basic start of adding DND and context menus for refs in the revision view + + gitg/Makefile.am | 4 + + gitg/gitg-branch-actions.c | 334 +++++++++++++++++++++++++++ + gitg/gitg-branch-actions.h | 39 ++++ + gitg/gitg-dnd.c | 536 ++++++++++++++++++++++++++++++++++++++++++++ + gitg/gitg-dnd.h | 17 ++ + gitg/gitg-menus.xml | 56 +++++ + gitg/gitg-window.c | 323 +++++++++++++++++++++++++- + gitg/gitg-window.ui | 178 ++++++++------- + 8 files changed, 1397 insertions(+), 90 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit 0068cb141e2f3f133177244a44583d32ff6a35b3 + + Bit more efficient getting refs using prepend/reverse instead of append + + gitg/gitg-repository.c | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit 173a4b1a7e0f77f2020df331c41bbb40c7db0fc5 + + Added state and local name + + gitg/gitg-ref.c | 30 ++++++++++++++++++++++++++++++ + gitg/gitg-ref.h | 39 ++++++++++++++++++++++++++------------- + 2 files changed, 56 insertions(+), 13 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit e0713585d764a1c0d67c5ad99ee1a258910aeb6e + + Added getting/rendering GitgRef from renderer at specific position + + This adds two functions. One to get a GitgRef at a certain position from + the GitgCellRendererPath, the other draws a GitgRef as drawn in the + renderer and returns it as a GdkPixbuf + + gitg/gitg-cell-renderer-path.c | 35 ++++++ + gitg/gitg-cell-renderer-path.h | 4 + + gitg/gitg-label-renderer.c | 245 +++++++++++++++++++++++++++++++++------- + gitg/gitg-label-renderer.h | 5 + + 4 files changed, 246 insertions(+), 43 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit a861f8821faba6d2d17f272c1b06b0774f5a83de + + Added getting tree view column cell renderer at specific x position + + gitg/gitg-utils.c | 39 +++++++++++++++++++++++++++++++++++++++ + gitg/gitg-utils.h | 1 + + 2 files changed, 40 insertions(+), 0 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit c2b1a67383d9a57c2ddff81ab9207bc71fa18fbc + + Implemented getting current working ref + + gitg/gitg-repository.c | 58 +++++++++++++++++++++++++++++++++++++++++++----- + gitg/gitg-repository.h | 1 + + 2 files changed, 53 insertions(+), 6 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit ff7c07a4e6be5ba560219c01ebfe13c81833bb4c + + Correctly reselect 'All branches' + + gitg/gitg-repository.c | 2 +- + gitg/gitg-window.c | 6 +++++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +2009-06-28 Jesse van den Kieboom +commit 1215f49d58f2efc3a2e3614c2ad07abb35297f3a + + Added configuration preferences and repository properties + + This adds configuration for user name and email to the global preferences + (from the global git config). Per repository configuration has also been + added. In addition to user name and e-mail, remotes can now be + added/removed/fetched/renamed from the repository properties dialog. + + gitg/Makefile.am | 9 +- + gitg/gitg-commit-menu.ui | 41 ++ + gitg/gitg-commit-view.c | 19 +- + gitg/gitg-config.c | 360 +++++++++++++++++ + gitg/gitg-config.h | 42 ++ + gitg/gitg-preferences-dialog.c | 42 ++- + gitg/gitg-preferences.ui | 507 ++++++++++++++++++++++++ + gitg/gitg-preferences.xml | 396 ------------------- + gitg/gitg-repository-dialog.c | 765 +++++++++++++++++++++++++++++++++++++ + gitg/gitg-repository-dialog.h | 40 ++ + gitg/gitg-repository.ui | 305 +++++++++++++++ + gitg/gitg-ui.xml | 828 +--------------------------------------- + gitg/gitg-window.c | 53 ++- + gitg/gitg-window.h | 2 + + gitg/gitg-window.ui | 805 ++++++++++++++++++++++++++++++++++++++ + gitg/gitg.c | 2 +- + 16 files changed, 2988 insertions(+), 1228 deletions(-) + +2009-06-24 Jesse van den Kieboom +commit f88f6b158340a2d6de46f7d7016a4e20db5063e4 + + Added showing right margin in commit message + + This adds a preference to show the right margin at a particular column. + This can be used to easily see where commit messages could be wrapped + to stay within a certain column width. + + data/gitg.schemas.in | 27 ++++++++ + gitg/gitg-commit-view.c | 10 +++ + gitg/gitg-preferences-dialog.c | 33 ++++++++++ + gitg/gitg-preferences.c | 32 ++++++++++ + gitg/gitg-preferences.xml | 134 +++++++++++++++++++++++++++++++++++++++- + gitg/gitg-ui.xml | 2 +- + 6 files changed, 236 insertions(+), 2 deletions(-) + +2009-06-24 Jesse van den Kieboom +commit e50c5f42a23b84f49c2273408d8289518208fcab + + Fixed showing and parsing diff for merge commit + + Before, only non-merge commits were shown properly (e.g. with file list + and proper highlighting). Now merge commits also show the changed file + list and highlighting has been fixed. Fixes bug #580611. + + data/gitgdiff.lang | 2 +- + gitg/gitg-diff-view.c | 9 +++++---- + gitg/gitg-revision-view.c | 18 +++++++++++++----- + 3 files changed, 19 insertions(+), 10 deletions(-) + +2009-06-24 Jesse van den Kieboom +commit 05ad2c1173bea94452aa3cefe1a2d8143672183e + + Added small icon for remotes in branches combo + + gitg/gitg-ui.xml | 6 ++++++ + gitg/gitg-window.c | 13 +++++++++++-- + 2 files changed, 17 insertions(+), 2 deletions(-) + +2009-06-24 Jesse van den Kieboom +commit c0b966fa76fd73be2c5db9d22e09e56e884bea96 + + Set current ref (from load arguments) as default selection in branches combo + + This correctly parses the arguments supplied to fetch the revisions and gets + the the branch name from it (using git rev-parse). + + gitg/gitg-repository.c | 51 ++++++++++++++++++++++++++++++++++---------- + gitg/gitg-window.c | 55 ++++++++++++++++++++--------------------------- + 2 files changed, 62 insertions(+), 44 deletions(-) + +2009-06-23 Jesse van den Kieboom +commit e26bb05e7583ffdcd8335906a5905310fee28e84 + + Fixed crashing on switching revisions after selection in diff list + + gitg/gitg-revision-view.c | 13 ++++++++++++- + 1 files changed, 12 insertions(+), 1 deletions(-) + +2009-06-23 Jesse van den Kieboom +commit 75b5b5b90c5c8e5b1afc13be94ebf133ecb646ef + + Use nested branches in combo + + GitgRef is now also a proper GType (Boxed) + + gitg/gitg-commit-view.c | 3 - + gitg/gitg-label-renderer.c | 8 ++- + gitg/gitg-ref.c | 92 +++++++++++++++++++++++++ + gitg/gitg-ref.h | 42 +++++++++--- + gitg/gitg-repository.c | 14 +++- + gitg/gitg-window.c | 161 ++++++++++++++++++++++++++++++++++---------- + 6 files changed, 264 insertions(+), 56 deletions(-) + +2009-06-20 A S Alam +commit 30a0282d68674a044067c5966dfbd1a4d850ce80 + + Updating for LINGUAS + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +2009-06-20 A S Alam +commit 1600d10a7e0d86a4b8b7930d3557c629d31ce0c4 + + Adding pa translation and update LINGUAS file by A S Alam + + po/pa.po | 340 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 340 insertions(+), 0 deletions(-) + +2009-06-11 Jorge Gonzalez +commit e268368edc3e16748b1874dd43d885e21fb39688 + + Added initial Spanish translaiton + + po/es.po | 340 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 340 insertions(+), 0 deletions(-) + +2009-06-11 Jorge Gonzalez +commit 857c6beedf9030de595bb4c68c681cb309a16d48 + + Added es to LINGUAS + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +2009-06-11 Joe Hansen +commit 39317c1361c06f06b245c44ac20a0177344c820a + + Added Danish translation + + po/da.po | 2 +- + po/gitg.pot | 40 ++++++++++++++++++++-------------------- + 2 files changed, 21 insertions(+), 21 deletions(-) + +2009-06-11 Kenneth Nielsen +commit 3a10213f831ee6d75451e758c5013b7f284379b1 + + Added da to list of languages + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +2009-06-11 Joe Hansen +commit 5af635a5127c905fd2349bbc618f0ccb4260d253 + + Added Danish translation + + po/da.po | 346 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 346 insertions(+), 0 deletions(-) + +2009-05-04 Stephen Shaw +commit 0e5ab4b0d6080de59e2f06f1f7da4864f3680e1c + + Set *cached instead of comparing it if sign == 't' + + gitg/gitg-revision-view.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-04-24 Jesse van den Kieboom +commit 17828489f0d163a0f2ea3aa6c9146032f1f3420b + + Updated download link and added link to mailing list + + Releases will now be available from GNOME ftp + + README | 7 ++++--- + 1 files changed, 4 insertions(+), 3 deletions(-) + +2009-04-24 Jesse van den Kieboom +commit dab173b98fb508452156fa7c5c913a93ad6408fc + + Updated author e-mail + + AUTHORS | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +2009-04-24 Jesse van den Kieboom +commit 36c6b267caff49732b36ddf6c94828a028d88e23 + + Bumped version to 0.0.4 switch to pre-version scheme + + configure.ac | 2 +- + gitg.doap | 24 ++++++++++++++++++++++++ + 2 files changed, 25 insertions(+), 1 deletions(-) + ------------------------------------------------------------------------------- Version 0.0.3 ------------------------------------------------------------------------------- @@ -861,7 +2316,7 @@ 1 files changed, 3 insertions(+), 0 deletions(-) commit 34bfbcc3b6442b5eea873eee5a940d5c25c2896d -Merge: ba3995c... 7c045fa... +Merge: ba3995c 7c045fa Author: Jesse van den Kieboom Date: 2009-02-06 @@ -1634,7 +3089,7 @@ 1 files changed, 4 insertions(+), 5 deletions(-) commit 0587270404769cb6918028768785ee060df0355a -Merge: a88debb... 8275339... +Merge: a88debb 8275339 Author: Jesse van den Kieboom Date: 2009-01-29 diff -Nru gitg-0.0.3/config.guess gitg-0.0.6/config.guess --- gitg-0.0.3/config.guess 2009-04-23 22:17:59.000000000 +0100 +++ gitg-0.0.6/config.guess 2010-02-21 09:56:10.000000000 +0000 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2008-01-23' +timestamp='2009-04-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -324,6 +324,9 @@ case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -331,7 +334,20 @@ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -796,7 +812,7 @@ x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd) + EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -935,6 +951,9 @@ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -985,9 +1004,6 @@ a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. @@ -1102,8 +1118,11 @@ pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 @@ -1141,6 +1160,16 @@ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1216,6 +1245,9 @@ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1324,6 +1356,9 @@ i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -Nru gitg-0.0.3/config.h.in gitg-0.0.6/config.h.in --- gitg-0.0.3/config.h.in 2009-04-23 22:17:59.000000000 +0100 +++ gitg-0.0.6/config.h.in 2010-02-21 09:56:10.000000000 +0000 @@ -82,6 +82,9 @@ /* 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 diff -Nru gitg-0.0.3/config.sub gitg-0.0.6/config.sub --- gitg-0.0.3/config.sub 2009-04-23 22:17:59.000000000 +0100 +++ gitg-0.0.6/config.sub 2010-02-21 09:56:10.000000000 +0000 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2008-01-16' +timestamp='2009-04-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -122,6 +122,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -249,13 +250,16 @@ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ @@ -268,6 +272,7 @@ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -277,7 +282,7 @@ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -286,7 +291,7 @@ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) + | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) @@ -329,14 +334,17 @@ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ @@ -358,20 +366,20 @@ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) @@ -439,6 +447,10 @@ basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -459,6 +471,10 @@ basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -526,6 +542,10 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -1128,6 +1148,10 @@ basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1166,7 +1190,7 @@ we32k) basic_machine=we32k-att ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) @@ -1238,8 +1262,9 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1248,7 +1273,7 @@ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1388,6 +1413,9 @@ -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; -none) ;; *) diff -Nru gitg-0.0.3/configure gitg-0.0.6/configure --- gitg-0.0.3/configure 2009-04-23 22:17:59.000000000 +0100 +++ gitg-0.0.6/configure 2010-02-21 09:56:10.000000000 +0000 @@ -1,62 +1,83 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for gitg 0.0.3. +# Generated by GNU Autoconf 2.64 for gitg 0.0.6. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. ## -## --------------------- ## +## -------------------- ## +## 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 +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # 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 ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: +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 - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false +# 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 @@ -65,20 +86,18 @@ # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +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 + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -89,354 +108,322 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # CDPATH. -$as_unset CDPATH - +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes + 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 - as_have_required=no + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} +" + 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 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : +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 - exitcode=1 - echo positional parameters were not saved. + as_have_required=no fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + 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=. - case $as_dir in + as_found=: + case $as_dir in #( /*) for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + # 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 - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - + 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. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$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: http://www.icecrew.nl about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. fi +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 -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi +## --------------------- ## +## 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 () +{ -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi + 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" -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi -if ( set x; as_func_ret_success y && test x = "$1" ); then - : +} # 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 - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi + 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 -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} +# as_fn_error 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=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error -exitcode=0 -if as_func_success; then - : +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. + as_expr=false fi -if as_func_ret_success; then - : +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. + as_basename=false fi -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname else - exitcode=1 - echo positional parameters were not saved. + as_dirname=false fi -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} +as_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_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) + 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/= @@ -453,8 +440,7 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } + { $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 @@ -464,49 +450,40 @@ exit } - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +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' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -514,7 +491,7 @@ rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false @@ -531,12 +508,12 @@ as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else - case $1 in - -*)set "./$1";; + case $1 in #( + -*)set "./$1";; esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' @@ -551,7 +528,6 @@ - # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} @@ -718,14 +694,14 @@ subdirs= MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='gitg' PACKAGE_TARNAME='gitg' -PACKAGE_VERSION='0.0.3' -PACKAGE_STRING='gitg 0.0.3' +PACKAGE_VERSION='0.0.6' +PACKAGE_STRING='gitg 0.0.6' PACKAGE_BUGREPORT='http://www.icecrew.nl' +PACKAGE_URL='' ac_unique_file="gitg/gitg.c" # Factoring default headers for most tests. @@ -764,172 +740,196 @@ # include #endif" -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -GITG_MAJOR_VERSION -GITG_MINOR_VERSION -GITG_MICRO_VERSION -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -am__isrc -CYGPATH_W -PACKAGE -VERSION -ACLOCAL -AUTOCONF -AUTOMAKE -AUTOHEADER -MAKEINFO -install_sh -STRIP -INSTALL_STRIP_PROGRAM -mkdir_p -AWK -SET_MAKE -am__leading_dot -AMTAR -am__tar -am__untar -MAINTAINER_MODE_TRUE -MAINTAINER_MODE_FALSE -MAINT -GCONFTOOL -USE_NLS -INTLTOOL_UPDATE -INTLTOOL_MERGE -INTLTOOL_EXTRACT -INTLTOOL_DESKTOP_RULE -INTLTOOL_DIRECTORY_RULE -INTLTOOL_KEYS_RULE -INTLTOOL_PROP_RULE -INTLTOOL_OAF_RULE -INTLTOOL_PONG_RULE -INTLTOOL_SERVER_RULE -INTLTOOL_SHEET_RULE -INTLTOOL_SOUNDLIST_RULE -INTLTOOL_UI_RULE -INTLTOOL_XAM_RULE -INTLTOOL_KBD_RULE -INTLTOOL_XML_RULE -INTLTOOL_XML_NOMERGE_RULE -INTLTOOL_CAVES_RULE -INTLTOOL_SCHEMAS_RULE -INTLTOOL_THEME_RULE -INTLTOOL_SERVICE_RULE -INTLTOOL_POLICY_RULE -XGETTEXT -MSGMERGE -MSGFMT -GMSGFMT -INTLTOOL_PERL -ALL_LINGUAS -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -DEPDIR -am__include -am__quote -AMDEP_TRUE -AMDEP_FALSE -AMDEPBACKSLASH -CCDEPMODE -am__fastdepCC_TRUE -am__fastdepCC_FALSE -DATADIRNAME -LIBTOOL -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -SED -GREP -EGREP -FGREP -LD -DUMPBIN -ac_ct_DUMPBIN -NM -LN_S -AR -RANLIB -lt_ECHO -DSYMUTIL -NMEDIT -LIPO -OTOOL -OTOOL64 -CPP -GZIP -GLIB_MKENUMS -ACLOCAL_AMFLAGS -GETTEXT_PACKAGE -MSGFMT_OPTS -CATALOGS -CATOBJEXT -GMOFILES -INSTOBJEXT -INTLLIBS -PO_IN_DATADIR_TRUE -PO_IN_DATADIR_FALSE -POFILES -POSUB -MKINSTALLDIRS -PKG_CONFIG -PACKAGE_CFLAGS -PACKAGE_LIBS -GLIB_GENMARSHAL -bundledir -GCONF_SCHEMA_CONFIG_SOURCE -GCONF_SCHEMA_FILE_DIR -GCONF_SCHEMAS_INSTALL_TRUE -GCONF_SCHEMAS_INSTALL_FALSE +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS LIBOBJS -LTLIBOBJS' +GCONF_SCHEMAS_INSTALL_FALSE +GCONF_SCHEMAS_INSTALL_TRUE +GCONF_SCHEMA_FILE_DIR +GCONF_SCHEMA_CONFIG_SOURCE +bundledir +GLIB_GENMARSHAL +PACKAGE_LIBS +PACKAGE_CFLAGS +PKG_CONFIG +MKINSTALLDIRS +POSUB +POFILES +PO_IN_DATADIR_FALSE +PO_IN_DATADIR_TRUE +INTLLIBS +INSTOBJEXT +GMOFILES +CATOBJEXT +CATALOGS +MSGFMT_OPTS +GETTEXT_PACKAGE +ACLOCAL_AMFLAGS +GLIB_MKENUMS +GZIP +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +DATADIRNAME +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +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_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE +USE_NLS +GCONFTOOL +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +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 +GITG_MICRO_VERSION +GITG_MINOR_VERSION +GITG_MAJOR_VERSION +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_maintainer_mode +enable_silent_rules +enable_nls +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +enable_libtool_lock +enable_bundle +with_gconf_source +with_gconf_schema_file_dir +enable_schemas_install +' ac_precious_vars='build_alias host_alias target_alias @@ -947,6 +947,8 @@ # 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 @@ -1045,13 +1047,20 @@ datarootdir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; + 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 ;; @@ -1064,13 +1073,20 @@ dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + 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- \ @@ -1261,22 +1277,36 @@ ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; + 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_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; + 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. @@ -1296,25 +1326,25 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } + -*) 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. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } + 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. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -1323,23 +1353,36 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } + 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 -# Be sure to have absolute directory names. +# 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 - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } + 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' @@ -1353,7 +1396,7 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $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 @@ -1369,23 +1412,21 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } + as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } + 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 -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | + 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 @@ -1412,13 +1453,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } + 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" || { echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } + 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 @@ -1444,7 +1483,7 @@ # 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 gitg 0.0.3 to adapt to many kinds of systems. +\`configure' configures gitg 0.0.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1466,9 +1505,9 @@ Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1478,25 +1517,25 @@ 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/gitg] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --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/gitg] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1514,15 +1553,18 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gitg 0.0.3:";; + short | recursive ) echo "Configuration of gitg 0.0.6:";; esac cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') --disable-nls do not use Native Language Support --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors @@ -1532,7 +1574,8 @@ optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-bundle Enable building bundle (default: disabled) - --disable-schemas-install Disable the schemas installation + --disable-schemas-install + Disable the schemas installation Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1560,86 +1603,445 @@ PACKAGE_LIBS linker flags for PACKAGE, overriding pkg-config -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { 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 +gitg configure 0.0.6 +generated by GNU Autoconf 2.64 + +Copyright (C) 2009 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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 -Report bugs to . +#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 -ac_status=$? +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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue - ac_builddir=. +} # ac_fn_c_check_func -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix +# 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -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 ;; +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix +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; } >/dev/null && { + 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 - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done + ac_retval=1 fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $ac_retval -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -gitg configure 0.0.3 -generated by GNU Autoconf 2.61 +} # ac_fn_c_try_cpp -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. +# 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $ac_retval + +} # ac_fn_c_try_run + +# 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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 - exit +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.$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;} +( cat <<\_ASBOX +## ------------------------------------ ## +## Report this to http://www.icecrew.nl ## +## ------------------------------------ ## +_ASBOX + ) | 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel 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 gitg $as_me 0.0.3, which was -generated by GNU Autoconf 2.61. Invocation command line was +It was created by gitg $as_me 0.0.6, which was +generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -1675,8 +2077,8 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } >&5 @@ -1710,12 +2112,12 @@ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" + 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 @@ -1731,13 +2133,13 @@ -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } +{ 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 @@ -1762,12 +2164,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_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) ;; #( - *) $as_unset $ac_var ;; + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -1796,9 +2199,9 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo @@ -1813,9 +2216,9 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1831,64 +2234,69 @@ echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $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'; { (exit 1); exit 1; }' $ac_signal + 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 explicitly selected file to automatically selected ones. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi -shift -for ac_site_file +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do + test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + { $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" fi @@ -1898,16 +2306,16 @@ # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + { $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 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1921,68 +2329,56 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $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) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $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 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # 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=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) 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. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - - - - - - - - + { $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' @@ -1995,49 +2391,35 @@ -cat >>confdefs.h <<\_ACEOF -#define GITG_MAJOR_VERSION 0 -_ACEOF +$as_echo "#define GITG_MAJOR_VERSION 0" >>confdefs.h GITG_MAJOR_VERSION=0 -cat >>confdefs.h <<\_ACEOF -#define GITG_MINOR_VERSION 0 -_ACEOF +$as_echo "#define GITG_MINOR_VERSION 0" >>confdefs.h GITG_MINOR_VERSION=0 -cat >>confdefs.h <<\_ACEOF -#define GITG_MICRO_VERSION 3 -_ACEOF +$as_echo "#define GITG_MICRO_VERSION 6" >>confdefs.h -GITG_MICRO_VERSION=3 +GITG_MICRO_VERSION=6 -am__api_version='1.10' +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 + for ac_t in install-sh install.sh shtool; do + if test -f "$ac_dir/$ac_t"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/$ac_t -c" + break 2 + fi + done done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } + 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, @@ -2062,22 +2444,23 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +# 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 test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test "${ac_cv_path_install+set}" = set; 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/* | \ + # 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\\/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. @@ -2095,17 +2478,29 @@ # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + 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 + + done IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then @@ -2118,8 +2513,8 @@ INSTALL=$ac_install_sh fi fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } +{ $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. @@ -2129,21 +2524,34 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +{ $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` + 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` + set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ @@ -2153,65 +2561,172 @@ # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } + 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. - : + 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 test "${ac_cv_prog_STRIP+set}" = set; 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 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm -f conftest.sed -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + 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" -{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +{ $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 test "${ac_cv_path_mkdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if test "${ac_cv_path_mkdir+set}" = set; 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_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 #( @@ -2223,7 +2738,7 @@ esac done done -done + done IFS=$as_save_IFS fi @@ -2239,8 +2754,8 @@ MKDIR_P="$ac_install_sh -d" fi fi -{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -echo "${ECHO_T}$MKDIR_P" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in @@ -2252,10 +2767,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. @@ -2265,36 +2780,37 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi test -n "$AWK" && break done -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -2311,12 +2827,12 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2335,9 +2851,7 @@ am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -2353,7 +2867,7 @@ # Define the identity of the package. PACKAGE='gitg' - VERSION='0.0.3' + VERSION='0.0.6' cat >>confdefs.h <<_ACEOF @@ -2381,112 +2895,6 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. @@ -2500,17 +2908,18 @@ -{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then +if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi - { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' @@ -2524,13 +2933,25 @@ ac_config_headers="$ac_config_headers config.h" +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +AM_BACKSLASH='\' + # Extract the first word of "gconftool-2", so it can be a program name with args. set dummy gconftool-2; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_GCONFTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GCONFTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $GCONFTOOL in [\\/]* | ?:[\\/]*) @@ -2542,14 +2963,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -2557,26 +2978,26 @@ fi GCONFTOOL=$ac_cv_path_GCONFTOOL if test -n "$GCONFTOOL"; then - { echo "$as_me:$LINENO: result: $GCONFTOOL" >&5 -echo "${ECHO_T}$GCONFTOOL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONFTOOL" >&5 +$as_echo "$GCONFTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; } + { $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 +if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi - { echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } DEPDIR="${am__leading_dot}deps" @@ -2587,44 +3008,44 @@ am_make=${MAKE-make} cat > confinc << 'END' am__doit: - @echo done + @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +{ $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 -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi +# 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 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac fi -{ echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6; } +{ $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 +if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi @@ -2649,10 +3070,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2662,25 +3083,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2689,10 +3110,10 @@ ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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. @@ -2702,25 +3123,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2728,12 +3149,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 @@ -2746,10 +3163,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2759,25 +3176,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2786,10 +3203,10 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2800,18 +3217,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -2830,11 +3247,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2845,10 +3262,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2858,25 +3275,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2889,10 +3306,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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. @@ -2902,25 +3319,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2932,12 +3349,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 @@ -2947,98 +3360,82 @@ fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +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. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" +$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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 +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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + rm -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +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_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. +{ $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; } +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 | *.o | *.obj ) ;; + *.$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" +if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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, @@ -3048,14 +3445,14 @@ do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + *.$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; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3074,78 +3471,75 @@ else ac_file='' fi - -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } -if test -z "$ac_file"; then - echo "$as_me: failed program was:" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then : + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "C compiler cannot create executables +See \`config.log' for more details." "$LINENO" 5; }; } fi - ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' - { (case "(($ac_try" in + { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $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 - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. + { { $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." >&2;} - { (exit 1); exit 1; }; } +See \`config.log' for more details." "$LINENO" 5; } fi fi fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } - -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } -if { (ac_try="$ac_link" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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 @@ -3153,37 +3547,31 @@ for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $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$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } +{ $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 -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_objext+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3195,51 +3583,46 @@ } _ACEOF rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" +if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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 ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +{ { $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 -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } +{ $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 -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3253,54 +3636,34 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $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 -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3311,34 +3674,11 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3349,81 +3689,34 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - + ; + 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 -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $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 @@ -3439,18 +3732,14 @@ CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3507,31 +3796,9 @@ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -3542,17 +3809,19 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $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' @@ -3562,10 +3831,10 @@ depcc="$CC" am_compiler_list= -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; 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 @@ -3590,6 +3859,11 @@ 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 @@ -3607,7 +3881,17 @@ 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 @@ -3617,19 +3901,23 @@ break fi ;; + 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 - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $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 sub/conftest.${OBJEXT-o} 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 @@ -3653,8 +3941,8 @@ fi fi -{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +{ $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 @@ -3673,36 +3961,32 @@ case "$am__api_version" in 1.01234) - { { echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 -echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.35.0"; then - { echo "$as_me:$LINENO: checking for intltool >= 0.35.0" >&5 -echo $ECHO_N "checking for intltool >= 0.35.0... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5 +$as_echo_n "checking for intltool >= 0.35.0... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | 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; }'` - { echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 -echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&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" || - { { echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.35.0 or later." >&5 -echo "$as_me: error: Your intltool is too old. You need intltool 0.35.0 or later." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "Your intltool is too old. You need intltool 0.35.0 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) @@ -3714,14 +3998,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3729,20 +4013,20 @@ fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5 -echo "${ECHO_T}$INTLTOOL_UPDATE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) @@ -3754,14 +4038,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3769,20 +4053,20 @@ fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5 -echo "${ECHO_T}$INTLTOOL_MERGE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) @@ -3794,14 +4078,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3809,18 +4093,16 @@ fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5 -echo "${ECHO_T}$INTLTOOL_EXTRACT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 - { { echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5 -echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' @@ -3863,13 +4145,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) @@ -3881,14 +4239,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3896,20 +4254,20 @@ fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then - { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGMERGE+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) @@ -3921,14 +4279,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3936,20 +4294,20 @@ fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then - { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) @@ -3961,14 +4319,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3976,20 +4334,20 @@ fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then - { echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) @@ -4001,14 +4359,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" @@ -4017,34 +4375,30 @@ fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $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 - { { echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} - { (exit 1); exit 1; }; } + 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 - { { echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} - { (exit 1); exit 1; }; } + 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) @@ -4056,14 +4410,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4071,34 +4425,35 @@ fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 -echo "${ECHO_T}$INTLTOOL_PERL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then - { { echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5 -echo "$as_me: error: perl not found; required for intltool" >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then - { { echo "$as_me:$LINENO: error: perl 5.x required for intltool" >&5 -echo "$as_me: error: perl 5.x required for intltool" >&2;} - { (exit 1); exit 1; }; } + 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 - { echo "$as_me:$LINENO: checking for XML::Parser" >&5 -echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6; } + { $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 - { echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } else - { { echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 -echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi @@ -4108,11 +4463,7 @@ # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4124,113 +4475,13 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - case $host in + case $host in *-*-solaris*) - { echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6; } -if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. - For example, HP-UX 11i declares gettimeofday. */ -#define bind_textdomain_codeset innocuous_bind_textdomain_codeset - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char bind_textdomain_codeset (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef bind_textdomain_codeset - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bind_textdomain_codeset (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset -choke me -#endif - -int -main () -{ -return bind_textdomain_codeset (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_bind_textdomain_codeset=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_bind_textdomain_codeset=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6; } -if test $ac_cv_func_bind_textdomain_codeset = yes; then + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : DATADIRNAME=share else DATADIRNAME=lib @@ -4242,9 +4493,8 @@ ;; esac fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi @@ -4253,14 +4503,14 @@ case `pwd` in *\ * | *\ *) - { echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac -macro_version='2.2.4' -macro_revision='1.2976' +macro_version='2.2.6' +macro_revision='1.3012' @@ -4278,35 +4528,27 @@ # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6; } -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -4322,28 +4564,24 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6; } -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -4359,51 +4597,46 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } -if test "${ac_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done - echo "$ac_script" | sed 99q >conftest.sed - $as_unset ac_script || ac_script= - # Extract the first word of "sed gsed" to use in msg output -if test -z "$SED"; then -set dummy sed gsed; ac_prog_name=$2 -if test "${ac_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then ac_path_SED_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # 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 do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue - # Check for GNU ac_path_SED and select it if it is found. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $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" - echo '' >> "conftest.nl" + $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" @@ -4415,31 +4648,21 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_SED_found && break 3 + $ac_path_SED_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -SED="$ac_cv_path_SED" -if test -z "$SED"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -fi - + if test -z "$ac_cv_path_SED"; then + as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi else ac_cv_path_SED=$SED fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 -echo "${ECHO_T}$ac_cv_path_SED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -4456,45 +4679,40 @@ -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_path_GREP+set}" = set; 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 + # 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. + 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 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $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" - echo 'GREP' >> "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 - ac_count=`expr $ac_count + 1` + 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" @@ -4506,77 +4724,61 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_GREP_found && break 3 + $ac_path_GREP_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - + 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 -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } +{ $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" -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; 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 - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + 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 + # 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. + 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 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $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" - echo 'EGREP' >> "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 - ac_count=`expr $ac_count + 1` + 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" @@ -4588,78 +4790,62 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_EGREP_found && break 3 + $ac_path_EGREP_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - + 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 -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } +{ $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" -{ echo "$as_me:$LINENO: checking for fgrep" >&5 -echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else - # Extract the first word of "fgrep" to use in msg output -if test -z "$FGREP"; then -set dummy fgrep; ac_prog_name=$2 -if test "${ac_cv_path_FGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$FGREP"; then ac_path_FGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # 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 fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue - # Check for GNU ac_path_FGREP and select it if it is found. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $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" - echo 'FGREP' >> "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" @@ -4667,37 +4853,26 @@ 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_FGREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -FGREP="$ac_cv_path_FGREP" -if test -z "$FGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else ac_cv_path_FGREP=$FGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 -echo "${ECHO_T}$ac_cv_path_FGREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -4722,7 +4897,7 @@ # Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then +if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no @@ -4731,8 +4906,8 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -4761,14 +4936,14 @@ ;; esac elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR @@ -4798,19 +4973,17 @@ LD="$lt_cv_path_LD" if test -n "$LD"; then - { echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -4834,10 +5007,10 @@ -{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 -echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; } -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. @@ -4883,8 +5056,8 @@ : ${lt_cv_path_NM=no} fi fi -{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else @@ -4894,10 +5067,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. @@ -4907,25 +5080,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_DUMPBIN="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then - { echo "$as_me:$LINENO: result: $DUMPBIN" >&5 -echo "${ECHO_T}$DUMPBIN" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4938,10 +5111,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. @@ -4951,25 +5124,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_DUMPBIN="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then - { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 -echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4981,12 +5154,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 DUMPBIN=$ac_ct_DUMPBIN @@ -5005,45 +5174,45 @@ -{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 -echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; } -if test "${lt_cv_nm_interface+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if test "${lt_cv_nm_interface+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:5015: $ac_compile\"" >&5) + (eval echo "\"\$as_me:5184: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:5018: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:5187: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:5021: output\"" >&5) + (eval echo "\"\$as_me:5190: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 -echo "${ECHO_T}$lt_cv_nm_interface" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } -{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments -{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then : + $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" @@ -5064,7 +5233,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -5160,11 +5329,11 @@ fi if test -n $lt_cv_sys_max_cmd_len ; then - { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } else - { echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len @@ -5177,8 +5346,8 @@ : ${MV="mv -f"} : ${RM="rm -f"} -{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 -echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" @@ -5187,18 +5356,18 @@ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes -{ echo "$as_me:$LINENO: result: $xsi_shell" >&5 -echo "${ECHO_T}$xsi_shell" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } -{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 -echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes -{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5 -echo "${ECHO_T}$lt_shell_append" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -5232,15 +5401,15 @@ -{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi -{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -5265,11 +5434,112 @@ +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump" + $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 +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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_OBJDUMP="objdump" + $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_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + 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 + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + -{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 -echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= @@ -5319,6 +5589,12 @@ fi ;; +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; @@ -5456,8 +5732,8 @@ esac fi -{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -5476,10 +5752,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. @@ -5489,25 +5765,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5516,10 +5792,10 @@ ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. @@ -5529,25 +5805,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then @@ -5555,12 +5831,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -5585,10 +5857,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -5598,25 +5870,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5625,10 +5897,10 @@ ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; 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. @@ -5638,25 +5910,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -5664,12 +5936,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 @@ -5688,10 +5956,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -5701,25 +5969,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5728,10 +5996,10 @@ ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. @@ -5741,25 +6009,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -5767,12 +6035,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -5849,10 +6113,10 @@ # Check for command to grab the raw symbol name followed by C symbol from nm. -{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : + $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. @@ -5869,7 +6133,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -5967,18 +6231,18 @@ int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -6031,11 +6295,11 @@ lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" @@ -6069,11 +6333,11 @@ lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } else - { echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } fi @@ -6098,7 +6362,7 @@ # Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then +if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi @@ -6110,11 +6374,11 @@ ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" @@ -6128,12 +6392,12 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6131 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + echo '#line 6395 "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) @@ -6167,11 +6431,11 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in @@ -6220,10 +6484,10 @@ # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" - { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -6231,11 +6495,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6246,34 +6506,13 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_cc_needs_belf=no + lt_cv_cc_needs_belf=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -6281,8 +6520,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" @@ -6291,11 +6530,11 @@ sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in @@ -6321,10 +6560,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. @@ -6334,25 +6573,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_DSYMUTIL="${ac_tool_prefix}dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then - { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 -echo "${ECHO_T}$DSYMUTIL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6361,10 +6600,10 @@ ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. @@ -6374,25 +6613,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_DSYMUTIL="dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then - { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 -echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then @@ -6400,12 +6639,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 DSYMUTIL=$ac_ct_DSYMUTIL @@ -6417,10 +6652,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. @@ -6430,25 +6665,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_NMEDIT="${ac_tool_prefix}nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then - { echo "$as_me:$LINENO: result: $NMEDIT" >&5 -echo "${ECHO_T}$NMEDIT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6457,10 +6692,10 @@ ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. @@ -6470,25 +6705,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_NMEDIT="nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then - { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 -echo "${ECHO_T}$ac_ct_NMEDIT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then @@ -6496,12 +6731,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 NMEDIT=$ac_ct_NMEDIT @@ -6513,10 +6744,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. @@ -6526,25 +6757,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_LIPO="${ac_tool_prefix}lipo" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then - { echo "$as_me:$LINENO: result: $LIPO" >&5 -echo "${ECHO_T}$LIPO" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6553,10 +6784,10 @@ ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. @@ -6566,25 +6797,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_LIPO="lipo" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then - { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 -echo "${ECHO_T}$ac_ct_LIPO" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then @@ -6592,12 +6823,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 LIPO=$ac_ct_LIPO @@ -6609,10 +6836,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_OTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. @@ -6622,25 +6849,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_OTOOL="${ac_tool_prefix}otool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then - { echo "$as_me:$LINENO: result: $OTOOL" >&5 -echo "${ECHO_T}$OTOOL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6649,10 +6876,10 @@ ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. @@ -6662,25 +6889,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_OTOOL="otool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then - { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 -echo "${ECHO_T}$ac_ct_OTOOL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then @@ -6688,12 +6915,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 OTOOL=$ac_ct_OTOOL @@ -6705,10 +6928,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_OTOOL64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. @@ -6718,25 +6941,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_OTOOL64="${ac_tool_prefix}otool64" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then - { echo "$as_me:$LINENO: result: $OTOOL64" >&5 -echo "${ECHO_T}$OTOOL64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6745,10 +6968,10 @@ ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. @@ -6758,25 +6981,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_OTOOL64="otool64" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then - { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 -echo "${ECHO_T}$ac_ct_OTOOL64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then @@ -6784,12 +7007,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 OTOOL64=$ac_ct_OTOOL64 @@ -6824,10 +7043,10 @@ - { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 -echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then @@ -6851,22 +7070,18 @@ rm -f conftest.* fi fi -{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 -echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } - { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 -echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6877,39 +7092,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_ld_exported_symbols_list=no + lt_cv_ld_exported_symbols_list=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi -{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 -echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -6950,15 +7144,15 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +{ $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 test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if test "${ac_cv_prog_CPP+set}" = set; 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" @@ -6972,11 +7166,7 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -6985,76 +7175,34 @@ #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +if $ac_preproc_ok; then : break fi @@ -7066,8 +7214,8 @@ else ac_cv_prog_CPP=$CPP fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } +{ $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 @@ -7077,11 +7225,7 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -7090,83 +7234,40 @@ #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +if $ac_preproc_ok; then : + else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $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 @@ -7176,16 +7277,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -7200,47 +7297,23 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no + ac_cv_header_stdc=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "memchr" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -7250,18 +7323,14 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "free" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -7271,14 +7340,10 @@ 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 + if test "$cross_compiling" = yes; then : : else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -7305,113 +7370,36 @@ return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default +if ac_fn_c_try_run "$LINENO"; then : -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + 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 - eval "$as_ac_Header=no" 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 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then + +# 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 +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -7419,58 +7407,13 @@ done - for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_DLFCN_H 1 _ACEOF fi @@ -7490,7 +7433,7 @@ # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then +if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; @@ -7521,7 +7464,7 @@ # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then +if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; @@ -7553,7 +7496,7 @@ # Check whether --with-pic was given. -if test "${with_pic+set}" = set; then +if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default @@ -7569,7 +7512,7 @@ # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then +if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; @@ -7650,10 +7593,10 @@ setopt NO_GLOB_SUBST fi -{ echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } -if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then : + $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null @@ -7665,8 +7608,8 @@ fi rmdir .libs 2>/dev/null fi -{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir @@ -7758,10 +7701,10 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -7811,11 +7754,11 @@ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7824,10 +7767,10 @@ if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then - { echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -7877,11 +7820,11 @@ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7961,10 +7904,10 @@ if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' - { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext @@ -7979,11 +7922,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7982: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7925: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7986: \$? = $ac_status" >&5 + echo "$as_me:7929: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7996,8 +7939,8 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" @@ -8016,8 +7959,8 @@ lt_prog_compiler_pic= lt_prog_compiler_static= -{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -8051,7 +7994,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8066,10 +8009,11 @@ ;; hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. case $host_cpu in - hppa*64*|ia64*) + hppa*64*) # +Z the default ;; *) @@ -8119,7 +8063,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -8149,11 +8093,25 @@ linux* | k*bsd*-gnu) case $cc_basename in - icc* | ecc* | ifort*) + # old Intel for x86_64 which still supported -KPIC. + ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -8273,8 +8231,8 @@ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } @@ -8285,10 +8243,10 @@ # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then - { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext @@ -8303,11 +8261,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8306: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8264: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8310: \$? = $ac_status" >&5 + echo "$as_me:8268: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8320,8 +8278,8 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in @@ -8344,10 +8302,10 @@ # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" @@ -8372,8 +8330,8 @@ LDFLAGS="$save_LDFLAGS" fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : @@ -8387,10 +8345,10 @@ - { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null @@ -8408,11 +8366,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8411: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8369: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8415: \$? = $ac_status" >&5 + echo "$as_me:8373: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8434,18 +8392,18 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null @@ -8463,11 +8421,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8466: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8424: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8470: \$? = $ac_status" >&5 + echo "$as_me:8428: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8489,8 +8447,8 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } @@ -8498,19 +8456,19 @@ hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -8522,8 +8480,8 @@ - { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= @@ -8567,7 +8525,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8582,6 +8540,9 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu) + link_all_deplibs=no + ;; esac ld_shlibs=yes @@ -8654,7 +8615,7 @@ fi ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -8720,6 +8681,9 @@ tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; @@ -8952,6 +8916,7 @@ fi fi + export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes @@ -8961,11 +8926,7 @@ allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -8976,24 +8937,7 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -9007,15 +8951,9 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -9028,11 +8966,7 @@ else # Determine the default libpath from the value encoded in an # empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -9043,24 +8977,7 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -9074,15 +8991,9 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -9118,7 +9029,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -9149,7 +9060,11 @@ whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" - if test "$GCC" = "yes"; then + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" @@ -9241,7 +9156,7 @@ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' @@ -9290,38 +9205,16 @@ # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat >conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ int foo(void) {} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' @@ -9577,8 +9470,8 @@ fi fi -{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -9614,16 +9507,16 @@ # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext @@ -9637,11 +9530,11 @@ libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } then archive_cmds_need_lc=no else @@ -9652,8 +9545,8 @@ cat conftest.err 1>&5 fi $RM conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi @@ -9816,8 +9709,8 @@ - { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in @@ -9979,14 +9872,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10009,7 +9902,7 @@ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; - mingw*) + mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` @@ -10238,11 +10131,7 @@ save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10253,37 +10142,13 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir @@ -10490,7 +10355,7 @@ version_type=linux need_lib_prefix=no need_version=no - library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -10507,8 +10372,8 @@ dynamic_linker=no ;; esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -10609,8 +10474,8 @@ - { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || @@ -10634,8 +10499,8 @@ # directories. hardcode_action=unsupported fi -{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then @@ -10667,7 +10532,7 @@ lt_cv_dlopen_self=yes ;; - mingw* | pw32*) + mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; @@ -10679,18 +10544,14 @@ darwin*) # if libdl is installed we need to link against it - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -10708,39 +10569,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -10753,102 +10593,18 @@ ;; *) - { echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* 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 shl_load (); -/* 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_shl_load || defined __stub___shl_load -choke me -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else - { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -10866,137 +10622,32 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no + ac_cv_lib_dld_shl_load=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } -if test $ac_cv_lib_dld_shl_load = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else - { echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* 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 dlopen (); -/* 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_dlopen || defined __stub___dlopen -choke me -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11014,53 +10665,28 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11074,57 +10700,32 @@ main () { return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no + ac_cv_lib_svld_dlopen=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } -if test $ac_cv_lib_svld_dlopen = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11142,39 +10743,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no + ac_cv_lib_dld_dld_link=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } -if test $ac_cv_lib_dld_dld_link = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -11213,10 +10793,10 @@ save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross @@ -11224,7 +10804,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11227 "configure" +#line 10807 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11265,10 +10845,6 @@ # endif #endif -#ifdef __cplusplus -extern "C" void exit (int); -#endif - void fnord() { int i=42;} int main () { @@ -11284,14 +10860,14 @@ else puts (dlerror ()); - exit (status); + return status; } _LT_EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -11308,15 +10884,15 @@ fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross @@ -11324,7 +10900,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11327 "configure" +#line 10903 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11365,10 +10941,6 @@ # endif #endif -#ifdef __cplusplus -extern "C" void exit (int); -#endif - void fnord() { int i=42;} int main () { @@ -11384,14 +10956,14 @@ else puts (dlerror ()); - exit (status); + return status; } _LT_EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -11408,8 +10980,8 @@ fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -11447,13 +11019,13 @@ striplib= old_striplib= -{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in @@ -11461,16 +11033,16 @@ if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -11487,13 +11059,13 @@ # Report which library types will actually be built - { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } - { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -11513,15 +11085,15 @@ fi ;; esac - { echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } - { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes - { echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } @@ -11556,17 +11128,13 @@ -{ echo "$as_me:$LINENO: checking for library containing strerror" >&5 -echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; } -if test "${ac_cv_search_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if test "${ac_cv_search_strerror+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11591,50 +11159,27 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_strerror+set}" = set; then : break fi done -if test "${ac_cv_search_strerror+set}" = set; then - : +if test "${ac_cv_search_strerror+set}" = set; then : + else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 -echo "${ECHO_T}$ac_cv_search_strerror" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 +$as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror -if test "$ac_res" != no; then +if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi @@ -11647,10 +11192,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -11660,25 +11205,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11687,10 +11232,10 @@ ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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. @@ -11700,25 +11245,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -11726,12 +11271,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 @@ -11744,10 +11285,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -11757,25 +11298,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11784,10 +11325,10 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -11798,18 +11339,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -11828,11 +11369,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11843,10 +11384,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -11856,25 +11397,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11887,10 +11428,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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. @@ -11900,25 +11441,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11930,12 +11471,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 @@ -11945,56 +11482,42 @@ fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +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. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" +$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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 +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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + rm -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -12008,54 +11531,34 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $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 -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -12066,34 +11569,11 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -12104,35 +11584,12 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -12143,42 +11600,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $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 @@ -12194,18 +11627,14 @@ CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -12262,31 +11691,9 @@ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -12297,17 +11704,19 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $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' @@ -12317,10 +11726,10 @@ depcc="$CC" am_compiler_list= -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; 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 @@ -12345,6 +11754,11 @@ 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 @@ -12362,7 +11776,17 @@ 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 @@ -12372,19 +11796,23 @@ break fi ;; + 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 - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $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 sub/conftest.${OBJEXT-o} 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 @@ -12408,8 +11836,8 @@ fi fi -{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +{ $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 @@ -12423,91 +11851,13 @@ fi -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done -IFS=$as_save_IFS - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -12524,21 +11874,21 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Extract the first word of "gzip", so it can be a program name with args. set dummy gzip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_GZIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GZIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $GZIP in [\\/]* | ?:[\\/]*) @@ -12550,14 +11900,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_GZIP="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -12565,21 +11915,21 @@ fi GZIP=$ac_cv_path_GZIP if test -n "$GZIP"; then - { echo "$as_me:$LINENO: result: $GZIP" >&5 -echo "${ECHO_T}$GZIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5 +$as_echo "$GZIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "glib-mkenums", so it can be a program name with args. set dummy glib-mkenums; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_GLIB_MKENUMS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GLIB_MKENUMS+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $GLIB_MKENUMS in [\\/]* | ?:[\\/]*) @@ -12591,181 +11941,48 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_GLIB_MKENUMS="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $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 -GLIB_MKENUMS=$ac_cv_path_GLIB_MKENUMS -if test -n "$GLIB_MKENUMS"; then - { echo "$as_me:$LINENO: result: $GLIB_MKENUMS" >&5 -echo "${ECHO_T}$GLIB_MKENUMS" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - -ACLOCAL_AMFLAGS="$ACLOCAL_FLAGS -I m4" - - -GETTEXT_PACKAGE=gitg - - -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF - - - - -for ac_header in locale.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + done +IFS=$as_save_IFS - ac_header_compiler=no + ;; +esac +fi +GLIB_MKENUMS=$ac_cv_path_GLIB_MKENUMS +if test -n "$GLIB_MKENUMS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_MKENUMS" >&5 +$as_echo "$GLIB_MKENUMS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no -fi +ACLOCAL_AMFLAGS="$ACLOCAL_FLAGS -I m4" -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to http://www.icecrew.nl ## -## ------------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +GETTEXT_PACKAGE=gitg -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + + + for ac_header in locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_LOCALE_H 1 _ACEOF fi @@ -12773,16 +11990,12 @@ done if test $ac_cv_header_locale_h = yes; then - { echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 -echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6; } -if test "${am_cv_val_LC_MESSAGES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if test "${am_cv_val_LC_MESSAGES+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -12793,42 +12006,19 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - am_cv_val_LC_MESSAGES=no + am_cv_val_LC_MESSAGES=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 -echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_LC_MESSAGES 1 -_ACEOF +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi @@ -12841,153 +12031,20 @@ XGETTEXT=: INTLLIBS= - if test "${ac_cv_header_libintl_h+set}" = set; then - { echo "$as_me:$LINENO: checking for libintl.h" >&5 -echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; } -if test "${ac_cv_header_libintl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 -echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking libintl.h usability" >&5 -echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking libintl.h presence" >&5 -echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to http://www.icecrew.nl ## -## ------------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for libintl.h" >&5 -echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; } -if test "${ac_cv_header_libintl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_libintl_h=$ac_header_preproc -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 -echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; } - -fi -if test $ac_cv_header_libintl_h = yes; then + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # - { echo "$as_me:$LINENO: checking for ngettext in libc" >&5 -echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6; } -if test "${gt_cv_func_ngettext_libc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if test "${gt_cv_func_ngettext_libc+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -13000,50 +12057,25 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gt_cv_func_ngettext_libc=no + gt_cv_func_ngettext_libc=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 -echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { echo "$as_me:$LINENO: checking for dgettext in libc" >&5 -echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6; } -if test "${gt_cv_func_dgettext_libc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if test "${gt_cv_func_dgettext_libc+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -13056,130 +12088,26 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gt_cv_func_dgettext_libc=no + gt_cv_func_dgettext_libc=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 -echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then - -for ac_func in bind_textdomain_codeset -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi @@ -13194,18 +12122,14 @@ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - { echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 -echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6; } -if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13223,51 +12147,26 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_bindtextdomain=no + ac_cv_lib_intl_bindtextdomain=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6; } -if test $ac_cv_lib_intl_bindtextdomain = yes; then - { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 -echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; } -if test "${ac_cv_lib_intl_ngettext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_ngettext+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13285,51 +12184,26 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_ngettext=no + ac_cv_lib_intl_ngettext=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; } -if test $ac_cv_lib_intl_ngettext = yes; then - { echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 -echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6; } -if test "${ac_cv_lib_intl_dgettext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 +$as_echo_n "checking for dgettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_dgettext+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13347,39 +12221,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_dgettext=no + ac_cv_lib_intl_dgettext=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6; } -if test $ac_cv_lib_intl_dgettext = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi @@ -13389,22 +12242,18 @@ if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 -echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: " >&5 -echo "${ECHO_T}" >&6; } - { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 -echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; } -if test "${ac_cv_lib_intl_ngettext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_ngettext+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13422,51 +12271,26 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_ngettext=no + ac_cv_lib_intl_ngettext=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; } -if test $ac_cv_lib_intl_ngettext = yes; then - { echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 -echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6; } -if test "${ac_cv_lib_intl_dcgettext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13483,40 +12307,19 @@ ; return 0; } -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_dcgettext=no + ac_cv_lib_intl_dcgettext=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6; } -if test $ac_cv_lib_intl_dcgettext = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else @@ -13538,95 +12341,12 @@ glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset - -for ac_func in bind_textdomain_codeset -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi @@ -13656,16 +12376,14 @@ if test "$gt_cv_have_gettext" = "yes"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETTEXT 1 -_ACEOF +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) @@ -13689,112 +12407,29 @@ fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then - { echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" - -for ac_func in dcgettext -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= - { echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5 -echo $ECHO_N "checking if msgfmt accepts -c... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" @@ -13808,25 +12443,25 @@ "Content-Transfer-Encoding: 8bit\n" _ACEOF -if { (echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5 +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - MSGFMT_OPTS=-c; { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } -else { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $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; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) @@ -13838,14 +12473,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" @@ -13854,20 +12489,20 @@ fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then : + $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) @@ -13891,18 +12526,14 @@ fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then - { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -13914,114 +12545,14 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then +if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - case $host in + case $host in *-*-solaris*) - { echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6; } -if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. - For example, HP-UX 11i declares gettimeofday. */ -#define bind_textdomain_codeset innocuous_bind_textdomain_codeset - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char bind_textdomain_codeset (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef bind_textdomain_codeset - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bind_textdomain_codeset (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset -choke me -#endif - -int -main () -{ -return bind_textdomain_codeset (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_bind_textdomain_codeset=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_bind_textdomain_codeset=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6; } -if test $ac_cv_func_bind_textdomain_codeset = yes; then + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else @@ -14036,9 +12567,8 @@ ;; esac fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else @@ -14052,9 +12582,7 @@ if test "$gt_cv_have_gettext" = "yes" ; then -cat >>confdefs.h <<\_ACEOF -#define ENABLE_NLS 1 -_ACEOF +$as_echo "#define ENABLE_NLS 1" >>confdefs.h fi @@ -14062,8 +12590,8 @@ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else - { echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi @@ -14095,8 +12623,8 @@ if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else - { echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 -echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no @@ -14120,8 +12648,8 @@ fi done LINGUAS=$NEW_LINGUAS - { echo "$as_me:$LINENO: result: $LINGUAS" >&5 -echo "${ECHO_T}$LINGUAS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then @@ -14159,10 +12687,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -14174,14 +12702,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -14189,11 +12717,11 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -14202,10 +12730,10 @@ ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -14217,14 +12745,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -14232,11 +12760,11 @@ fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then @@ -14244,12 +12772,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $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 @@ -14261,53 +12785,53 @@ fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } + { $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 - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no -{ echo "$as_me:$LINENO: checking for PACKAGE" >&5 -echo $ECHO_N "checking for PACKAGE... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PACKAGE" >&5 +$as_echo_n "checking for PACKAGE... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PACKAGE_CFLAGS"; then pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" - gtk+-2.0 >= 2.12.0 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 gconf-2.0 -\"") >&5 +\""; } >&5 ($PKG_CONFIG --exists --print-errors " - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 gconf-2.0 ") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags " - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 @@ -14325,31 +12849,31 @@ pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" - gtk+-2.0 >= 2.12.0 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 gconf-2.0 -\"") >&5 +\""; } >&5 ($PKG_CONFIG --exists --print-errors " - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 gconf-2.0 ") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs " - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 @@ -14374,9 +12898,9 @@ fi if test $_pkg_short_errors_supported = yes; then PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 @@ -14384,9 +12908,9 @@ "` else PACKAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 @@ -14396,29 +12920,10 @@ # Put the nasty error message in config.log where it belongs echo "$PACKAGE_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements ( - gtk+-2.0 >= 2.12.0 - gthread-2.0 - gtksourceview-2.0 - gio-2.0 - gio-unix-2.0 - gmodule-2.0 - gconf-2.0 -) were not met: - -$PACKAGE_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables PACKAGE_CFLAGS -and PACKAGE_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -echo "$as_me: error: Package requirements ( - gtk+-2.0 >= 2.12.0 + as_fn_error "Package requirements ( + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 @@ -14433,10 +12938,11 @@ Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } +" "$LINENO" 5 elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14445,32 +12951,21 @@ See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables PACKAGE_CFLAGS -and PACKAGE_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +See \`config.log' for more details." "$LINENO" 5; } else PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } : fi # Extract the first word of "glib-genmarshal", so it can be a program name with args. set dummy glib-genmarshal; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $GLIB_GENMARSHAL in [\\/]* | ?:[\\/]*) @@ -14482,14 +12977,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + 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_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -14497,17 +12992,17 @@ fi GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL if test -n "$GLIB_GENMARSHAL"; then - { echo "$as_me:$LINENO: result: $GLIB_GENMARSHAL" >&5 -echo "${ECHO_T}$GLIB_GENMARSHAL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5 +$as_echo "$GLIB_GENMARSHAL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Check whether --enable-bundle was given. -if test "${enable_bundle+set}" = set; then +if test "${enable_bundle+set}" = set; then : enableval=$enable_bundle; enable_bundle=$enableval else enable_bundle=no @@ -14516,13 +13011,11 @@ if test "$enable_bundle" = "yes"; then -cat >>confdefs.h <<\_ACEOF -#define ENABLE_BUNDLE 1 -_ACEOF +$as_echo "#define ENABLE_BUNDLE 1" >>confdefs.h fi -bundledir=gitg-bundle-0.0.3 +bundledir=gitg-bundle-0.0.6 @@ -14534,14 +13027,14 @@ # Check whether --with-gconf-source was given. -if test "${with_gconf_source+set}" = set; then +if test "${with_gconf_source+set}" = set; then : withval=$with_gconf_source; GCONF_SCHEMA_CONFIG_SOURCE="$withval" fi - { echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 -echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 +$as_echo "Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' @@ -14549,22 +13042,20 @@ # Check whether --with-gconf-schema-file-dir was given. -if test "${with_gconf_schema_file_dir+set}" = set; then +if test "${with_gconf_schema_file_dir+set}" = set; then : withval=$with_gconf_schema_file_dir; GCONF_SCHEMA_FILE_DIR="$withval" fi - { echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 -echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 +$as_echo "Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } # Check whether --enable-schemas-install was given. -if test "${enable_schemas_install+set}" = set; then +if test "${enable_schemas_install+set}" = set; then : enableval=$enable_schemas_install; case ${enableval} in yes|no) ;; - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-schemas-install" >&5 -echo "$as_me: error: bad value ${enableval} for --enable-schemas-install" >&2;} - { (exit 1); exit 1; }; } ;; + *) as_fn_error "bad value ${enableval} for --enable-schemas-install" "$LINENO" 5 ;; esac fi @@ -14608,12 +13099,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_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) ;; #( - *) $as_unset $ac_var ;; + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -14621,8 +13113,8 @@ (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 \). + # `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" @@ -14645,12 +13137,12 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { $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 @@ -14666,63 +13158,58 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` + 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. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' + 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 "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + 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 - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + 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" if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $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. @@ -14732,59 +13219,79 @@ debug=false ac_cs_recheck=false ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +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 +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # 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 ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: +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 - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false +# 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 @@ -14793,20 +13300,18 @@ # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +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 + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -14817,32 +13322,111 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error 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=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&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 + -# Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -14856,13 +13440,17 @@ 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 -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -14877,104 +13465,103 @@ } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi +# 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 +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +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' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + 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=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false @@ -14991,12 +13578,12 @@ as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else - case $1 in - -*)set "./$1";; + case $1 in #( + -*)set "./$1";; esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' @@ -15011,13 +13598,19 @@ exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 -# Save the log message, to keep $[0] and so on meaningful, and to +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 gitg $as_me 0.0.3, which was -generated by GNU Autoconf 2.61. Invocation command line was +This file was extended by gitg $as_me 0.0.6, which was +generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -15030,7 +13623,16 @@ _ACEOF -cat >>$CONFIG_STATUS <<_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" @@ -15038,22 +13640,24 @@ _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. +\`$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 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages + -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 + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE Configuration files: $config_files @@ -15064,16 +13668,16 @@ Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -gitg config.status 0.0.3 -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +gitg config.status 0.0.6 +configured by $0, generated by GNU Autoconf 2.64, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2006 Free Software Foundation, Inc. +Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -15081,11 +13685,12 @@ srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +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 @@ -15107,34 +13712,38 @@ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + 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 - { echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; + as_fn_error "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; + $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. - -*) { echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; + -*) as_fn_error "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; - *) ac_config_targets="$ac_config_targets $1" + *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac @@ -15149,27 +13758,29 @@ fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL + 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 $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_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 - echo "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # @@ -15211,6 +13822,7 @@ lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' @@ -15316,6 +13928,7 @@ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ @@ -15431,7 +14044,7 @@ _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets @@ -15449,9 +14062,7 @@ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; + *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -15478,7 +14089,7 @@ trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 + trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. @@ -15489,272 +14100,139 @@ { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# -# Set up the sed scripts for CONFIG_FILES section. -# +} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h +# 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 -_ACEOF - - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -GITG_MAJOR_VERSION!$GITG_MAJOR_VERSION$ac_delim -GITG_MINOR_VERSION!$GITG_MINOR_VERSION$ac_delim -GITG_MICRO_VERSION!$GITG_MICRO_VERSION$ac_delim -INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -INSTALL_DATA!$INSTALL_DATA$ac_delim -am__isrc!$am__isrc$ac_delim -CYGPATH_W!$CYGPATH_W$ac_delim -PACKAGE!$PACKAGE$ac_delim -VERSION!$VERSION$ac_delim -ACLOCAL!$ACLOCAL$ac_delim -AUTOCONF!$AUTOCONF$ac_delim -AUTOMAKE!$AUTOMAKE$ac_delim -AUTOHEADER!$AUTOHEADER$ac_delim -MAKEINFO!$MAKEINFO$ac_delim -install_sh!$install_sh$ac_delim -STRIP!$STRIP$ac_delim -INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim -mkdir_p!$mkdir_p$ac_delim -AWK!$AWK$ac_delim -SET_MAKE!$SET_MAKE$ac_delim -am__leading_dot!$am__leading_dot$ac_delim -AMTAR!$AMTAR$ac_delim -am__tar!$am__tar$ac_delim -am__untar!$am__untar$ac_delim -MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim -MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim -MAINT!$MAINT$ac_delim -GCONFTOOL!$GCONFTOOL$ac_delim -USE_NLS!$USE_NLS$ac_delim -INTLTOOL_UPDATE!$INTLTOOL_UPDATE$ac_delim -INTLTOOL_MERGE!$INTLTOOL_MERGE$ac_delim -INTLTOOL_EXTRACT!$INTLTOOL_EXTRACT$ac_delim -INTLTOOL_DESKTOP_RULE!$INTLTOOL_DESKTOP_RULE$ac_delim -INTLTOOL_DIRECTORY_RULE!$INTLTOOL_DIRECTORY_RULE$ac_delim -INTLTOOL_KEYS_RULE!$INTLTOOL_KEYS_RULE$ac_delim -INTLTOOL_PROP_RULE!$INTLTOOL_PROP_RULE$ac_delim -INTLTOOL_OAF_RULE!$INTLTOOL_OAF_RULE$ac_delim -INTLTOOL_PONG_RULE!$INTLTOOL_PONG_RULE$ac_delim -INTLTOOL_SERVER_RULE!$INTLTOOL_SERVER_RULE$ac_delim -INTLTOOL_SHEET_RULE!$INTLTOOL_SHEET_RULE$ac_delim -INTLTOOL_SOUNDLIST_RULE!$INTLTOOL_SOUNDLIST_RULE$ac_delim -INTLTOOL_UI_RULE!$INTLTOOL_UI_RULE$ac_delim -INTLTOOL_XAM_RULE!$INTLTOOL_XAM_RULE$ac_delim -INTLTOOL_KBD_RULE!$INTLTOOL_KBD_RULE$ac_delim -INTLTOOL_XML_RULE!$INTLTOOL_XML_RULE$ac_delim -INTLTOOL_XML_NOMERGE_RULE!$INTLTOOL_XML_NOMERGE_RULE$ac_delim -INTLTOOL_CAVES_RULE!$INTLTOOL_CAVES_RULE$ac_delim -INTLTOOL_SCHEMAS_RULE!$INTLTOOL_SCHEMAS_RULE$ac_delim -INTLTOOL_THEME_RULE!$INTLTOOL_THEME_RULE$ac_delim -INTLTOOL_SERVICE_RULE!$INTLTOOL_SERVICE_RULE$ac_delim -INTLTOOL_POLICY_RULE!$INTLTOOL_POLICY_RULE$ac_delim -XGETTEXT!$XGETTEXT$ac_delim -MSGMERGE!$MSGMERGE$ac_delim -MSGFMT!$MSGFMT$ac_delim -GMSGFMT!$GMSGFMT$ac_delim -INTLTOOL_PERL!$INTLTOOL_PERL$ac_delim -ALL_LINGUAS!$ALL_LINGUAS$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` +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 -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof +echo 'BEGIN {' >"$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 - cat >conf$$subs.sed <<_ACEOF -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -DEPDIR!$DEPDIR$ac_delim -am__include!$am__include$ac_delim -am__quote!$am__quote$ac_delim -AMDEP_TRUE!$AMDEP_TRUE$ac_delim -AMDEP_FALSE!$AMDEP_FALSE$ac_delim -AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim -CCDEPMODE!$CCDEPMODE$ac_delim -am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim -am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim -DATADIRNAME!$DATADIRNAME$ac_delim -LIBTOOL!$LIBTOOL$ac_delim -build!$build$ac_delim -build_cpu!$build_cpu$ac_delim -build_vendor!$build_vendor$ac_delim -build_os!$build_os$ac_delim -host!$host$ac_delim -host_cpu!$host_cpu$ac_delim -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -SED!$SED$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -FGREP!$FGREP$ac_delim -LD!$LD$ac_delim -DUMPBIN!$DUMPBIN$ac_delim -ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim -NM!$NM$ac_delim -LN_S!$LN_S$ac_delim -AR!$AR$ac_delim -RANLIB!$RANLIB$ac_delim -lt_ECHO!$lt_ECHO$ac_delim -DSYMUTIL!$DSYMUTIL$ac_delim -NMEDIT!$NMEDIT$ac_delim -LIPO!$LIPO$ac_delim -OTOOL!$OTOOL$ac_delim -OTOOL64!$OTOOL64$ac_delim -CPP!$CPP$ac_delim -GZIP!$GZIP$ac_delim -GLIB_MKENUMS!$GLIB_MKENUMS$ac_delim -ACLOCAL_AMFLAGS!$ACLOCAL_AMFLAGS$ac_delim -GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim -MSGFMT_OPTS!$MSGFMT_OPTS$ac_delim -CATALOGS!$CATALOGS$ac_delim -CATOBJEXT!$CATOBJEXT$ac_delim -GMOFILES!$GMOFILES$ac_delim -INSTOBJEXT!$INSTOBJEXT$ac_delim -INTLLIBS!$INTLLIBS$ac_delim -PO_IN_DATADIR_TRUE!$PO_IN_DATADIR_TRUE$ac_delim -PO_IN_DATADIR_FALSE!$PO_IN_DATADIR_FALSE$ac_delim -POFILES!$POFILES$ac_delim -POSUB!$POSUB$ac_delim -MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim -PKG_CONFIG!$PKG_CONFIG$ac_delim -PACKAGE_CFLAGS!$PACKAGE_CFLAGS$ac_delim -PACKAGE_LIBS!$PACKAGE_LIBS$ac_delim -GLIB_GENMARSHAL!$GLIB_GENMARSHAL$ac_delim -bundledir!$bundledir$ac_delim -GCONF_SCHEMA_CONFIG_SOURCE!$GCONF_SCHEMA_CONFIG_SOURCE$ac_delim -GCONF_SCHEMA_FILE_DIR!$GCONF_SCHEMA_FILE_DIR$ac_delim -GCONF_SCHEMAS_INSTALL_TRUE!$GCONF_SCHEMAS_INSTALL_TRUE$ac_delim -GCONF_SCHEMAS_INSTALL_FALSE!$GCONF_SCHEMAS_INSTALL_FALSE$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF + . ./conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 68; then + 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 - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + 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 -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$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 >>"\$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 < "$tmp/subs1.awk" > "$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 $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and @@ -15771,20 +14249,128 @@ }' fi -cat >>$CONFIG_STATUS <<\_ACEOF +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 >"$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_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; 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" + -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +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*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; + :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -15812,26 +14398,34 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - ac_file_inputs="$ac_file_inputs $ac_f" + 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 "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + 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" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} + { $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 >"$tmp/stdin";; + *:-:* | *:-) cat >"$tmp/stdin" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -15841,7 +14435,7 @@ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -15859,55 +14453,15 @@ q } s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + 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=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + 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/ ;; @@ -15952,12 +14506,12 @@ esac _ACEOF -cat >>$CONFIG_STATUS <<\_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= - -case `sed -n '/datarootdir/ { +ac_sed_dataroot=' +/datarootdir/ { p q } @@ -15965,36 +14519,37 @@ /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p -' $ac_file_inputs` in +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { $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 +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' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t +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 @@ -16005,121 +14560,50 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$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' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { $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 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +$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 "$tmp/stdin" case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then - echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$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 "$tmp/config.h" $ac_file + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else - echo "/* $configure_input */" - cat "$ac_result" + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error "could not create -" "$LINENO" 5 fi - rm -f "$tmp/out12" -# Compute $ac_file's index in $config_headers. -_am_arg=$ac_file +# 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 @@ -16134,7 +14618,7 @@ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -echo X"$_am_arg" | +$as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16154,30 +14638,40 @@ s/.*/./; q'`/stamp-h$_am_stamp_count ;; - :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 -echo "$as_me: executing $ac_file commands" >&6;} + :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"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # 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" || + "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 || -echo X"$mf" | +$as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16195,68 +14689,33 @@ 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" || + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir=$dirpart/$fdir - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16274,16 +14733,12 @@ q } s/.*/./; q'` - test -d "$as_dir" && break + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" done -done +} ;; "libtool":C) @@ -16407,6 +14862,9 @@ reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -16921,10 +15379,8 @@ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) - if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" ; then - { { echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5 -echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;} - { (exit 1); exit 1; }; } + 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" @@ -16947,11 +15403,13 @@ done # for ac_tag -{ (exit 0); exit 0; } +as_fn_exit 0 _ACEOF -chmod +x $CONFIG_STATUS 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. @@ -16971,7 +15429,11 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } + $ac_cs_success || as_fn_exit $? +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 diff -Nru gitg-0.0.3/configure.ac gitg-0.0.6/configure.ac --- gitg-0.0.3/configure.ac 2009-04-23 22:12:44.000000000 +0100 +++ gitg-0.0.6/configure.ac 2010-01-24 12:17:15.000000000 +0000 @@ -4,7 +4,7 @@ m4_define(gitg_major_version, 0) m4_define(gitg_minor_version, 0) -m4_define(gitg_micro_version, 3) +m4_define(gitg_micro_version, 6) m4_define(gitg_version, gitg_major_version.gitg_minor_version.gitg_micro_version) AC_INIT(gitg, gitg_version, http://www.icecrew.nl) @@ -22,6 +22,7 @@ AM_MAINTAINER_MODE AC_CONFIG_HEADERS(config.h) +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) AC_PATH_PROG(GCONFTOOL, gconftool-2) IT_PROG_INTLTOOL([0.35.0]) @@ -45,9 +46,9 @@ AM_GLIB_GNU_GETTEXT PKG_CHECK_MODULES(PACKAGE, [ - gtk+-2.0 >= 2.12.0 + gtk+-2.0 >= 2.16.0 gthread-2.0 - gtksourceview-2.0 + gtksourceview-2.0 >= 2.8 gio-2.0 gio-unix-2.0 gmodule-2.0 diff -Nru gitg-0.0.3/data/gitg.desktop.in gitg-0.0.6/data/gitg.desktop.in --- gitg-0.0.3/data/gitg.desktop.in 2009-04-23 22:18:05.000000000 +0100 +++ gitg-0.0.6/data/gitg.desktop.in 2010-02-21 09:56:15.000000000 +0000 @@ -6,6 +6,10 @@ TryExec=gitg Terminal=false Type=Application -Icon=gitg48x48.png -Categories=GNOME;GTK;Utility; +Icon=gitg +Categories=GNOME;GTK;Development; #X-GNOME-DocPath=gitg/gitg.xml +X-GNOME-Bugzilla-Bugzilla=GNOME +X-GNOME-Bugzilla-Product=gitg +X-GNOME-Bugzilla-Component=core +X-GNOME-Bugzilla-Version=0.0.6 diff -Nru gitg-0.0.3/data/gitg.desktop.in.in gitg-0.0.6/data/gitg.desktop.in.in --- gitg-0.0.3/data/gitg.desktop.in.in 2009-01-31 20:32:51.000000000 +0000 +++ gitg-0.0.6/data/gitg.desktop.in.in 2010-01-24 12:17:15.000000000 +0000 @@ -6,6 +6,10 @@ TryExec=gitg Terminal=false Type=Application -Icon=gitg48x48.png -Categories=GNOME;GTK;Utility; +Icon=gitg +Categories=GNOME;GTK;Development; #X-GNOME-DocPath=gitg/gitg.xml +X-GNOME-Bugzilla-Bugzilla=GNOME +X-GNOME-Bugzilla-Product=gitg +X-GNOME-Bugzilla-Component=core +X-GNOME-Bugzilla-Version=@VERSION@ diff -Nru gitg-0.0.3/data/gitgdiff.lang gitg-0.0.6/data/gitgdiff.lang --- gitg-0.0.3/data/gitgdiff.lang 2009-02-07 21:42:23.000000000 +0000 +++ gitg-0.0.6/data/gitgdiff.lang 2010-01-23 21:03:30.000000000 +0000 @@ -39,7 +39,7 @@ - ^diff --git + ^diff --(git|cc) \+\+\+ .*$ diff -Nru gitg-0.0.3/data/gitg.schemas.in gitg-0.0.6/data/gitg.schemas.in --- gitg-0.0.3/data/gitg.schemas.in 2009-02-08 12:05:42.000000000 +0000 +++ gitg-0.0.6/data/gitg.schemas.in 2010-01-24 12:17:15.000000000 +0000 @@ -11,7 +11,7 @@ Whether searching filters the revisions in the history view instead of jumping to the first match. - + /schemas/apps/gitg/preferences/view/history/collapse-inactive-lanes /apps/gitg/preferences/view/history/collapse-inactive-lanes @@ -25,5 +25,90 @@ + + /schemas/apps/gitg/preferences/view/history/topo-order + /apps/gitg/preferences/view/history/topo-order + gitg + bool + FALSE + + Show History in Topological Order + Setting that indicates whether to show the history in + topological order. + + + + + /schemas/apps/gitg/preferences/view/main/layout-vertical + /apps/gitg/preferences/view/main/layout-vertical + gitg + bool + TRUE + + Show Main View in Vertical Layout + Setting that sets the orientation layout of the main view. + + + + + /schemas/apps/gitg/preferences/commit/message/show-right-margin + /apps/gitg/preferences/commit/message/show-right-margin + gitg + bool + TRUE + + Show Right Margin in Commit Message View + Show a right margin indicator in the commit message view. This + can be used to easily see where to break the commit message at a + particular column. + + + + + /schemas/apps/gitg/preferences/commit/message/right-margin-at + /apps/gitg/preferences/commit/message/right-margin-at + gitg + int + 72 + + Column at Which Right Margin is Shown + The column at which the right margin is shown if the right-margin + preference is set to TRUE. + + + + + /schemas/desktop/gnome/url-handlers/gitg/command + /desktop/gnome/url-handlers/gitg/command + gitg + string + gitg "%s" + + The command to handle GITG scheme URLs + The command to handle GITG scheme URLs. + + + + /schemas/desktop/gnome/url-handlers/gitg/needs_terminal + /desktop/gnome/url-handlers/gitg/needs_terminal + gitg + bool + false + + Whether command to handle GITG scheme URLs needs a terminal + Whether command to handle GITG scheme URLs needs a terminal. + + + + /schemas/desktop/gnome/url-handlers/gitg/enabled + /desktop/gnome/url-handlers/gitg/enabled + gitg + bool + true + + Whether command to handle GITG scheme URLs is enabled + Whether command to handle GITG scheme URLs is enabled. + + Binary files /tmp/zTinOk4SjV/gitg-0.0.3/data/icons/gitg22x22.png and /tmp/CaAjGBxfia/gitg-0.0.6/data/icons/gitg22x22.png differ Binary files /tmp/zTinOk4SjV/gitg-0.0.3/data/icons/hicolor_apps_16x16_gitg.png and /tmp/CaAjGBxfia/gitg-0.0.6/data/icons/hicolor_apps_16x16_gitg.png differ Binary files /tmp/zTinOk4SjV/gitg-0.0.3/data/icons/hicolor_apps_22x22_gitg.png and /tmp/CaAjGBxfia/gitg-0.0.6/data/icons/hicolor_apps_22x22_gitg.png differ Binary files /tmp/zTinOk4SjV/gitg-0.0.3/data/icons/hicolor_apps_24x24_gitg.png and /tmp/CaAjGBxfia/gitg-0.0.6/data/icons/hicolor_apps_24x24_gitg.png differ Binary files /tmp/zTinOk4SjV/gitg-0.0.3/data/icons/hicolor_apps_32x32_gitg.png and /tmp/CaAjGBxfia/gitg-0.0.6/data/icons/hicolor_apps_32x32_gitg.png differ Binary files /tmp/zTinOk4SjV/gitg-0.0.3/data/icons/hicolor_apps_48x48_gitg.png and /tmp/CaAjGBxfia/gitg-0.0.6/data/icons/hicolor_apps_48x48_gitg.png differ diff -Nru gitg-0.0.3/data/icons/hicolor_apps_scalable_gitg.svg gitg-0.0.6/data/icons/hicolor_apps_scalable_gitg.svg --- gitg-0.0.3/data/icons/hicolor_apps_scalable_gitg.svg 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/data/icons/hicolor_apps_scalable_gitg.svg 2010-01-24 12:17:15.000000000 +0000 @@ -0,0 +1,1196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Terminal + 2005-10-15 + + + Andreas Nilsson + + + + + terminal + emulator + term + command line + + + + + + Jakub Steiner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gitg-0.0.3/data/icons/Makefile.am gitg-0.0.6/data/icons/Makefile.am --- gitg-0.0.3/data/icons/Makefile.am 2009-02-17 10:38:31.000000000 +0000 +++ gitg-0.0.6/data/icons/Makefile.am 2010-01-24 12:17:15.000000000 +0000 @@ -1,6 +1,20 @@ -iconsdir = $(datadir)/gitg/icons -icons_DATA = \ +public_icons_themes = \ + hicolor \ + HighContrastLargePrint \ + HighContrastLargePrintInverse \ + LowContrastLargePrint + +public_icons = \ + hicolor_apps_16x16_gitg.png \ + hicolor_apps_22x22_gitg.png \ + hicolor_apps_24x24_gitg.png \ + hicolor_apps_32x32_gitg.png \ + hicolor_apps_48x48_gitg.png \ + hicolor_apps_scalable_gitg.svg + +private_icons = \ gitg16x16.png \ + gitg22x22.png \ gitg24x24.png \ gitg32x32.png \ gitg48x48.png \ @@ -8,15 +22,49 @@ gitg128x128.png \ gitg.svg -pixmapsdir = $(datadir)/pixmaps -pixmaps_DATA = \ - gitg48x48.png - -bundle: $(icons_DATA) - for i in $(SUBDIRS); do (cd $$i && $(MAKE) top_bundledir="$(top_bundledir)" $(AM_MAKEFLAGS) bundle); done; \ -for i in $(icons_DATA); do $(INSTALL) -D $$i $(top_bundledir)/resources/icons/$$i; done; +gtk_update_icon_cache = gtk-update-icon-cache -f -t + +iconsdir = $(datadir)/gitg/icons +icons_DATA = $(private_icons) + +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + for theme in $(public_icons_themes); do \ + $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ + done; \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + for theme in $(public_icons_themes); do \ + echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ + done; \ + fi + +install-icons: + for icon in $(public_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ + $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done; + +uninstall-icons: + -for icon in $(public_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done; -.PHONY: bundle +install-data-local: install-icons update-icon-cache + +uninstall-local: uninstall-icons update-icon-cache EXTRA_DIST = \ - $(icons_DATA) + $(public_icons) \ + $(private_icons) + +-include $(top_srcdir)/git.mk diff -Nru gitg-0.0.3/data/icons/Makefile.in gitg-0.0.6/data/icons/Makefile.in --- gitg-0.0.3/data/icons/Makefile.in 2009-04-23 22:18:00.000000000 +0100 +++ gitg-0.0.6/data/icons/Makefile.in 2010-02-21 09:56:10.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. @@ -16,8 +17,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@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 @@ -44,6 +46,13 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -51,16 +60,30 @@ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(iconsdir)" "$(DESTDIR)$(pixmapsdir)" -iconsDATA_INSTALL = $(INSTALL_DATA) -pixmapsDATA_INSTALL = $(INSTALL_DATA) -DATA = $(icons_DATA) $(pixmaps_DATA) +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__installdirs = "$(DESTDIR)$(iconsdir)" +DATA = $(icons_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -105,29 +128,10 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -145,6 +149,7 @@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ @@ -155,6 +160,7 @@ 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@ @@ -220,11 +226,26 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -iconsdir = $(datadir)/gitg/icons -icons_DATA = \ +public_icons_themes = \ + hicolor \ + HighContrastLargePrint \ + HighContrastLargePrintInverse \ + LowContrastLargePrint + +public_icons = \ + hicolor_apps_16x16_gitg.png \ + hicolor_apps_22x22_gitg.png \ + hicolor_apps_24x24_gitg.png \ + hicolor_apps_32x32_gitg.png \ + hicolor_apps_48x48_gitg.png \ + hicolor_apps_scalable_gitg.svg + +private_icons = \ gitg16x16.png \ + gitg22x22.png \ gitg24x24.png \ gitg32x32.png \ gitg48x48.png \ @@ -232,12 +253,12 @@ gitg128x128.png \ gitg.svg -pixmapsdir = $(datadir)/pixmaps -pixmaps_DATA = \ - gitg48x48.png - +gtk_update_icon_cache = gtk-update-icon-cache -f -t +iconsdir = $(datadir)/gitg/icons +icons_DATA = $(private_icons) EXTRA_DIST = \ - $(icons_DATA) + $(public_icons) \ + $(private_icons) all: all-am @@ -246,14 +267,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/icons/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -271,6 +292,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo @@ -280,37 +302,23 @@ install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)" - @list='$(icons_DATA)'; for p in $$list; do \ + @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \ - $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) - @list='$(icons_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \ - rm -f "$(DESTDIR)$(iconsdir)/$$f"; \ - done -install-pixmapsDATA: $(pixmaps_DATA) - @$(NORMAL_INSTALL) - test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" - @list='$(pixmaps_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pixmapsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapsdir)/$$f'"; \ - $(pixmapsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapsdir)/$$f"; \ - done - -uninstall-pixmapsDATA: - @$(NORMAL_UNINSTALL) - @list='$(pixmaps_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pixmapsdir)/$$f'"; \ - rm -f "$(DESTDIR)$(pixmapsdir)/$$f"; \ - done + @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(iconsdir)" && rm -f $$files tags: TAGS TAGS: @@ -334,13 +342,17 @@ 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 -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -348,7 +360,7 @@ check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(iconsdir)" "$(DESTDIR)$(pixmapsdir)"; do \ + for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -371,6 +383,7 @@ 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" @@ -389,26 +402,38 @@ html: html-am +html-am: + info: info-am info-am: -install-data-am: install-iconsDATA install-pixmapsDATA +install-data-am: install-data-local install-iconsDATA 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 @@ -427,29 +452,62 @@ ps-am: -uninstall-am: uninstall-iconsDATA uninstall-pixmapsDATA +uninstall-am: uninstall-iconsDATA uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconsDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-pixmapsDATA install-ps \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconsDATA 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 mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-iconsDATA \ - uninstall-pixmapsDATA + uninstall-local + + +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + for theme in $(public_icons_themes); do \ + $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ + done; \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + for theme in $(public_icons_themes); do \ + echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ + done; \ + fi + +install-icons: + for icon in $(public_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ + $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done; + +uninstall-icons: + -for icon in $(public_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done; + +install-data-local: install-icons update-icon-cache +uninstall-local: uninstall-icons update-icon-cache -bundle: $(icons_DATA) - for i in $(SUBDIRS); do (cd $$i && $(MAKE) top_bundledir="$(top_bundledir)" $(AM_MAKEFLAGS) bundle); done; \ -for i in $(icons_DATA); do $(INSTALL) -D $$i $(top_bundledir)/resources/icons/$$i; done; +-include $(top_srcdir)/git.mk -.PHONY: bundle # 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: diff -Nru gitg-0.0.3/data/Makefile.am gitg-0.0.6/data/Makefile.am --- gitg-0.0.3/data/Makefile.am 2009-02-17 10:38:31.000000000 +0000 +++ gitg-0.0.6/data/Makefile.am 2010-01-24 12:17:15.000000000 +0000 @@ -47,3 +47,5 @@ $(desktop_DATA) \ $(schemas_DATA) + +-include $(top_srcdir)/git.mk diff -Nru gitg-0.0.3/data/Makefile.in gitg-0.0.6/data/Makefile.in --- gitg-0.0.3/data/Makefile.in 2009-04-23 22:18:00.000000000 +0100 +++ gitg-0.0.6/data/Makefile.in 2010-02-21 09:56:10.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. @@ -16,8 +17,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@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 @@ -45,6 +47,13 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = gitg.desktop.in +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -54,34 +63,74 @@ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = 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' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" \ "$(DESTDIR)$(gitglangsdir)" "$(DESTDIR)$(gitgstylesdir)" \ "$(DESTDIR)$(schemasdir)" NROFF = nroff MANS = $(man_MANS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -desktopDATA_INSTALL = $(INSTALL_DATA) -gitglangsDATA_INSTALL = $(INSTALL_DATA) -gitgstylesDATA_INSTALL = $(INSTALL_DATA) -schemasDATA_INSTALL = $(INSTALL_DATA) DATA = $(desktop_DATA) $(gitglangs_DATA) $(gitgstyles_DATA) \ $(schemas_DATA) 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 ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -126,29 +175,10 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -166,6 +196,7 @@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ @@ -176,6 +207,7 @@ 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@ @@ -241,6 +273,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons @@ -273,14 +306,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -298,6 +331,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): gitg.desktop.in: $(top_builddir)/config.status $(srcdir)/gitg.desktop.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ @@ -306,119 +340,124 @@ clean-libtool: -rm -rf .libs _libs -install-man1: $(man1_MANS) $(man_MANS) +install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ + @list=''; test -n "$(man1dir)" || exit 0; \ + { 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'; \ + } | 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 \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ - 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='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ - done + @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,.,'`; \ + test -z "$$files" || { \ + echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" - @list='$(desktop_DATA)'; for p in $$list; do \ + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \ - $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \ + 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)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \ - rm -f "$(DESTDIR)$(desktopdir)/$$f"; \ - done + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(desktopdir)" && rm -f $$files install-gitglangsDATA: $(gitglangs_DATA) @$(NORMAL_INSTALL) test -z "$(gitglangsdir)" || $(MKDIR_P) "$(DESTDIR)$(gitglangsdir)" - @list='$(gitglangs_DATA)'; for p in $$list; do \ + @list='$(gitglangs_DATA)'; test -n "$(gitglangsdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(gitglangsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gitglangsdir)/$$f'"; \ - $(gitglangsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gitglangsdir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gitglangsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(gitglangsdir)" || exit $$?; \ done uninstall-gitglangsDATA: @$(NORMAL_UNINSTALL) - @list='$(gitglangs_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(gitglangsdir)/$$f'"; \ - rm -f "$(DESTDIR)$(gitglangsdir)/$$f"; \ - done + @list='$(gitglangs_DATA)'; test -n "$(gitglangsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(gitglangsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gitglangsdir)" && rm -f $$files install-gitgstylesDATA: $(gitgstyles_DATA) @$(NORMAL_INSTALL) test -z "$(gitgstylesdir)" || $(MKDIR_P) "$(DESTDIR)$(gitgstylesdir)" - @list='$(gitgstyles_DATA)'; for p in $$list; do \ + @list='$(gitgstyles_DATA)'; test -n "$(gitgstylesdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(gitgstylesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gitgstylesdir)/$$f'"; \ - $(gitgstylesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gitgstylesdir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gitgstylesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(gitgstylesdir)" || exit $$?; \ done uninstall-gitgstylesDATA: @$(NORMAL_UNINSTALL) - @list='$(gitgstyles_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(gitgstylesdir)/$$f'"; \ - rm -f "$(DESTDIR)$(gitgstylesdir)/$$f"; \ - done + @list='$(gitgstyles_DATA)'; test -n "$(gitgstylesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(gitgstylesdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gitgstylesdir)" && rm -f $$files install-schemasDATA: $(schemas_DATA) @$(NORMAL_INSTALL) test -z "$(schemasdir)" || $(MKDIR_P) "$(DESTDIR)$(schemasdir)" - @list='$(schemas_DATA)'; for p in $$list; do \ + @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(schemasDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(schemasdir)/$$f'"; \ - $(schemasDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(schemasdir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(schemasdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(schemasdir)" || exit $$?; \ done uninstall-schemasDATA: @$(NORMAL_UNINSTALL) - @list='$(schemas_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(schemasdir)/$$f'"; \ - rm -f "$(DESTDIR)$(schemasdir)/$$f"; \ - done + @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(schemasdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(schemasdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -444,7 +483,7 @@ else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ @@ -478,16 +517,16 @@ else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(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" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -495,14 +534,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(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) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -514,7 +553,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -523,34 +562,52 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + 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) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ 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)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 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)'; \ @@ -566,29 +623,44 @@ 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 -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + 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="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ @@ -622,6 +694,7 @@ 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" @@ -640,6 +713,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -650,18 +725,28 @@ 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-man1 install-pdf: install-pdf-recursive +install-pdf-am: + install-ps: install-ps-recursive +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -685,8 +770,8 @@ uninstall-man: uninstall-man1 -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ @@ -723,6 +808,9 @@ for i in $(gitgstyles_DATA); do $(INSTALL) -D $$i $(top_bundledir)/resources/styles/$$i; done; .PHONY: bundle + +-include $(top_srcdir)/git.mk + # 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: diff -Nru gitg-0.0.3/debian/changelog gitg-0.0.6/debian/changelog --- gitg-0.0.3/debian/changelog 2010-02-22 14:36:15.000000000 +0000 +++ gitg-0.0.6/debian/changelog 2010-02-22 14:14:54.000000000 +0000 @@ -1,3 +1,11 @@ +gitg (0.0.6-1ubuntu1) karmic; urgency=low + + * Just a straight update to 0.0.6 from 0.0.3 + * 0001-Change-Categories-to-Development-RevisionControl.patch context was + broken, fixed the removed line in place, leaving the end result the same. + + -- Joe MacDonald Mon, 22 Feb 2010 08:59:04 -0500 + gitg (0.0.3-2) unstable; urgency=low * debian/control: Add Depends on git-core. (Closes: #535047) diff -Nru gitg-0.0.3/debian/patches/0001-Change-Categories-to-Development-RevisionControl.patch gitg-0.0.6/debian/patches/0001-Change-Categories-to-Development-RevisionControl.patch --- gitg-0.0.3/debian/patches/0001-Change-Categories-to-Development-RevisionControl.patch 2010-02-22 14:36:15.000000000 +0000 +++ gitg-0.0.6/debian/patches/0001-Change-Categories-to-Development-RevisionControl.patch 2010-02-22 14:20:26.000000000 +0000 @@ -8,14 +8,16 @@ data/gitg.desktop.in.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -diff --git a/data/gitg.desktop.in.in b/data/gitg.desktop.in.in -index d0648f4..afa6b28 100644 ---- a/data/gitg.desktop.in.in -+++ b/data/gitg.desktop.in.in -@@ -7,5 +7,5 @@ TryExec=gitg +Index: gitg-0.0.6/data/gitg.desktop.in.in +=================================================================== +--- gitg-0.0.6.orig/data/gitg.desktop.in.in 2010-01-24 12:17:15.000000000 +0000 ++++ gitg-0.0.6/data/gitg.desktop.in.in 2010-02-22 14:18:43.000000000 +0000 +@@ -7,7 +7,7 @@ Terminal=false Type=Application - Icon=gitg48x48.png --Categories=GNOME;GTK;Utility; + Icon=gitg +-Categories=GNOME;GTK;Development; +Categories=Development;RevisionControl; #X-GNOME-DocPath=gitg/gitg.xml + X-GNOME-Bugzilla-Bugzilla=GNOME + X-GNOME-Bugzilla-Product=gitg diff -Nru gitg-0.0.3/depcomp gitg-0.0.6/depcomp --- gitg-0.0.3/depcomp 2009-04-23 22:18:00.000000000 +0100 +++ gitg-0.0.6/depcomp 2010-02-21 09:56:11.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2007-03-29.01 +scriptversion=2009-04-28.21; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. +# 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 @@ -17,9 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# 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 @@ -87,6 +85,15 @@ 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 @@ -192,14 +199,14 @@ ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' -' ' ' >> $depfile - echo >> $depfile +' ' ' >> "$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 + >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -328,7 +335,12 @@ 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" + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -404,7 +416,7 @@ # Remove the call to Libtool. if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do + while test "X$1" != 'X--mode=compile'; do shift done shift @@ -455,32 +467,39 @@ "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do + while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift - cleared=no - for arg in "$@"; do + 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/^.*\././'`" + obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" @@ -500,7 +519,7 @@ # Remove the call to Libtool. if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do + while test "X$1" != 'X--mode=compile'; do shift done shift @@ -538,13 +557,27 @@ msvisualcpp) # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. + # 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 @@ -557,16 +590,23 @@ ;; esac done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + "$@" -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" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$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 "$@" ;; @@ -585,5 +625,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff -Nru gitg-0.0.3/gitg/gitg-branch-actions.c gitg-0.0.6/gitg/gitg-branch-actions.c --- gitg-0.0.3/gitg/gitg-branch-actions.c 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-branch-actions.c 2010-01-24 12:17:15.000000000 +0000 @@ -0,0 +1,1893 @@ +#include +#include + +#include "gitg-branch-actions.h" +#include "gitg-utils.h" + +typedef enum +{ + GITG_PROGRESS_SUCCESS, + GITG_PROGRESS_ERROR, + GITG_PROGRESS_CANCELLED +} GitgProgress; + +typedef void (*ProgressCallback)(GitgWindow *window, GitgProgress progress, gpointer data); + +typedef struct +{ + GitgWindow *window; + GitgRunner *runner; + + ProgressCallback callback; + gpointer callback_data; + + guint timeout_id; + + GtkDialog *dialog; + GtkProgressBar *progress; +} ProgressInfo; + +static void +free_progress_info (ProgressInfo *info) +{ + if (info->timeout_id) + { + g_source_remove (info->timeout_id); + } + + gtk_widget_destroy (GTK_WIDGET (info->dialog)); + + g_object_unref (info->runner); + g_slice_free (ProgressInfo, info); +} + +static gchar const ** +parse_valist(va_list ap) +{ + gchar const *a; + gchar const **ret = NULL; + guint num = 0; + + while ((a = va_arg(ap, gchar const *)) != NULL) + { + ret = g_realloc(ret, sizeof(gchar const *) * (++num + 1)); + ret[num - 1] = a; + } + + ret[num] = NULL; + return ret; +} + +static void +on_progress_end (GitgRunner *runner, gboolean cancelled, ProgressInfo *info) +{ + GitgProgress progress; + + if (cancelled) + { + progress = GITG_PROGRESS_CANCELLED; + } + else if (gitg_runner_get_exit_status (runner) != 0) + { + progress = GITG_PROGRESS_ERROR; + } + else + { + progress = GITG_PROGRESS_SUCCESS; + } + + GitgWindow *window = info->window; + ProgressCallback callback = info->callback; + gpointer data = info->callback_data; + free_progress_info (info); + + callback (window, progress, data); +} + +static void +on_progress_response (GtkDialog *dialog, GtkResponseType response, ProgressInfo *info) +{ + gitg_runner_cancel (info->runner); +} + +static gboolean +on_progress_timeout (ProgressInfo *info) +{ + gtk_progress_bar_pulse (info->progress); + return TRUE; +} + +static GitgRunner * +run_progress (GitgWindow *window, + gchar const *title, + gchar const *message, + ProgressCallback callback, + gpointer callback_data, + ...) +{ + va_list ap; + + // Create runner + va_start (ap, callback_data); + + GitgRunner *runner = gitg_runner_new (1000); + gchar const **argv = parse_valist (ap); + + if (!gitg_repository_run_command (gitg_window_get_repository (window), + runner, + argv, + NULL)) + { + g_free (argv); + g_object_unref (runner); + + callback (window, GITG_PROGRESS_ERROR, callback_data); + + return NULL; + } + + g_free (argv); + + // Create dialog to show progress + GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; + GtkWidget *dlg; + + dlg = gtk_message_dialog_new (GTK_WINDOW (window), + flags, + GTK_MESSAGE_INFO, + GTK_BUTTONS_CANCEL, + "%s", + title); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), + "%s", + message); + + gtk_window_set_title (GTK_WINDOW (dlg), _("gitg")); + + // Add progress bar + GtkWidget *area = gtk_dialog_get_content_area (GTK_DIALOG (dlg)); + GtkWidget *progress = gtk_progress_bar_new (); + gtk_widget_show (progress); + + gtk_box_pack_start (GTK_BOX (area), progress, FALSE, FALSE, 0); + + gtk_widget_show (dlg); + + ProgressInfo *info = g_slice_new0 (ProgressInfo); + + info->dialog = GTK_DIALOG (dlg); + info->progress = GTK_PROGRESS_BAR (progress); + info->callback = callback; + info->callback_data = callback_data; + info->window = window; + info->runner = g_object_ref (runner); + + info->timeout_id = g_timeout_add (100, (GSourceFunc)on_progress_timeout, info); + + g_signal_connect (dlg, "response", G_CALLBACK (on_progress_response), info); + g_signal_connect (runner, "end-loading", G_CALLBACK (on_progress_end), info); + + return runner; +} + +static gint +message_dialog (GitgWindow *window, + GtkMessageType type, + gchar const *primary, + gchar const *secondary, + gchar const *accept, + ...) +{ + GtkWidget *dlg; + va_list ap; + + va_start (ap, accept); + gchar *prim = g_strdup_vprintf (primary, ap); + va_end (ap); + + GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; + dlg = gtk_message_dialog_new (GTK_WINDOW (window), + flags, + type, + GTK_BUTTONS_NONE, + "%s", + prim); + + g_free (prim); + + gtk_window_set_title (GTK_WINDOW (dlg), _("gitg")); + + if (secondary) + { + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), + "%s", + secondary); + } + + GtkWidget *button; + + button = gtk_button_new_from_stock (accept ? GTK_STOCK_CANCEL : GTK_STOCK_OK); + gtk_widget_show (button); + + gtk_dialog_add_action_widget (GTK_DIALOG (dlg), + button, + accept ? GTK_RESPONSE_CANCEL : GTK_RESPONSE_ACCEPT); + + if (accept) + { + button = gtk_button_new_with_label (accept); + gtk_widget_show (button); + + GtkWidget *image = gtk_image_new_from_stock (GTK_STOCK_OK, + GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image); + + gtk_button_set_image (GTK_BUTTON (button), image); + gtk_dialog_add_action_widget (GTK_DIALOG (dlg), + button, + GTK_RESPONSE_ACCEPT); + } + + gint ret = gtk_dialog_run (GTK_DIALOG (dlg)); + gtk_widget_destroy (dlg); + + return ret; +} + +static GitgRunner * +remove_local_branch (GitgWindow *window, + GitgRef *ref) +{ + gchar const *name = gitg_ref_get_shortname (ref); + GitgRepository *repository = gitg_window_get_repository (window); + + if (!gitg_repository_commandv (repository, NULL, "branch", "-d", name, NULL)) + { + gint ret = message_dialog (window, + GTK_MESSAGE_ERROR, + _("Branch <%s> could not be removed"), + _("This usually means that the branch is not fully merged in HEAD. Do you want to forcefully remove the branch?"), + _("Force remove"), + name); + + if (ret == GTK_RESPONSE_ACCEPT) + { + if (!gitg_repository_commandv (repository, NULL, "branch", "-D", name, NULL)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Branch <%s> could not be forcefully removed"), + NULL, + NULL, + name); + + return NULL; + } + else + { + gitg_repository_reload (repository); + return NULL; + } + } + } + else + { + gitg_repository_reload (repository); + + return NULL; + } + + return NULL; +} + +static void +on_remove_remote_result (GitgWindow *window, GitgProgress progress, gpointer data) +{ + GitgRef *ref = (GitgRef *)data; + + if (progress == GITG_PROGRESS_ERROR) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to remove remote branch <%s>."), + NULL, + NULL, + gitg_ref_get_shortname (ref)); + } + else if (progress == GITG_PROGRESS_SUCCESS) + { + gitg_repository_reload (gitg_window_get_repository (window)); + } + + gitg_ref_free (ref); +} + +static GitgRunner * +remove_remote_branch (GitgWindow *window, + GitgRef *ref) +{ + gchar const *name = gitg_ref_get_shortname (ref); + + gint r = message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Are you sure you want to remove the remote branch <%s>?"), + _("This permanently removes the remote branch."), + _("Remove remote branch"), + name); + + if (r != GTK_RESPONSE_ACCEPT) + { + return NULL; + } + + gchar *local = gitg_ref_get_local_name (ref); + gchar *rm = g_strconcat (":", local, NULL); + g_free (local); + + GitgRunner *ret; + gchar *message = g_strdup_printf ("Removing remote branch `%s'", name); + + ret = run_progress (window, + _("Remove branch"), + message, + on_remove_remote_result, + gitg_ref_copy (ref), + "push", + gitg_ref_get_prefix (ref), + rm, + NULL); + g_free (message); + + return ret; +} + +static gchar * +get_stash_refspec (GitgRepository *repository, GitgRef *stash) +{ + gchar **out; + + out = gitg_repository_command_with_outputv (repository, + NULL, + "log", + "--no-color", + "--pretty=oneline", + "-g", + "refs/stash", + NULL); + + gchar **ptr = out; + gchar *sha1 = gitg_utils_hash_to_sha1_new (gitg_ref_get_hash (stash)); + gchar *ret = NULL; + + while (ptr && *ptr) + { + if (g_str_has_prefix (*ptr, sha1)) + { + gchar *start = *ptr + HASH_SHA_SIZE + 1; + gchar *end = strchr (start, ':'); + + if (end) + { + ret = g_strndup (start, end - start); + } + break; + } + ptr++; + } + + g_strfreev (out); + g_free (sha1); + + return ret; +} + +static GitgRunner * +remove_stash (GitgWindow *window, GitgRef *ref) +{ + gint r = message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Are you sure you want to remove this stash item?"), + _("This permanently removes the stash item"), + _("Remove stash")); + + if (r != GTK_RESPONSE_ACCEPT) + { + return NULL; + } + + GitgRepository *repository = gitg_window_get_repository (window); + gchar *spec = get_stash_refspec (repository, ref); + + if (!spec) + { + return NULL; + } + + if (!gitg_repository_commandv (repository, + NULL, + "reflog", + "delete", + "--updateref", + "--rewrite", + spec, + NULL)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to remove stash"), + _("The stash item could not be successfully removed"), + NULL); + } + else + { + if (!gitg_repository_commandv (repository, + NULL, + "rev-parse", + "--verify", + "refs/stash@{0}", + NULL)) + { + gitg_repository_commandv (repository, + NULL, + "update-ref", + "-d", + "refs/stash", + NULL); + } + + gitg_repository_reload (repository); + } + + g_free (spec); + return NULL; +} + +static GitgRunner * +remove_tag (GitgWindow *window, GitgRef *ref) +{ + gchar const *name = gitg_ref_get_shortname (ref); + gchar *message = g_strdup_printf (_("Are you sure you want to remove the tag <%s>?"), + name); + gint r = message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Remove tag"), + message, + _("Remove tag")); + g_free (message); + + if (r != GTK_RESPONSE_ACCEPT) + { + return NULL; + } + + GitgRepository *repository = gitg_window_get_repository (window); + + if (!gitg_repository_commandv (repository, + NULL, + "tag", + "-d", + name, + NULL)) + { + message = g_strdup_printf (_("The tag <%s> could not be successfully removed"), + name); + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to remove tag"), + message, + NULL); + g_free (message); + return NULL; + } + else + { + gitg_repository_reload (repository); + return NULL; + } +} + +GitgRunner * +gitg_branch_actions_remove (GitgWindow *window, + GitgRef *ref) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (ref != NULL, NULL); + + GitgRef *cp = gitg_ref_copy (ref); + GitgRunner *ret = NULL; + + switch (gitg_ref_get_ref_type (cp)) + { + case GITG_REF_TYPE_BRANCH: + ret = remove_local_branch (window, cp); + break; + case GITG_REF_TYPE_REMOTE: + ret = remove_remote_branch (window, cp); + break; + case GITG_REF_TYPE_STASH: + ret = remove_stash (window, cp); + break; + case GITG_REF_TYPE_TAG: + ret = remove_tag (window, cp); + break; + default: + break; + } + + gitg_ref_free (cp); + return ret; +} + +static GitgRunner * +rename_branch (GitgWindow *window, + GitgRef *ref, + const gchar *newname) +{ + gchar const *oldname = gitg_ref_get_shortname (ref); + GitgRepository *repository = gitg_window_get_repository (window); + + if (!gitg_repository_commandv (repository, NULL, "branch", "-m", oldname, newname, NULL)) + { + gint ret = message_dialog (window, + GTK_MESSAGE_ERROR, + _("Branch <%s> could not be renamed to <%s>"), + _("This usually means that a branch with that name already exists. Do you want to overwrite the branch?"), + _("Force rename"), + oldname, newname); + + if (ret == GTK_RESPONSE_ACCEPT) + { + if (!gitg_repository_commandv (repository, NULL, "branch", "-M", oldname, newname, NULL)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Branch <%s> could not be forcefully renamed"), + NULL, + NULL, + oldname); + + return NULL; + } + else + { + gitg_repository_reload (repository); + return NULL; + } + } + } + else + { + gitg_repository_reload (repository); + + return NULL; + } + + return NULL; +} + +static gchar * +rename_dialog (GitgWindow *window, const gchar *oldname) +{ + GtkWidget *dlg; + + GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; + dlg = gtk_dialog_new_with_buttons ("gitg", + GTK_WINDOW (window), + flags, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + "_Rename", GTK_RESPONSE_OK, + NULL); + gtk_dialog_set_has_separator (GTK_DIALOG (dlg), FALSE); + gtk_dialog_set_default_response (GTK_DIALOG (dlg), GTK_RESPONSE_OK); + + GtkWidget *box = gtk_hbox_new (FALSE, 6); + GtkWidget *label = gtk_label_new (_("Name:")); + GtkWidget *entry = gtk_entry_new (); + gtk_entry_set_text (GTK_ENTRY (entry), oldname); + gtk_entry_set_width_chars (GTK_ENTRY (entry), 25); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); + + gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); + gtk_widget_show_all (box); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), box, TRUE, TRUE, 12); + + gint ret = gtk_dialog_run (GTK_DIALOG (dlg)); + + gchar *newname = NULL; + if (ret == GTK_RESPONSE_OK) + { + const gchar *text = gtk_entry_get_text (GTK_ENTRY (entry)); + if (*text != '\0' && strcmp (text, oldname)) + { + newname = g_strdup (text); + } + } + + gtk_widget_destroy (dlg); + + return newname; +} + +GitgRunner * +gitg_branch_actions_rename (GitgWindow *window, + GitgRef *ref) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (ref != NULL, NULL); + + if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH) + { + gchar *newname = rename_dialog (window, gitg_ref_get_shortname (ref)); + + if (newname) + { + GitgRef *cp = gitg_ref_copy (ref); + GitgRunner *ret = NULL; + ret = rename_branch (window, cp, newname); + gitg_ref_free (cp); + g_free (newname); + return ret; + } + } + + return NULL; +} + +static void +reset_buffer (GitgRunner *runner, GString *buffer) +{ + g_string_erase (buffer, 0, -1); +} + +static void +update_buffer (GitgRunner *runner, gchar **lines, GString *buffer) +{ + gchar **ptr = lines; + + while (ptr && *ptr) + { + if (buffer->len != 0) + { + g_string_append_c (buffer, '\n'); + } + + g_string_append (buffer, *ptr); + ++ptr; + } +} + +static gboolean +no_changes (GitgRepository *repository) +{ + return gitg_repository_commandv (repository, NULL, + "update-index", "--refresh", NULL) && + gitg_repository_commandv (repository, NULL, + "diff-files", "--quiet", NULL) && + gitg_repository_commandv (repository, NULL, + "diff-index", "--cached", "--quiet", "HEAD", "--", NULL); +} + +static gboolean +stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref) +{ + GitgRepository *repository = gitg_window_get_repository (window); + gboolean ret; + gchar *tree = NULL; + gchar *commit = NULL; + gchar *head = NULL; + gchar *msg = NULL; + gboolean showerror = FALSE; + + GitgRunner *runner = gitg_runner_new_synchronized (1000); + GString *buffer = g_string_new (""); + + g_signal_connect (runner, "begin-loading", G_CALLBACK (reset_buffer), buffer); + g_signal_connect (runner, "update", G_CALLBACK (update_buffer), buffer); + + gchar const *secondary; + + if (storeref) + { + secondary = _("Do you want to temporarily stash these changes?"); + } + else + { + secondary = _("Do you want to stash and reapply these changes?"); + } + + gint r = message_dialog (window, + GTK_MESSAGE_QUESTION, + _("You have uncommited changes in your current working tree"), + secondary, + _("Stash changes")); + + if (r != GTK_RESPONSE_ACCEPT) + { + ret = FALSE; + goto cleanup; + } + + gitg_repository_run_commandv (repository, runner, NULL, + "log", "--no-color", "--abbrev-commit", + "--pretty=oneline", "-n", "1", "HEAD", NULL); + + GitgRef *working = gitg_repository_get_current_working_ref (repository); + + if (working) + { + msg = g_strconcat (gitg_ref_get_shortname (working), ": ", buffer->str, NULL); + } + else + { + msg = g_strconcat ("(no branch): ", buffer->str, NULL); + } + + // Create tree object of the current index + gitg_repository_run_commandv (repository, runner, NULL, + "write-tree", NULL); + + if (buffer->len == 0) + { + ret = FALSE; + showerror = TRUE; + + goto cleanup; + } + + tree = g_strndup (buffer->str, buffer->len); + head = gitg_repository_parse_head (repository); + + gchar *idxmsg = g_strconcat ("index on ", msg, NULL); + gitg_repository_run_command_with_inputv (repository, runner, idxmsg, NULL, + "commit-tree", tree, "-p", head, NULL); + + g_free (idxmsg); + + if (buffer->len == 0) + { + ret = FALSE; + showerror = TRUE; + + goto cleanup; + } + + commit = g_strndup (buffer->str, buffer->len); + + // Working tree + gchar *tmpname = NULL; + gint fd = g_file_open_tmp ("gitg-temp-index-XXXXXX", &tmpname, NULL); + + if (fd == -1) + { + ret = FALSE; + showerror = TRUE; + + goto cleanup; + } + + GFile *customindex = g_file_new_for_path (tmpname); + + close (fd); + + gchar const *gitdir = gitg_repository_get_path (repository); + gchar *indexpath = g_build_filename (gitdir, ".git", "index", NULL); + + GFile *index = g_file_new_for_path (indexpath); + g_free (indexpath); + + gboolean copied = g_file_copy (index, customindex, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, NULL); + g_object_unref (index); + + if (!copied) + { + g_object_unref (customindex); + + ret = FALSE; + showerror = TRUE; + goto cleanup; + } + + tmpname = g_file_get_path (customindex); + gitg_runner_add_environment (runner, "GIT_INDEX_FILE", tmpname); + g_free (tmpname); + + gboolean writestash; + + writestash = gitg_repository_run_commandv (repository, runner, NULL, + "read-tree", "-m", tree, NULL) && + gitg_repository_run_commandv (repository, runner, NULL, + "add", "-u", NULL) && + gitg_repository_run_commandv (repository, runner, NULL, + "write-tree", NULL); + + g_file_delete (customindex, NULL, NULL); + g_object_unref (customindex); + + gitg_runner_set_environment (runner, NULL); + + if (!writestash) + { + ret = FALSE; + showerror = TRUE; + + goto cleanup; + } + + gchar *stashtree = g_strndup (buffer->str, buffer->len); + gchar *reason = g_strconcat ("gitg auto stash: ", msg, NULL); + + gitg_repository_run_command_with_inputv (repository, runner, reason, NULL, + "commit-tree", stashtree, + "-p", head, + "-p", commit, NULL); + g_free (stashtree); + + if (buffer->len == 0) + { + g_free (reason); + + ret = FALSE; + showerror = TRUE; + + goto cleanup; + } + + gchar *rref = g_strndup (buffer->str, buffer->len); + + if (ref) + { + *ref = g_strdup (rref); + } + + // Make ref + gchar *path = g_build_filename (gitg_repository_get_path (repository), + ".git", + "logs", + "refs", + "stash", + NULL); + GFile *reflog = g_file_new_for_path (path); + GFileOutputStream *stream = g_file_create (reflog, G_FILE_CREATE_NONE, NULL, NULL); + g_output_stream_close (G_OUTPUT_STREAM (stream), NULL, NULL); + g_object_unref (stream); + g_object_unref (reflog); + g_free (path); + + gitg_repository_run_commandv (repository, runner, NULL, + "update-ref", "-m", reason, + "refs/stash", rref, NULL); + + g_free (rref); + + gitg_repository_run_commandv (repository, runner, NULL, + "reset", "--hard", NULL); + ret = TRUE; + +cleanup: + g_string_free (buffer, TRUE); + g_object_unref (runner); + g_free (commit); + g_free (tree); + g_free (head); + g_free (msg); + + if (showerror) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to save current index state"), + NULL, + NULL); + } + + return ret; +} + +static gboolean +stash_changes (GitgWindow *window, gchar **ref, gboolean storeref) +{ + if (no_changes (gitg_window_get_repository (window))) + { + if (ref) + { + *ref = NULL; + } + + return TRUE; + } + + return stash_changes_real (window, ref, storeref); +} + +static gboolean +checkout_local_branch_real (GitgWindow *window, GitgRef *ref) +{ + GitgRepository *repository = gitg_window_get_repository (window); + + if (!gitg_repository_commandv (repository, NULL, "checkout", gitg_ref_get_shortname (ref), NULL)) + { + return FALSE; + } + else + { + return TRUE; + } +} + +static gboolean +checkout_local_branch (GitgWindow *window, + GitgRef *ref) +{ + if (!stash_changes (window, NULL, TRUE)) + { + return FALSE; + } + + gchar const *name = gitg_ref_get_shortname (ref); + + if (!checkout_local_branch_real (window, ref)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout local branch <%s>"), + NULL, + NULL, + name); + return FALSE; + } + else + { + gitg_repository_load (gitg_window_get_repository (window), 1, (gchar const **)&name, NULL); + return TRUE; + } +} + +static gboolean +checkout_remote_branch (GitgWindow *window, + GitgRef *ref) +{ + if (!stash_changes (window, NULL, TRUE)) + { + return FALSE; + } + + GitgRepository *repository = gitg_window_get_repository (window); + gchar const *name = gitg_ref_get_shortname (ref); + gchar *local = gitg_ref_get_local_name (ref); + gboolean ret; + + if (!gitg_repository_commandv (repository, + NULL, + "checkout", + "--track", + "-b", + local, + name, + NULL)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout remote branch <%s> to local branch <%s>"), + NULL, + NULL, + name, + local); + ret = FALSE; + } + else + { + gitg_repository_load (repository, 1, (gchar const **)&local, NULL); + ret = TRUE; + } + + g_free (local); + return ret; +} + +static gboolean +checkout_tag (GitgWindow *window, + GitgRef *ref) +{ + if (!stash_changes (window, NULL, TRUE)) + { + return FALSE; + } + + GitgRepository *repository = gitg_window_get_repository (window); + gchar const *name = gitg_ref_get_shortname (ref); + gboolean ret; + + if (!gitg_repository_commandv (repository, + NULL, + "checkout", + "-b", + name, + name, + NULL)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout tag <%s> to local branch <%s>"), + NULL, + NULL, + name, + name); + ret = FALSE; + } + else + { + gitg_repository_load (repository, 1, (gchar const **)&name, NULL); + ret = TRUE; + } + + return ret; +} + +gboolean +gitg_branch_actions_checkout (GitgWindow *window, + GitgRef *ref) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), FALSE); + + GitgRef *cp = gitg_ref_copy (ref); + gboolean ret = FALSE; + + switch (gitg_ref_get_ref_type (cp)) + { + case GITG_REF_TYPE_BRANCH: + ret = checkout_local_branch (window, cp); + break; + case GITG_REF_TYPE_REMOTE: + ret = checkout_remote_branch (window, cp); + break; + case GITG_REF_TYPE_TAG: + ret = checkout_tag (window, cp); + break; + default: + break; + } + + gitg_ref_free (cp); + return ret; +} + +typedef struct +{ + gboolean rebase; + + GitgRef *source; + GitgRef *dest; + + gchar *stashcommit; + GitgRef *head; +} RefInfo; + +static RefInfo * +ref_info_new (GitgRef *source, GitgRef *dest) +{ + RefInfo *ret = g_slice_new0 (RefInfo); + + ret->source = gitg_ref_copy (source); + ret->dest = gitg_ref_copy (dest); + + return ret; +} + +static void +ref_info_free (RefInfo *info) +{ + gitg_ref_free (info->source); + gitg_ref_free (info->dest); + + g_free (info->stashcommit); + gitg_ref_free (info->head); + + g_slice_free (RefInfo, info); +} + +static void +on_merge_rebase_result (GitgWindow *window, + GitgProgress progress, + gpointer data) +{ + RefInfo *info = (RefInfo *)data; + + if (progress == GITG_PROGRESS_ERROR) + { + gchar const *message; + + if (info->rebase) + { + message = _("Failed to rebase %s branch <%s> onto %s branch <%s>"); + } + else + { + message = _("Failed to merge %s branch <%s> with %s branch <%s>"); + } + + message_dialog (window, + GTK_MESSAGE_ERROR, + message, + NULL, + NULL, + gitg_ref_get_ref_type (info->source) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (info->source), + gitg_ref_get_ref_type (info->dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (info->dest)); + } + else if (progress == GITG_PROGRESS_SUCCESS) + { + GitgRepository *repository = gitg_window_get_repository (window); + + // Checkout head + if (!checkout_local_branch_real (window, info->head)) + { + gchar const *message = NULL; + + if (info->stashcommit) + { + gitg_repository_commandv (repository, NULL, + "update-ref", "-m", "gitg autosave stash", + "refs/stash", info->stashcommit, NULL); + message = _("The stashed changes have been stored to be reapplied manually"); + } + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout previously checked out branch"), + message, + NULL); + } + else if (info->stashcommit) + { + // Reapply stash + if (!gitg_repository_commandv (gitg_window_get_repository (window), + NULL, + "stash", + "apply", + "--index", + info->stashcommit, + NULL)) + { + gitg_repository_commandv (repository, NULL, + "update-ref", "-m", "gitg autosave stash", + "refs/stash", info->stashcommit, NULL); + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to reapply stash correctly"), + _("There might be unresolved conflicts in the working tree or index which you need to resolve manually"), + NULL); + } + } + + gitg_repository_reload (gitg_window_get_repository (window)); + } + + ref_info_free (info); +} + +GitgRunner * +gitg_branch_actions_merge (GitgWindow *window, + GitgRef *source, + GitgRef *dest) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (dest != NULL, NULL); + g_return_val_if_fail (source != NULL, NULL); + g_return_val_if_fail (gitg_ref_get_ref_type (dest) != GITG_REF_TYPE_REMOTE, NULL); + + gchar *message = g_strdup_printf (_("Are you sure you want to merge %s branch <%s> onto %s branch <%s>?"), + gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (source), + gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (dest)); + + if (message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Merge"), + message, + _("Merge")) != GTK_RESPONSE_ACCEPT) + { + g_free (message); + return NULL; + } + + g_free (message); + GitgRepository *repository = gitg_window_get_repository (window); + gchar *stashcommit = NULL; + + if (!stash_changes (window, &stashcommit, FALSE)) + { + return NULL; + } + + GitgRef *head = gitg_repository_get_current_working_ref (repository); + + // First checkout the correct branch on which to merge, e.g. dest + if (!gitg_repository_commandv (repository, NULL, "checkout", gitg_ref_get_shortname (dest), NULL)) + { + g_free (stashcommit); + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout local branch <%s>"), + _("The branch on which to merge could not be checked out"), + NULL, + gitg_ref_get_shortname (dest)); + return NULL; + } + + message = g_strdup_printf (_("Merging %s branch <%s> onto %s branch <%s>"), + gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (source), + gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (dest)); + + GitgRunner *ret; + RefInfo *info = ref_info_new (source, dest); + info->stashcommit = stashcommit; + info->head = gitg_ref_copy (head); + info->rebase = FALSE; + + ret = run_progress (window, + _("Merge"), + message, + on_merge_rebase_result, + info, + "merge", + gitg_ref_get_shortname (source), + NULL); + + g_free (message); + + return ret; +} + +GitgRunner * +gitg_branch_actions_rebase (GitgWindow *window, + GitgRef *source, + GitgRef *dest) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (dest != NULL, NULL); + g_return_val_if_fail (source != NULL, NULL); + g_return_val_if_fail (gitg_ref_get_ref_type (source) != GITG_REF_TYPE_REMOTE, NULL); + + gchar *message = g_strdup_printf (_("Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?"), + gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (source), + gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (dest)); + + if (message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Rebase"), + message, + _("Rebase")) != GTK_RESPONSE_ACCEPT) + { + g_free (message); + return NULL; + } + + g_free (message); + GitgRepository *repository = gitg_window_get_repository (window); + gchar *stashcommit = NULL; + + if (!no_changes (repository)) + { + // Check if destination is current HEAD + gchar *head = gitg_repository_parse_head (repository); + Hash hash; + + gitg_utils_sha1_to_hash (head, hash); + g_free (head); + + if (gitg_utils_hash_equal (hash, gitg_ref_get_hash (dest))) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Unable to rebase"), + _("There are still uncommitted changes in your working tree and you are trying to rebase a branch onto the currently checked out branch. Either remove, stash or commit your changes first and try again"), + NULL); + return NULL; + } + + if (!stash_changes_real (window, &stashcommit, FALSE)) + { + return NULL; + } + } + + gchar *merge_head = gitg_utils_hash_to_sha1_new (gitg_ref_get_hash (dest)); + + message = g_strdup_printf (_("Rebasing %s branch <%s> onto %s branch <%s>"), + gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (source), + gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"), + gitg_ref_get_shortname (dest)); + + GitgRunner *ret; + RefInfo *info = ref_info_new (source, dest); + info->stashcommit = stashcommit; + info->head = gitg_ref_copy (gitg_repository_get_current_working_ref (repository)); + info->rebase = TRUE; + + ret = run_progress (window, + _("Rebase"), + message, + on_merge_rebase_result, + info, + "rebase", + merge_head, + gitg_ref_get_shortname (source), + NULL); + + g_free (message); + g_free (merge_head); + + return ret; +} + +static void +on_push_result (GitgWindow *window, + GitgProgress progress, + gpointer data) +{ + RefInfo *info = (RefInfo *)data; + + if (progress == GITG_PROGRESS_ERROR) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to push local branch <%s> to remote <%s>"), + _("This usually means that the remote branch could not be fast-forwarded. Try fetching the latest changes."), + NULL, + gitg_ref_get_shortname (info->source), + gitg_ref_get_shortname (info->dest)); + } + else if (progress == GITG_PROGRESS_SUCCESS) + { + gitg_repository_reload (gitg_window_get_repository (window)); + } + + ref_info_free (info); +} + +GitgRunner * +gitg_branch_actions_push (GitgWindow *window, + GitgRef *source, + GitgRef *dest) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (dest != NULL, NULL); + g_return_val_if_fail (source != NULL, NULL); + g_return_val_if_fail (gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH, NULL); + g_return_val_if_fail (gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_REMOTE, NULL); + + gchar *message = g_strdup_printf (_("Are you sure you want to push <%s> to <%s>?"), + gitg_ref_get_shortname (source), + gitg_ref_get_shortname (dest)); + + if (message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Push"), + message, + _("Push")) != GTK_RESPONSE_ACCEPT) + { + g_free (message); + return NULL; + } + + g_free (message); + + gchar const *prefix = gitg_ref_get_prefix (dest); + gchar *local = gitg_ref_get_local_name (dest); + gchar const *name = gitg_ref_get_shortname (source); + + gchar *spec = g_strconcat (name, ":", local, NULL); + message = g_strdup_printf (_("Pushing local branch <%s> to remote branch <%s>"), + gitg_ref_get_shortname (source), + gitg_ref_get_shortname (dest)); + + GitgRunner *ret; + RefInfo *info = ref_info_new (source, dest); + + ret = run_progress (window, + _("Push"), + message, + on_push_result, + info, + "push", + prefix, + spec, + NULL); + + g_free (message); + g_free (local); + g_free (spec); + + return ret; +} + +GitgRunner * +gitg_branch_actions_push_remote (GitgWindow *window, + GitgRef *source, + gchar const *remote, + gchar const *branch) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (remote != NULL, NULL); + g_return_val_if_fail (source != NULL, NULL); + g_return_val_if_fail (gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH, NULL); + + gchar *message = g_strdup_printf (_("Are you sure you want to push <%s> to remote <%s/%s>?"), + gitg_ref_get_shortname (source), + remote, branch); + + if (message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Push"), + message, + _("Push")) != GTK_RESPONSE_ACCEPT) + { + g_free (message); + return NULL; + } + + g_free (message); + + gchar const *name = gitg_ref_get_shortname (source); + gchar *spec = g_strconcat (name, ":", branch, NULL); + message = g_strdup_printf (_("Pushing local branch <%s> to remote branch <%s/%s>"), + gitg_ref_get_shortname (source), + remote, branch); + + GitgRunner *ret; + gchar *rr = g_strconcat ("refs/remotes/", remote, "/", branch, NULL); + GitgRef *rmref = gitg_ref_new ("0000000000000000000000000000000000000000", rr); + g_free (rr); + + RefInfo *info = ref_info_new (source, rmref); + gitg_ref_free (rmref); + + ret = run_progress (window, + _("Push"), + message, + on_push_result, + info, + "push", + remote, + spec, + NULL); + + g_free (message); + g_free (spec); + + return ret; +} + +gboolean +gitg_branch_actions_apply_stash (GitgWindow *window, + GitgRef *stash, + GitgRef *branch) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), FALSE); + g_return_val_if_fail (gitg_ref_get_ref_type (stash) == GITG_REF_TYPE_STASH, FALSE); + g_return_val_if_fail (gitg_ref_get_ref_type (branch) == GITG_REF_TYPE_BRANCH, FALSE); + + gchar *message = g_strdup_printf (_("Are you sure you want to apply the stash item to local branch <%s>?"), + gitg_ref_get_shortname (branch)); + + if (message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Apply stash"), + message, + _("Apply stash")) != GTK_RESPONSE_ACCEPT) + { + g_free (message); + return FALSE; + } + + GitgRepository *repository = gitg_window_get_repository (window); + GitgRef *current = gitg_repository_get_current_working_ref (repository); + + if (!gitg_ref_equal (branch, current)) + { + if (!stash_changes (window, NULL, TRUE)) + { + return FALSE; + } + + if (!checkout_local_branch_real (window, branch)) + { + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout local branch <%s>"), + NULL, + NULL, + gitg_ref_get_shortname (branch)); + return FALSE; + } + } + + gchar *sha1 = gitg_utils_hash_to_sha1_new (gitg_ref_get_hash (stash)); + gboolean ret; + + if (!gitg_repository_commandv (repository, + NULL, + "stash", + "apply", + "--index", + sha1, + NULL)) + { + message = g_strdup_printf (_("The stash could not be applied to local branch <%s>"), + gitg_ref_get_shortname (branch)); + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to apply stash"), + message, + NULL); + g_free (message); + ret = FALSE; + + if (!gitg_ref_equal (current, branch) && no_changes (repository)) + { + checkout_local_branch_real (window, current); + } + } + else + { + ret = TRUE; + gitg_repository_reload (repository); + } + + return ret; +} + +gboolean +gitg_branch_actions_tag (GitgWindow *window, gchar const *sha1, gchar const *name, gchar const *message, gboolean sign) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), FALSE); + g_return_val_if_fail (sha1 != NULL, FALSE); + g_return_val_if_fail (name != NULL, FALSE); + g_return_val_if_fail (message != NULL, FALSE); + + GitgRepository *repository; + + repository = gitg_window_get_repository (window); + + if (!gitg_repository_commandv (repository, + NULL, + "tag", + "-m", + message, + sign ? "-s" : "-a", + name, + sha1, + NULL)) + { + gchar const *secondary; + + if (sign) + { + secondary = _("The tag object could not be successfully created. Please make sure you have a GPG key and the key is unlocked"); + } + else + { + secondary = _("The tag object could not be successfully created"); + } + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to create tag"), + secondary, + NULL); + return FALSE; + } + else + { + gitg_repository_reload (repository); + return TRUE; + } +} + +typedef struct +{ + GitgRevision *revision; + GitgRef *dest; + + gchar *stashcommit; + GitgRef *head; +} CherryPickInfo; + +static CherryPickInfo * +cherry_pick_info_new (GitgRevision *revision, GitgRef *dest) +{ + CherryPickInfo *ret = g_slice_new0 (CherryPickInfo); + + ret->revision = gitg_revision_ref (revision); + ret->dest = gitg_ref_copy (dest); + + return ret; +} + +static void +cherry_pick_info_free (CherryPickInfo *info) +{ + gitg_revision_unref (info->revision); + gitg_ref_free (info->dest); + + g_free (info->stashcommit); + gitg_ref_free (info->head); + + g_slice_free (CherryPickInfo, info); +} + +static void +on_cherry_pick_result (GitgWindow *window, + GitgProgress progress, + gpointer data) +{ + CherryPickInfo *info = (CherryPickInfo *)data; + + if (progress == GITG_PROGRESS_ERROR) + { + gchar const *message; + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to cherry-pick on <%s>"), + NULL, + NULL, + gitg_ref_get_shortname (info->dest)); + } + else if (progress == GITG_PROGRESS_SUCCESS) + { + GitgRepository *repository = gitg_window_get_repository (window); + + // Checkout head + if (!checkout_local_branch_real (window, info->head)) + { + gchar const *message = NULL; + + if (info->stashcommit) + { + gitg_repository_commandv (repository, NULL, + "update-ref", "-m", "gitg autosave stash", + "refs/stash", info->stashcommit, NULL); + + message = _("The stashed changes have been stored to be reapplied manually"); + } + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout previously checked out branch"), + message, + NULL); + } + else if (info->stashcommit) + { + // Reapply stash + if (!gitg_repository_commandv (gitg_window_get_repository (window), + NULL, + "stash", + "apply", + "--index", + info->stashcommit, + NULL)) + { + gitg_repository_commandv (repository, NULL, + "update-ref", "-m", "gitg autosave stash", + "refs/stash", info->stashcommit, NULL); + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to reapply stash correctly"), + _("There might be unresolved conflicts in the working tree or index which you need to resolve manually"), + NULL); + } + } + + gitg_repository_reload (gitg_window_get_repository (window)); + } + + cherry_pick_info_free (info); +} + +GitgRunner * +gitg_branch_actions_cherry_pick (GitgWindow *window, + GitgRevision *revision, + GitgRef *dest) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (revision != NULL, NULL); + g_return_val_if_fail (dest != NULL, NULL); + + gchar *message = g_strdup_printf (_("Are you sure you want to cherry-pick that revision on <%s>?"), + gitg_ref_get_shortname (dest)); + + if (message_dialog (window, + GTK_MESSAGE_QUESTION, + _("Cherry-pick"), + message, + _("Cherry-pick")) != GTK_RESPONSE_ACCEPT) + { + g_free (message); + return NULL; + } + + gchar *stashcommit; + + if (!stash_changes (window, &stashcommit, FALSE)) + { + return NULL; + } + + GitgRepository *repository = gitg_window_get_repository (window); + GitgRef *head = gitg_repository_get_current_working_ref (repository); + + // First checkout the correct branch on which to cherry-pick + if (!gitg_repository_commandv (repository, + NULL, + "checkout", + gitg_ref_get_shortname (dest), + NULL)) + { + g_free (stashcommit); + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to checkout local branch <%s>"), + _("The branch on which to cherry-pick could not be checked out"), + NULL, + gitg_ref_get_shortname (dest)); + + return NULL; + } + + message = g_strdup_printf (_("Cherry-picking on <%s>"), + gitg_ref_get_shortname (dest)); + + GitgRunner *ret; + + CherryPickInfo *info = cherry_pick_info_new (revision, dest); + + info->stashcommit = stashcommit; + info->head = gitg_ref_copy (head); + + gchar *sha1 = gitg_revision_get_sha1 (revision); + + ret = run_progress (window, + _("Cherry-pick"), + message, + on_cherry_pick_result, + info, + "cherry-pick", + sha1, + NULL); + + g_free (message); + g_free (sha1); + + return ret; +} + +typedef struct +{ + GitgRevision *revision; + gchar *destination; + GOutputStream *stream; +} FormatPatchInfo; + +static FormatPatchInfo * +format_patch_info_new (GitgRevision *revision, gchar const *destination, GOutputStream *stream) +{ + FormatPatchInfo *ret = g_slice_new0 (FormatPatchInfo); + + ret->revision = gitg_revision_ref (revision); + ret->destination = g_strdup (destination); + ret->stream = stream; + + return ret; +} + +static void +format_patch_info_free (FormatPatchInfo *info) +{ + gitg_revision_unref (info->revision); + g_free (info->destination); + + g_object_unref (info->stream); + + g_slice_free (FormatPatchInfo, info); +} + +static void +on_format_patch_result (GitgWindow *window, + GitgProgress progress, + gpointer data) +{ + FormatPatchInfo *info = (FormatPatchInfo *)data; + + if (progress == GITG_PROGRESS_ERROR) + { + gchar const *message; + + message_dialog (window, + GTK_MESSAGE_ERROR, + _("Failed to generate format-patch"), + NULL, + NULL, + NULL); + } + + format_patch_info_free (info); +} + +static void +on_format_patch_update (GitgRunner *runner, + gchar **lines, + FormatPatchInfo *info) +{ + while (lines && *lines) + { + g_output_stream_write_all (info->stream, *lines, strlen (*lines), NULL, NULL, NULL); + g_output_stream_write_all (info->stream, "\n", 1, NULL, NULL, NULL); + ++lines; + } +} + +GitgRunner * +gitg_branch_actions_format_patch (GitgWindow *window, + GitgRevision *revision, + gchar const *destination) +{ + g_return_val_if_fail (GITG_IS_WINDOW (window), NULL); + g_return_val_if_fail (revision != NULL, NULL); + g_return_val_if_fail (destination != NULL, NULL); + + GitgRunner *ret; + GitgRepository *repository = gitg_window_get_repository (window); + + GFile *file = g_file_new_for_uri (destination); + GFileOutputStream *stream = g_file_create (file, 0, NULL, NULL); + g_object_unref (file); + + if (!stream) + { + return NULL; + } + + gchar *sha1 = gitg_revision_get_sha1 (revision); + gchar *message; + + message = g_strdup_printf (_("Generating format-patch for <%s>"), + gitg_revision_get_subject (revision)); + + FormatPatchInfo *info = format_patch_info_new (revision, destination, G_OUTPUT_STREAM (stream)); + + ret = run_progress (window, + _("Format patch"), + message, + on_format_patch_result, + info, + "format-patch", + "-1", + "--stdout", + sha1, + NULL); + + if (ret) + { + g_signal_connect (ret, "update", G_CALLBACK (on_format_patch_update), info); + } + + g_free (sha1); + g_free (message); + + return ret; +} diff -Nru gitg-0.0.3/gitg/gitg-branch-actions.h gitg-0.0.6/gitg/gitg-branch-actions.h --- gitg-0.0.3/gitg/gitg-branch-actions.h 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-branch-actions.h 2010-01-24 12:17:15.000000000 +0000 @@ -0,0 +1,52 @@ +/* + * gitg-branch-actions.h + * This file is part of gitg + * + * Copyright (C) 2009 - Jesse van den Kieboom + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifndef __GITG_BRANCH_ACTIONS_H__ +#define __GITG_BRANCH_ACTIONS_H__ + +#include "gitg-window.h" +#include "gitg-ref.h" + +G_BEGIN_DECLS + +GitgRunner *gitg_branch_actions_remove (GitgWindow *window, GitgRef *ref); +GitgRunner *gitg_branch_actions_rename (GitgWindow *window, GitgRef *ref); +gboolean gitg_branch_actions_checkout (GitgWindow *window, GitgRef *ref); + +GitgRunner *gitg_branch_actions_merge (GitgWindow *window, GitgRef *source, GitgRef *dest); +GitgRunner *gitg_branch_actions_rebase (GitgWindow *window, GitgRef *source, GitgRef *dest); + +GitgRunner *gitg_branch_actions_push (GitgWindow *window, GitgRef *source, GitgRef *dest); +GitgRunner *gitg_branch_actions_push_remote (GitgWindow *window, GitgRef *source, gchar const *remote, gchar const *branch); + +gboolean gitg_branch_actions_apply_stash (GitgWindow *window, GitgRef *stash, GitgRef *branch); + +gboolean gitg_branch_actions_tag (GitgWindow *window, gchar const *sha1, gchar const *name, gchar const *message, gboolean sign); + +GitgRunner *gitg_branch_actions_cherry_pick (GitgWindow *window, GitgRevision *revision, GitgRef *dest); + +GitgRunner *gitg_branch_actions_format_patch (GitgWindow *window, GitgRevision *revision, gchar const *destination); + +G_END_DECLS + +#endif /* __GITG_BRANCH_ACTIONS_H__ */ + diff -Nru gitg-0.0.3/gitg/gitg.c gitg-0.0.6/gitg/gitg.c --- gitg-0.0.3/gitg/gitg.c 2009-03-01 07:57:43.000000000 +0000 +++ gitg-0.0.6/gitg/gitg.c 2010-01-24 12:17:16.000000000 +0000 @@ -30,17 +30,28 @@ #include "gitg-debug.h" #include "gitg-window.h" -#include "sexy-icon-entry.h" #include "config.h" #include "gitg-settings.h" #include "gitg-dirs.h" #include "gitg-utils.h" static gboolean commit_mode = FALSE; +static gchar *select_sha1 = NULL; + +static void +show_version_and_quit (void) +{ + g_print ("%s - Version %s\n", g_get_application_name (), VERSION); + + exit (0); +} static GOptionEntry entries[] = { - { "commit", 'c', 0, G_OPTION_ARG_NONE, &commit_mode, N_("Start gitg in commit mode") }, + { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, + show_version_and_quit, N_("Show the application's version"), NULL }, + { "commit", 'c', 0, G_OPTION_ARG_NONE, &commit_mode, N_("Start gitg in commit mode") }, + { "select", 's', 0, G_OPTION_ARG_STRING, &select_sha1, N_("Select commit after loading the repository") }, { NULL } }; @@ -49,26 +60,26 @@ { GError *error = NULL; GOptionContext *context; - + context = g_option_context_new(_("- git repository viewer")); - + // Ignore unknown options so we can pass them to git g_option_context_set_ignore_unknown_options(context, TRUE); g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE); g_option_context_add_group(context, gtk_get_option_group (TRUE)); - + if (!g_option_context_parse(context, argc, argv, &error)) { g_print("option parsing failed: %s\n", error->message); g_error_free(error); exit(1); } - + g_option_context_free(context); } static gboolean -on_window_delete_event(GtkWidget *widget, GdkEvent *event, gpointer userdata) +on_window_delete_event(GtkWidget *widget, gpointer userdata) { gtk_main_quit(); return FALSE; @@ -77,12 +88,12 @@ static GitgWindow * build_ui() { - GtkBuilder *builder = gitg_utils_new_builder("gitg-ui.xml"); - + GtkBuilder *builder = gitg_utils_new_builder("gitg-window.ui"); + GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder, "window")); gtk_widget_show_all(window); - g_signal_connect(window, "delete-event", G_CALLBACK(on_window_delete_event), NULL); + g_signal_connect_after(window, "destroy", G_CALLBACK(on_window_delete_event), NULL); g_object_unref(builder); return GITG_WINDOW(window); @@ -95,18 +106,18 @@ gchar const * const *orig = gtk_source_language_manager_get_search_path(manager); gchar const **dirs = g_new0(gchar const *, g_strv_length((gchar **)orig) + 2); guint i = 0; - + while (orig[i]) { dirs[i + 1] = orig[i]; ++i; } - + gchar *path = gitg_dirs_get_data_filename("language-specs", NULL); dirs[0] = path; gtk_source_language_manager_set_search_path(manager, (gchar **)dirs); g_free(path); - + g_free(dirs); } @@ -114,7 +125,7 @@ set_style_scheme_search_path() { GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_manager_get_default(); - + gchar *path = gitg_dirs_get_data_filename("styles", NULL); gtk_source_style_scheme_manager_prepend_search_path(manager, path); g_free(path); @@ -125,6 +136,7 @@ { static gchar const *icon_infos[] = { "gitg16x16.png", + "gitg22x22.png", "gitg24x24.png", "gitg32x32.png", "gitg48x48.png", @@ -132,10 +144,10 @@ "gitg128x128.png", NULL }; - + int i; GList *icons = NULL; - + for (i = 0; icon_infos[i]; ++i) { gchar *filename = gitg_dirs_get_data_filename("icons", icon_infos[i], NULL); @@ -145,7 +157,7 @@ if (pixbuf) icons = g_list_prepend(icons, pixbuf); } - + gtk_window_set_default_icon_list(icons); g_list_foreach(icons, (GFunc)g_object_unref, NULL); @@ -156,37 +168,38 @@ main(int argc, char **argv) { g_thread_init(NULL); - + gitg_debug_init(); bindtextdomain(GETTEXT_PACKAGE, GITG_LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); - + g_set_prgname("gitg"); - + /* Translators: this is the application name as in g_set_application_name */ g_set_application_name(_("gitg")); gitg_dirs_initialize(argc, argv); gtk_init(&argc, &argv); parse_options(&argc, &argv); - + set_language_search_path(); set_style_scheme_search_path(); set_icons(); GitgSettings *settings = gitg_settings_get_default(); - + GitgWindow *window = build_ui(); - gitg_window_load_repository(window, argc > 1 ? argv[1] : NULL, argc - 2, (gchar const **)&argv[2]); - + + gitg_window_load_repository(window, argc > 1 ? argv[1] : NULL, argc - 2, argc > 1 ? (gchar const **)&argv[2] : NULL, select_sha1); + if (commit_mode) gitg_window_show_commit(window); - + gtk_main(); /* Finalize settings */ - g_object_unref(settings); + g_object_unref(settings); return 0; } diff -Nru gitg-0.0.3/gitg/gitg-cell-renderer-path.c gitg-0.0.6/gitg/gitg-cell-renderer-path.c --- gitg-0.0.3/gitg/gitg-cell-renderer-path.c 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-cell-renderer-path.c 2010-01-24 12:17:15.000000000 +0000 @@ -37,7 +37,7 @@ enum { PROP_0, - + PROP_REVISION, PROP_NEXT_REVISION, PROP_LANE_WIDTH, @@ -54,6 +54,8 @@ guint lane_width; guint triangle_width; guint dot_width; + + gint last_height; }; static GtkCellRendererTextClass *parent_class = NULL; @@ -85,12 +87,12 @@ { PangoFontDescription *font; g_object_get(self, "font-desc", &font, NULL); - + gint offset = 0; - + if (is_dummy(self->priv->revision)) offset = self->priv->lane_width; - + return num_lanes(self) * self->priv->lane_width + gitg_label_renderer_width(widget, font, self->priv->labels) + offset; @@ -100,10 +102,10 @@ gitg_cell_renderer_path_finalize(GObject *object) { GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(object); - + gitg_revision_unref(self->priv->revision); gitg_revision_unref(self->priv->next_revision); - + g_slist_free(self->priv->labels); G_OBJECT_CLASS(gitg_cell_renderer_path_parent_class)->finalize(object); @@ -116,13 +118,13 @@ if (xoffset) *xoffset = 0; - + if (yoffset) *yoffset = 0; - + if (width) *width = total_width(self, widget); - + if (height) *height = area ? area->height : 1; } @@ -135,16 +137,16 @@ gdouble df = (top ? -1 : 1) * 0.25 * area->height; gdouble ypos = area->y + area->height / 2.0 + df; gdouble q = cw / 4.0; - + cairo_move_to(cr, xpos - q, ypos + (top ? q : -q)); cairo_line_to(cr, xpos, ypos); cairo_line_to(cr, xpos + q, ypos + (top ? q : -q)); cairo_stroke(cr); - + cairo_move_to(cr, xpos, ypos); cairo_line_to(cr, xpos, ypos - df); cairo_stroke(cr); - + //cairo_move_to(cr, xpos, ypos); //cairo_line_to(cr, xpos, ypos + (top ? 1 : -1) * area->height / 2.0); //cairo_stroke(cr); @@ -161,23 +163,23 @@ gdouble cw = self->priv->lane_width; gdouble ch = area->height / 2.0; GitgLane *lane; - + while (lanes) { GSList *item; lane = (GitgLane *)(lanes->data); gitg_color_set_cairo_source(lane->color, cr); - + for (item = lane->from; item; item = item->next) { gint8 from = (gint8)GPOINTER_TO_INT(item->data); - + cairo_move_to(cr, area->x + from * cw + cw / 2.0, area->y + yoffset * ch); cairo_curve_to(cr, area->x + from * cw + cw / 2.0, area->y + (yoffset + 1) * ch, area->x + to * cw + cw / 2.0, area->y + (yoffset + 1) * ch, area->x + to * cw + cw / 2.0, area->y + (yoffset + 2) * ch); - + cairo_stroke(cr); } @@ -203,17 +205,17 @@ { GSList *item; gint8 to = 0; - + for (item = gitg_revision_get_lanes(self->priv->revision); item; item = item->next) { GitgLane *lane = (GitgLane *)item->data; gitg_color_set_cairo_source(lane->color, cr); - + if (lane->type & GITG_LANE_TYPE_START) draw_arrow(self, cr, area, to, TRUE); else if (lane->type & GITG_LANE_TYPE_END) draw_arrow(self, cr, area, to, FALSE); - + ++to; } } @@ -235,12 +237,12 @@ { gint offset = num_lanes(self) * self->priv->lane_width; PangoFontDescription *font; - + if (is_dummy(self->priv->revision)) offset += self->priv->lane_width; - + g_object_get(self, "font-desc", &font, NULL); - + cairo_translate(context, offset, 0.0); gitg_label_renderer_draw(widget, font, context, self->priv->labels, area); } @@ -252,7 +254,7 @@ gdouble radius = self->priv->triangle_width / 2.0; gdouble xs; int xd; - + if (lane->type & GITG_LANE_SIGN_LEFT) { xs = radius; @@ -263,13 +265,13 @@ xs = -radius; xd = 1; } - + cairo_set_line_width(context, 2.0); cairo_move_to(context, area->x + offset + radius + xs, area->y + (area->height - self->priv->triangle_width) / 2); cairo_rel_line_to(context, 0, self->priv->triangle_width); cairo_rel_line_to(context, xd * self->priv->triangle_width, -self->priv->triangle_width / 2); cairo_close_path(context); - + cairo_set_source_rgb(context, 0, 0, 0); cairo_stroke_preserve(context); @@ -282,14 +284,14 @@ { gdouble offset = gitg_revision_get_mylane(self->priv->revision) * self->priv->lane_width + (self->priv->lane_width - self->priv->dot_width) / 2.0; gdouble radius = self->priv->dot_width / 2.0; - + if (is_dummy(self->priv->revision)) offset += self->priv->lane_width; cairo_set_line_width(context, 2.0); cairo_arc(context, area->x + offset + radius, area->y + area->height / 2.0, radius, 0, 2 * M_PI); cairo_set_source_rgb(context, 0, 0, 0); - + if (is_dummy(self->priv->revision)) { cairo_stroke(context); @@ -298,7 +300,7 @@ { cairo_stroke_preserve(context); gitg_color_set_cairo_source(lane->color, context); - + cairo_fill(context); } } @@ -307,7 +309,7 @@ draw_indicator(GitgCellRendererPath *self, cairo_t *context, GdkRectangle *area) { GitgLane *lane = gitg_revision_get_lane(self->priv->revision); - + if (lane->type & GITG_LANE_SIGN_LEFT || lane->type & GITG_LANE_SIGN_RIGHT) draw_indicator_triangle(self, lane, context, area); else @@ -319,20 +321,22 @@ { GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(renderer); + self->priv->last_height = area->height; + cairo_t *cr = gdk_cairo_create(window); - + cairo_rectangle(cr, area->x, area->y, area->width, area->height); cairo_clip(cr); - + draw_paths(self, cr, area); - + /* draw indicator */ draw_indicator(self, cr, area); - + /* draw labels */ draw_labels(self, widget, cr, area); cairo_destroy(cr); - + area->x += total_width(self, widget); cell_area->x += total_width(self, widget); @@ -375,7 +379,7 @@ gitg_cell_renderer_path_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(object); - + switch (prop_id) { case PROP_REVISION: @@ -410,11 +414,11 @@ { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkCellRendererClass *renderer_class = GTK_CELL_RENDERER_CLASS(klass); - + object_class->finalize = gitg_cell_renderer_path_finalize; object_class->get_property = gitg_cell_renderer_path_get_property; object_class->set_property = gitg_cell_renderer_path_set_property; - + renderer_class->get_size = renderer_get_size; renderer_class->render = renderer_render; @@ -432,7 +436,7 @@ "NEXT_REVISION", "The next revision", GITG_TYPE_REVISION, - G_PARAM_READWRITE)); + G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_LANE_WIDTH, g_param_spec_uint("lane-width", @@ -474,7 +478,7 @@ gitg_cell_renderer_path_init(GitgCellRendererPath *self) { self->priv = GITG_CELL_RENDERER_PATH_GET_PRIVATE(self); - + self->priv->lane_width = DEFAULT_LANE_WIDTH; self->priv->dot_width = DEFAULT_DOT_WIDTH; self->priv->triangle_width = DEFAULT_TRIANGLE_WIDTH; @@ -485,3 +489,34 @@ { return GTK_CELL_RENDERER(g_object_new(GITG_TYPE_CELL_RENDERER_PATH, NULL)); } + +GitgRef * +gitg_cell_renderer_path_get_ref_at_pos (GtkWidget *widget, GitgCellRendererPath *renderer, gint x, gint *hot_x) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); + g_return_val_if_fail (GITG_IS_CELL_RENDERER_PATH (renderer), NULL); + + PangoFontDescription *font; + g_object_get (renderer, "font-desc", &font, NULL); + + gint offset = 0; + + if (is_dummy(renderer->priv->revision)) + offset = renderer->priv->lane_width; + + x -= num_lanes(renderer) * renderer->priv->lane_width + offset; + + return gitg_label_renderer_get_ref_at_pos (widget, font, renderer->priv->labels, x, hot_x); +} + +GdkPixbuf * +gitg_cell_renderer_path_render_ref (GtkWidget *widget, GitgCellRendererPath *renderer, GitgRef *ref, gint minwidth) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); + g_return_val_if_fail (GITG_IS_CELL_RENDERER_PATH (renderer), NULL); + + PangoFontDescription *font; + g_object_get(renderer, "font-desc", &font, NULL); + + return gitg_label_renderer_render_ref (widget, font, ref, renderer->priv->last_height, minwidth); +} diff -Nru gitg-0.0.3/gitg/gitg-cell-renderer-path.h gitg-0.0.6/gitg/gitg-cell-renderer-path.h --- gitg-0.0.3/gitg/gitg-cell-renderer-path.h 2009-02-08 14:33:08.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-cell-renderer-path.h 2010-01-24 12:17:15.000000000 +0000 @@ -24,6 +24,7 @@ #define __GITG_CELL_RENDERER_PATH_H__ #include +#include "gitg-ref.h" G_BEGIN_DECLS @@ -41,7 +42,7 @@ struct _GitgCellRendererPath { GtkCellRendererText parent; - + GitgCellRendererPathPrivate *priv; }; @@ -52,6 +53,9 @@ GType gitg_cell_renderer_path_get_type (void) G_GNUC_CONST; GtkCellRenderer *gitg_cell_renderer_path_new(void); +GitgRef *gitg_cell_renderer_path_get_ref_at_pos (GtkWidget *widget, GitgCellRendererPath *renderer, gint x, gint *hot_x); +GdkPixbuf *gitg_cell_renderer_path_render_ref (GtkWidget *widget, GitgCellRendererPath *renderer, GitgRef *ref, gint minwidth); + G_END_DECLS #endif /* __GITG_CELL_RENDERER_PATH_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-changed-file.c gitg-0.0.6/gitg/gitg-changed-file.c --- gitg-0.0.3/gitg/gitg-changed-file.c 2009-04-20 17:16:45.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-changed-file.c 2010-01-24 12:17:15.000000000 +0000 @@ -28,13 +28,13 @@ struct _GitgChangedFilePrivate { GFile *file; - + GitgChangedFileStatus status; GitgChangedFileChanges changes; - + gchar *sha; gchar *mode; - + GFileMonitor *monitor; }; @@ -70,7 +70,7 @@ g_free(self->priv->sha); g_free(self->priv->mode); g_object_unref(self->priv->file); - + if (self->priv->monitor) { g_file_monitor_cancel(self->priv->monitor); @@ -127,9 +127,9 @@ { gboolean ismodified = (file->priv->status == GITG_CHANGED_FILE_STATUS_MODIFIED); gboolean iscached = (file->priv->changes & GITG_CHANGED_FILE_CHANGES_CACHED); - + gboolean needmonitor = ismodified || iscached; - + if (needmonitor && !file->priv->monitor) { file->priv->monitor = g_file_monitor_file(file->priv->file, G_FILE_MONITOR_NONE, NULL, NULL); @@ -148,7 +148,7 @@ gitg_changed_file_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgChangedFile *self = GITG_CHANGED_FILE(object); - + switch (prop_id) { case PROP_FILE: @@ -175,18 +175,18 @@ gitg_changed_file_class_init(GitgChangedFileClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - + object_class->finalize = gitg_changed_file_finalize; object_class->set_property = gitg_changed_file_set_property; object_class->get_property = gitg_changed_file_get_property; - + g_object_class_install_property(object_class, PROP_FILE, g_param_spec_object("file", "FILE", "File", G_TYPE_OBJECT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - + g_object_class_install_property(object_class, PROP_STATUS, g_param_spec_enum("status", "STATUS", @@ -194,7 +194,7 @@ GITG_TYPE_CHANGED_FILE_STATUS, GITG_CHANGED_FILE_STATUS_NEW, G_PARAM_READWRITE)); - + g_object_class_install_property(object_class, PROP_CHANGES, g_param_spec_flags("changes", "CHANGES", @@ -246,7 +246,7 @@ gitg_changed_file_get_file(GitgChangedFile *file) { g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), NULL); - + return g_object_ref(file->priv->file); } @@ -254,7 +254,7 @@ gitg_changed_file_get_sha(GitgChangedFile *file) { g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), NULL); - + return file->priv->sha; } @@ -262,7 +262,7 @@ gitg_changed_file_get_mode(GitgChangedFile *file) { g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), NULL); - + return file->priv->mode; } @@ -270,7 +270,7 @@ gitg_changed_file_set_sha(GitgChangedFile *file, gchar const *sha) { g_return_if_fail(GITG_IS_CHANGED_FILE(file)); - + set_sha_real(file, sha); g_object_notify(G_OBJECT(file), "sha"); } @@ -279,7 +279,7 @@ gitg_changed_file_set_mode(GitgChangedFile *file, gchar const *mode) { g_return_if_fail(GITG_IS_CHANGED_FILE(file)); - + set_mode_real(file, mode); g_object_notify(G_OBJECT(file), "mode"); } @@ -287,14 +287,14 @@ GitgChangedFileStatus gitg_changed_file_get_status(GitgChangedFile *file) { g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), GITG_CHANGED_FILE_STATUS_NONE); - + return file->priv->status; } GitgChangedFileChanges gitg_changed_file_get_changes(GitgChangedFile *file) { g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), GITG_CHANGED_FILE_CHANGES_NONE); - + return file->priv->changes; } @@ -304,7 +304,7 @@ if (status == file->priv->status) return; - + g_object_set(file, "status", status, NULL); } @@ -312,10 +312,10 @@ gitg_changed_file_set_changes(GitgChangedFile *file, GitgChangedFileChanges changes) { g_return_if_fail(GITG_IS_CHANGED_FILE(file)); - + if (changes == file->priv->changes) return; - + g_object_set(file, "changes", changes, NULL); } @@ -323,7 +323,7 @@ gitg_changed_file_equal(GitgChangedFile *file, GFile *other) { g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), FALSE); - + return g_file_equal(file->priv->file, other); } diff -Nru gitg-0.0.3/gitg/gitg-changed-file.h gitg-0.0.6/gitg/gitg-changed-file.h --- gitg-0.0.3/gitg/gitg-changed-file.h 2009-02-23 12:05:37.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-changed-file.h 2010-01-24 12:17:15.000000000 +0000 @@ -45,7 +45,7 @@ GITG_CHANGED_FILE_STATUS_NONE = 0, GITG_CHANGED_FILE_STATUS_NEW, GITG_CHANGED_FILE_STATUS_MODIFIED, - GITG_CHANGED_FILE_STATUS_DELETED + GITG_CHANGED_FILE_STATUS_DELETED } GitgChangedFileStatus; typedef enum @@ -57,13 +57,13 @@ struct _GitgChangedFile { GObject parent; - + GitgChangedFilePrivate *priv; }; struct _GitgChangedFileClass { GObjectClass parent_class; - + void (*changed)(GitgChangedFile *file); }; diff -Nru gitg-0.0.3/gitg/gitg-color.c gitg-0.0.6/gitg/gitg-color.c --- gitg-0.0.3/gitg/gitg-color.c 2009-02-08 14:33:42.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-color.c 2010-01-24 12:17:15.000000000 +0000 @@ -55,7 +55,7 @@ { gchar const *spec = palette[color->index]; GdkColor c; - + gdk_color_parse(spec, &c); *r = c.red / 65535.0; @@ -76,7 +76,7 @@ next_index() { gint8 next = current_index++; - + if (current_index == sizeof(palette) / sizeof(gchar const *)) current_index = 0; @@ -106,7 +106,7 @@ GitgColor *copy = g_new(GitgColor, 1); copy->ref_count = 1; copy->index = color->index; - + return copy; } @@ -125,9 +125,9 @@ { if (!color) return NULL; - + --color->ref_count; - + if (color->ref_count == 0) { g_free(color); diff -Nru gitg-0.0.3/gitg/gitg-commit.c gitg-0.0.6/gitg/gitg-commit.c --- gitg-0.0.3/gitg/gitg-commit.c 2009-04-23 22:09:55.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-commit.c 2010-01-24 12:17:16.000000000 +0000 @@ -24,6 +24,7 @@ #include "gitg-runner.h" #include "gitg-utils.h" #include "gitg-changed-file.h" +#include "gitg-config.h" #include @@ -53,7 +54,7 @@ guint update_id; guint end_id; - + GHashTable *files; }; @@ -96,10 +97,10 @@ gitg_commit_finalize(GObject *object) { GitgCommit *commit = GITG_COMMIT(object); - + runner_cancel(commit); g_object_unref(commit->priv->runner); - + g_hash_table_destroy(commit->priv->files); G_OBJECT_CLASS(gitg_commit_parent_class)->finalize(object); @@ -109,7 +110,7 @@ gitg_commit_dispose(GObject *object) { GitgCommit *self = GITG_COMMIT(object); - + if (self->priv->repository) { g_signal_handlers_disconnect_by_func(self->priv->repository, G_CALLBACK(gitg_commit_refresh), self); @@ -139,7 +140,7 @@ gitg_commit_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgCommit *self = GITG_COMMIT(object); - + switch (prop_id) { case PROP_REPOSITORY: @@ -164,7 +165,7 @@ object_class->dispose = gitg_commit_dispose; object_class->finalize = gitg_commit_finalize; - + object_class->set_property = gitg_commit_set_property; object_class->get_property = gitg_commit_get_property; @@ -204,7 +205,7 @@ gitg_commit_init(GitgCommit *self) { self->priv = GITG_COMMIT_GET_PRIVATE(self); - + self->priv->runner = gitg_runner_new(10000); self->priv->files = g_hash_table_new_full(g_file_hash, (GEqualFunc)g_file_equal, (GDestroyNotify)g_object_unref, (GDestroyNotify)g_object_unref); } @@ -223,7 +224,7 @@ g_signal_handler_disconnect(commit->priv->runner, commit->priv->update_id); commit->priv->update_id = 0; } - + if (commit->priv->end_id) { g_signal_handler_disconnect(commit->priv->runner, commit->priv->end_id); @@ -232,7 +233,7 @@ if (updatefunc) commit->priv->update_id = g_signal_connect(commit->priv->runner, "update", updatefunc, commit); - + if (endfunc) commit->priv->end_id = g_signal_connect(commit->priv->runner, "end-loading", endfunc, commit); } @@ -241,14 +242,14 @@ update_changed_file_status(GitgChangedFile *file, char const *action, gchar const *mode) { GitgChangedFileStatus status; - + if (strcmp(action, "D") == 0) status = GITG_CHANGED_FILE_STATUS_DELETED; else if (strcmp(mode, "000000") == 0) status = GITG_CHANGED_FILE_STATUS_NEW; else status = GITG_CHANGED_FILE_STATUS_MODIFIED; - + gitg_changed_file_set_status(file, status); } @@ -256,58 +257,58 @@ add_files(GitgCommit *commit, gchar **buffer, gboolean cached) { gchar *line; - + while ((line = *buffer++) != NULL) { gchar **parts = g_strsplit_set(line, " \t", 0); guint len = g_strv_length(parts); - + if (len < 6) { g_warning("Invalid line: %s (%d)", line, len); g_strfreev(parts); continue; } - + gchar const *mode = parts[0] + 1; gchar const *sha = parts[2]; - + gchar *path = g_build_filename(gitg_repository_get_path(commit->priv->repository), parts[5], NULL); - + GFile *file = g_file_new_for_path(path); g_free(path); GitgChangedFile *f = GITG_CHANGED_FILE(g_hash_table_lookup(commit->priv->files, file)); - + if (f) { GitgChangedFileChanges changes = gitg_changed_file_get_changes(f); g_object_set_data(G_OBJECT(f), CAN_DELETE_KEY, NULL); update_changed_file_status(f, parts[4], mode); - + if (cached) { gitg_changed_file_set_sha(f, sha); gitg_changed_file_set_mode(f, mode); - + changes |= GITG_CHANGED_FILE_CHANGES_CACHED; } else { changes |= GITG_CHANGED_FILE_CHANGES_UNSTAGED; } - + gitg_changed_file_set_changes(f, changes); - + if ((changes & GITG_CHANGED_FILE_CHANGES_CACHED) && (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED)) gitg_changed_file_set_status(f, GITG_CHANGED_FILE_STATUS_MODIFIED); - + g_object_unref(file); g_strfreev(parts); continue; } - + f = gitg_changed_file_new(file); update_changed_file_status(f, parts[4], mode); @@ -315,12 +316,12 @@ gitg_changed_file_set_mode(f, mode); GitgChangedFileChanges changes; - + changes = cached ? GITG_CHANGED_FILE_CHANGES_CACHED : GITG_CHANGED_FILE_CHANGES_UNSTAGED; gitg_changed_file_set_changes(f, changes); - + g_hash_table_insert(commit->priv->files, file, f); - + g_signal_connect(f, "changed", G_CALLBACK(on_changed_file_changed), commit); g_signal_emit(commit, commit_signals[INSERTED], 0, f); @@ -339,7 +340,7 @@ { if (!g_object_get_data(G_OBJECT(value), CAN_DELETE_KEY)) return FALSE; - + g_signal_emit(commit, commit_signals[REMOVED], 0, value); return TRUE; } @@ -356,7 +357,7 @@ gchar *head = gitg_repository_parse_head(commit->priv->repository); gitg_runner_cancel(runner); - runner_connect(commit, G_CALLBACK(read_cached_files_update), G_CALLBACK(refresh_done)); + runner_connect(commit, G_CALLBACK(read_cached_files_update), G_CALLBACK(refresh_done)); gitg_repository_run_commandv(commit->priv->repository, commit->priv->runner, NULL, "diff-index", "--cached", head, NULL); g_free(head); } @@ -371,7 +372,7 @@ read_other_files_end(GitgRunner *runner, gboolean cancelled, GitgCommit *commit) { gitg_runner_cancel(runner); - + runner_connect(commit, G_CALLBACK(read_unstaged_files_update), G_CALLBACK(read_unstaged_files_end)); gitg_repository_run_commandv(commit->priv->repository,commit->priv->runner, NULL, "diff-files", NULL); } @@ -381,7 +382,7 @@ { gitg_changed_file_set_status(f, GITG_CHANGED_FILE_STATUS_NEW); gitg_changed_file_set_changes(f, GITG_CHANGED_FILE_CHANGES_UNSTAGED); - + g_object_set_data(G_OBJECT(f), CAN_DELETE_KEY, NULL); } @@ -395,26 +396,26 @@ /* Skip empty lines */ if (!*line) continue; - + /* Check if file is already in our index */ gchar *path = g_build_filename(gitg_repository_get_path(commit->priv->repository), line, NULL); - + GFile *file = g_file_new_for_path(path); g_free(path); GitgChangedFile *f = g_hash_table_lookup(commit->priv->files, file); - + if (f) { changed_file_new(f); g_object_unref(file); continue; } - + f = gitg_changed_file_new(file); - changed_file_new(f); + changed_file_new(f); g_hash_table_insert(commit->priv->files, file, f); - + g_signal_emit(commit, commit_signals[INSERTED], 0, f); } } @@ -424,7 +425,7 @@ { gitg_runner_cancel(runner); runner_connect(commit, G_CALLBACK(read_other_files_update), G_CALLBACK(read_other_files_end)); - + gitg_repository_run_commandv(commit->priv->repository, commit->priv->runner, NULL, "ls-files", "--others", "--exclude-standard", NULL); } @@ -448,7 +449,7 @@ g_return_if_fail(GITG_IS_COMMIT(commit)); runner_cancel(commit); - + g_hash_table_foreach(commit->priv->files, (GHFunc)set_can_delete, commit); /* Read other files */ @@ -466,22 +467,22 @@ gchar *head = gitg_repository_parse_head(commit->priv->repository); gchar **ret = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "diff-index", "--cached", head, "--", path, NULL); - + g_free(path); g_free(head); g_object_unref(f); - + if (!ret) return; - + gchar **parts = *ret ? g_strsplit_set(*ret, " \t", 0) : NULL; g_strfreev(ret); - + if (parts && g_strv_length(parts) > 2) { gitg_changed_file_set_mode(file, parts[0] + 1); gitg_changed_file_set_sha(file, parts[2]); - + gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) | GITG_CHANGED_FILE_CHANGES_CACHED); update_changed_file_status(file, parts[4], parts[0] + 1); } @@ -489,7 +490,7 @@ { gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) & ~GITG_CHANGED_FILE_CHANGES_CACHED); } - + if (parts) g_strfreev(parts); } @@ -502,7 +503,7 @@ gchar **ret = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "diff-files", "--", path, NULL); g_free(path); g_object_unref(f); - + if (ret && *ret) { gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) | GITG_CHANGED_FILE_CHANGES_UNSTAGED); @@ -511,7 +512,7 @@ { gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) & ~GITG_CHANGED_FILE_CHANGES_UNSTAGED); } - + if (ret) g_strfreev(ret); } @@ -525,7 +526,7 @@ g_object_unref(f); gitg_repository_commandv(commit->priv->repository, NULL, "update-index", "-q", "--unmerged", "--ignore-missing", "--refresh", NULL); - + g_free(path); } @@ -538,7 +539,7 @@ /* Determine if it still has staged/unstaged changes */ update_index_staged(commit, file); update_index_unstaged(commit, file); - + GitgChangedFileChanges changes = gitg_changed_file_get_changes(file); GitgChangedFileStatus status = gitg_changed_file_get_status(file); @@ -546,7 +547,7 @@ gitg_changed_file_set_status(file, GITG_CHANGED_FILE_STATUS_NEW); else if ((changes & GITG_CHANGED_FILE_CHANGES_CACHED) && (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED)) gitg_changed_file_set_status(file, GITG_CHANGED_FILE_STATUS_MODIFIED); - + if (status == GITG_CHANGED_FILE_STATUS_NEW && !(changes & GITG_CHANGED_FILE_CHANGES_CACHED)) { @@ -559,14 +560,14 @@ { g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE); g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), FALSE); - + g_return_val_if_fail(hunk != NULL, FALSE); - + gboolean ret = gitg_repository_command_with_inputv(commit->priv->repository, hunk, error, "apply", "--cached", reverse ? "--reverse" : NULL, NULL); - + if (ret) refresh_changes(commit, file); - + return ret; } @@ -575,15 +576,15 @@ { if (hunk) return apply_hunk(commit, file, hunk, FALSE, error); - + /* Otherwise, stage whole file */ GFile *f = gitg_changed_file_get_file(file); gchar *path = gitg_repository_relative(commit->priv->repository, f); g_object_unref(f); - + gboolean ret = gitg_repository_commandv(commit->priv->repository, NULL, "update-index", "--add", "--remove", "--", path, NULL); g_free(path); - + if (ret) refresh_changes(commit, file); else @@ -597,7 +598,7 @@ { if (hunk) return apply_hunk(commit, file, hunk, TRUE, error); - + /* Otherwise, unstage whole file */ GFile *f = gitg_changed_file_get_file(file); gchar *path = gitg_repository_relative(commit->priv->repository, f); @@ -606,12 +607,12 @@ gchar *input = g_strdup_printf("%s %s\t%s\n", gitg_changed_file_get_mode(file), gitg_changed_file_get_sha(file), path); gboolean ret = gitg_repository_command_with_inputv(commit->priv->repository, input, error, "update-index", "--index-info", NULL); g_free(input); - + if (ret) refresh_changes(commit, file); else g_error("Update index for unstage failed"); - + return ret; } @@ -620,7 +621,7 @@ { if (*result) return; - + *result = (gitg_changed_file_get_changes(value) & GITG_CHANGED_FILE_CHANGES_CACHED); } @@ -629,7 +630,7 @@ { g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE); gboolean result = FALSE; - + g_hash_table_foreach(commit->priv->files, (GHFunc)find_staged, &result); return result; } @@ -639,7 +640,7 @@ { gchar *ptr; gchar *subject; - + if ((ptr = g_utf8_strchr(comment, g_utf8_strlen(comment, -1), '\n')) != NULL) { subject = g_strndup(comment, ptr - comment); @@ -648,10 +649,10 @@ { subject = g_strdup(comment); } - + gchar *commit = g_strconcat("commit:", subject, NULL); g_free(subject); - + return commit; } @@ -660,16 +661,16 @@ { gchar const *argv[] = {"write-tree", NULL}; gchar **lines = gitg_repository_command_with_output(commit->priv->repository, argv, error); - + if (!lines || strlen(*lines) != HASH_SHA_SIZE) { g_strfreev(lines); return FALSE; } - + *tree = g_strdup(*lines); g_strfreev(lines); - + return TRUE; } @@ -677,53 +678,155 @@ get_signed_off_line(GitgCommit *commit) { gchar **user = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "config", "--get", "user.name", NULL); - + if (!user) return NULL; - + if (!*user || !**user) { g_strfreev(user); return NULL; } - + gchar **email = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "config", "--get", "user.email", NULL); - + if (!email) { g_strfreev(user); return NULL; } - + if (!*email || !**email) { g_strfreev(user); g_strfreev(email); - + return NULL; } - + gchar *ret = g_strdup_printf("Signed-off-by: %s <%s>", *user, *email); g_strfreev(user); g_strfreev(email); - + + return ret; +} + +static void +on_commit_tree_update (GitgRunner *runner, gchar **lines, GString *buffer) +{ + while (lines && *lines) + { + if (buffer->len != 0) + { + g_string_append_c (buffer, '\n'); + } + + g_string_append (buffer, *lines); + ++lines; + } +} + +static void +set_amend_environment (GitgCommit *commit, GitgRunner *runner) +{ + gchar **out; + + out = gitg_repository_command_with_outputv (commit->priv->repository, + NULL, + "cat-file", + "commit", + "HEAD", + NULL); + + // Parse author + GRegex *r = g_regex_new ("^author (.*) <([^>]*)> ([0-9]+.*)$", + G_REGEX_CASELESS, + 0, + NULL); + + GMatchInfo *info = NULL; + gchar **ptr = out; + + while (ptr && *ptr) + { + if (g_regex_match (r, *ptr, 0, &info)) + { + gchar *name = g_match_info_fetch (info, 1); + gchar *email = g_match_info_fetch (info, 2); + gchar *date = g_match_info_fetch (info, 3); + + gitg_runner_add_environment (runner, "GIT_AUTHOR_NAME", name); + gitg_runner_add_environment (runner, "GIT_AUTHOR_EMAIL", email); + gitg_runner_add_environment (runner, "GIT_AUTHOR_DATE", date); + + g_free (name); + g_free (email); + g_free (date); + + break; + } + + ++ptr; + } + + g_strfreev (out); +} + +static gchar * +convert_commit_encoding (GitgCommit *commit, gchar const *s) +{ + GitgConfig *config; + gchar *encoding; + gchar *ret; + + config = gitg_config_new (commit->priv->repository); + encoding = gitg_config_get_value (config, "i18n.commitencoding"); + + if (!encoding || !*encoding) + { + g_object_unref (config); + g_free (encoding); + + config = gitg_config_new (NULL); + + encoding = gitg_config_get_value (config, "i18n.commitencoding"); + } + + g_object_unref (config); + + if (!encoding || !*encoding || g_ascii_strcasecmp (encoding, "UTF-8") == 0) + { + g_free (encoding); + return g_strdup (s); + } + + // Try to convert from UTF-8 to 'encoding' + ret = g_convert (s, -1, encoding, "UTF-8", NULL, NULL, NULL); + + if (!ret) + { + // Just use 's' then, even if it is UTF-8... + ret = g_strdup (s); + } + + g_free (encoding); return ret; } static gboolean -commit_tree(GitgCommit *commit, gchar const *tree, gchar const *comment, gboolean signoff, gchar **ref, GError **error) +commit_tree(GitgCommit *commit, gchar const *tree, gchar const *comment, gboolean signoff, gboolean amend, gchar **ref, GError **error) { gchar *fullcomment; - + if (signoff) { gchar *line = get_signed_off_line(commit); - + if (!line) { if (error) g_set_error(error, GITG_COMMIT_ERROR, GITG_COMMIT_ERROR_SIGNOFF, "Could not retrieve user name or email for signoff message"); - + return FALSE; } @@ -733,55 +836,97 @@ { fullcomment = g_strdup(comment); } - - gchar *head = gitg_repository_parse_ref(commit->priv->repository, "HEAD"); - gchar **lines = gitg_repository_command_with_input_and_outputv(commit->priv->repository, fullcomment, error, "commit-tree", tree, head ? "-p" : NULL, head, NULL); + gchar *head; + + if (amend) + { + head = gitg_repository_parse_ref(commit->priv->repository, "HEAD^"); + } + else + { + head = gitg_repository_parse_ref(commit->priv->repository, "HEAD"); + } + + GitgRunner *runner = gitg_runner_new_synchronized (1000); + GString *buffer = g_string_new (""); + + if (amend) + { + set_amend_environment (commit, runner); + } + + gchar *converted = convert_commit_encoding (commit, fullcomment); + + g_signal_connect (runner, "update", G_CALLBACK (on_commit_tree_update), buffer); + gitg_repository_run_command_with_inputv (commit->priv->repository, + runner, + converted, + error, + "commit-tree", + tree, + head ? "-p" : NULL, + head, + NULL); g_free(head); g_free(fullcomment); + g_free(converted); + g_object_unref (runner); - if (!lines || strlen(*lines) != HASH_SHA_SIZE) + if (buffer->len != HASH_SHA_SIZE) { - g_strfreev(lines); + g_string_free(buffer, TRUE); return FALSE; } - - *ref = g_strdup(*lines); - g_strfreev(lines); + + *ref = g_string_free (buffer, FALSE); return TRUE; } static gboolean update_ref(GitgCommit *commit, gchar const *ref, gchar const *subject, GError **error) { - gchar const *argv[] = {"update-ref", "-m", subject, "HEAD", ref, NULL}; - return gitg_repository_command(commit->priv->repository, argv, error); + gchar *converted = convert_commit_encoding (commit, subject); + gchar const *argv[] = {"update-ref", "-m", converted, "HEAD", ref, NULL}; + + gboolean ret = gitg_repository_command(commit->priv->repository, argv, error); + g_free (converted); + + return ret; } gboolean -gitg_commit_commit(GitgCommit *commit, gchar const *comment, gboolean signoff, GError **error) +gitg_commit_commit(GitgCommit *commit, gchar const *comment, gboolean signoff, gboolean amend, GError **error) { g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE); - + gchar *tree; + if (!write_tree(commit, &tree, error)) return FALSE; - + + gchar *path = g_build_filename (gitg_repository_get_path (commit->priv->repository), + ".git", + "COMMIT_EDITMSG", + NULL); + g_file_set_contents (path, comment, -1, NULL);\ + g_free (path); + gchar *ref; - gboolean ret = commit_tree(commit, tree, comment, signoff, &ref, error); + gboolean ret = commit_tree(commit, tree, comment, signoff, amend, &ref, error); g_free(tree); - + if (!ret) return FALSE; gchar *subject = comment_parse_subject(comment); ret = update_ref(commit, ref, subject, error); g_free(subject); - + if (!ret) return FALSE; - + gitg_repository_reload(commit->priv->repository); return TRUE; } @@ -801,16 +946,16 @@ gitg_commit_revert(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk, GError **error) { gboolean ret; - + if (!hunk) { GFile *f = gitg_changed_file_get_file(file); gchar *path = gitg_repository_relative(commit->priv->repository, f); - + ret = gitg_repository_command_with_inputv(commit->priv->repository, path, error, "checkout-index", "--index", "--quiet", "--force", "--stdin", NULL); - + g_free(path); - + update_index_file(commit, file); update_index_unstaged(commit, file); g_object_unref(f); @@ -819,15 +964,15 @@ { GitgRunner *runner = gitg_runner_new_synchronized(1000); gchar const *argv[] = {"patch", "-p1", "-R", NULL}; - + ret = gitg_runner_run_with_arguments(runner, argv, gitg_repository_get_path(commit->priv->repository), hunk, NULL); - + update_index_file(commit, file); update_index_unstaged(commit, file); - + g_object_unref(runner); } - + return ret; } @@ -836,16 +981,16 @@ { g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE); g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), FALSE); - + GFile *f = gitg_changed_file_get_file(file); gchar *path = gitg_repository_relative(commit->priv->repository, f); - + gchar *ignore = g_strdup_printf("%s/.gitignore", gitg_repository_get_path(commit->priv->repository)); GFile *ig = g_file_new_for_path(ignore); - + GFileOutputStream *stream = g_file_append_to(ig, G_FILE_CREATE_NONE, NULL, error); gboolean ret = FALSE; - + if (stream) { gchar *line = g_strdup_printf("/%s\n", path); @@ -855,11 +1000,11 @@ g_object_unref(stream); g_free(line); } - + if (ret) remove_file(commit, file); - g_object_unref(f); + g_object_unref(f); g_free(ignore); g_free(path); @@ -877,9 +1022,9 @@ { g_return_val_if_fail(GITG_IS_COMMIT(commit), NULL); g_return_val_if_fail(G_IS_FILE(file), NULL); - + GitgChangedFile *f = g_hash_table_lookup(commit->priv->files, file); - + if (f != NULL) { return g_object_ref(f); @@ -889,3 +1034,57 @@ return NULL; } } + +gchar * +gitg_commit_amend_message (GitgCommit *commit) +{ + g_return_val_if_fail (GITG_IS_COMMIT (commit), NULL); + + gchar **out; + + out = gitg_repository_command_with_outputv (commit->priv->repository, + NULL, + "cat-file", + "commit", + "HEAD", + NULL); + + gchar *ret = NULL; + + if (out) + { + gchar **ptr = out; + + while (*ptr) + { + if (!**ptr) + { + ++ptr; + break; + } + + ++ptr; + } + + if (*ptr && **ptr) + { + GString *buffer = g_string_new (""); + + while (*ptr) + { + if (buffer->len != 0) + { + g_string_append_c (buffer, '\n'); + } + + g_string_append (buffer, *ptr); + ++ptr; + } + + ret = g_string_free (buffer, FALSE); + } + } + + g_strfreev (out); + return ret; +} diff -Nru gitg-0.0.3/gitg/gitg-commit.h gitg-0.0.6/gitg/gitg-commit.h --- gitg-0.0.3/gitg/gitg-commit.h 2009-04-22 21:16:55.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-commit.h 2010-01-24 12:17:16.000000000 +0000 @@ -51,13 +51,13 @@ struct _GitgCommit { GObject parent; - + GitgCommitPrivate *priv; }; struct _GitgCommitClass { GObjectClass parent_class; - + void (*inserted) (GitgCommit *commit, GitgChangedFile *file); void (*removed) (GitgCommit *commit, GitgChangedFile *file); }; @@ -72,13 +72,15 @@ gboolean gitg_commit_unstage(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk, GError **error); gboolean gitg_commit_has_changes(GitgCommit *commit); -gboolean gitg_commit_commit(GitgCommit *commit, gchar const *comment, gboolean signoff, GError **error); +gboolean gitg_commit_commit(GitgCommit *commit, gchar const *comment, gboolean signoff, gboolean amend, GError **error); gboolean gitg_commit_revert(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk, GError **error); gboolean gitg_commit_add_ignore(GitgCommit *commit, GitgChangedFile *file, GError **error); GitgChangedFile *gitg_commit_find_changed_file(GitgCommit *commit, GFile *file); +gchar *gitg_commit_amend_message (GitgCommit *commit); + G_END_DECLS #endif /* __GITG_COMMIT_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-commit-menu.ui gitg-0.0.6/gitg/gitg-commit-menu.ui --- gitg-0.0.3/gitg/gitg-commit-menu.ui 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-commit-menu.ui 2010-01-23 21:03:30.000000000 +0000 @@ -0,0 +1,41 @@ + + + + + + + + Stage + + + + + Unstage + + + + + Revert + + + + + Ignore + + + + + + + + + + + + + + + + + + diff -Nru gitg-0.0.3/gitg/gitg-commit-view.c gitg-0.0.6/gitg/gitg-commit-view.c --- gitg-0.0.3/gitg/gitg-commit-view.c 2009-04-23 22:09:55.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-commit-view.c 2010-02-21 09:16:23.000000000 +0000 @@ -30,6 +30,8 @@ #include "gitg-commit.h" #include "gitg-utils.h" #include "gitg-diff-view.h" +#include "gitg-preferences.h" +#include "gitg-data-binding.h" #define GITG_COMMIT_VIEW_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GITG_TYPE_COMMIT_VIEW, GitgCommitViewPrivate)) #define CATEGORY_UNSTAGE_HUNK "CategoryUnstageHunk" @@ -60,20 +62,21 @@ { GitgCommit *commit; GitgRepository *repository; - + GtkListStore *store_unstaged; GtkListStore *store_staged; - + GtkTreeView *tree_view_staged; GtkTreeView *tree_view_unstaged; - + GtkSourceView *changes_view; GtkTextView *comment_view; GtkCheckButton *check_button_signed_off_by; - + GtkCheckButton *check_button_amend; + GtkHScale *hscale_context; gint context_size; - + GitgRunner *runner; guint update_id; gboolean is_diff; @@ -81,17 +84,17 @@ GdkCursor *hand; GitgChangedFile *current_file; GitgChangedFileChanges current_changes; - + GtkUIManager *ui_manager; ContextType context_type; GtkTextIter context_iter; - + GtkActionGroup *group_context; }; static void gitg_commit_view_buildable_iface_init(GtkBuildableIface *iface); -G_DEFINE_TYPE_EXTENDED(GitgCommitView, gitg_commit_view, GTK_TYPE_HPANED, 0, +G_DEFINE_TYPE_EXTENDED(GitgCommitView, gitg_commit_view, GTK_TYPE_VPANED, 0, G_IMPLEMENT_INTERFACE(GTK_TYPE_BUILDABLE, gitg_commit_view_buildable_iface_init)); static GtkBuildableIface parent_iface; @@ -101,6 +104,7 @@ static void on_staged_button_press(GtkWidget *widget, GdkEventButton *event, GitgCommitView *view); static void on_unstaged_button_press(GtkWidget *widget, GdkEventButton *event, GitgCommitView *view); +static gboolean on_staged_unstaged_button_press_before (GtkWidget *widget, GdkEventButton *event, GitgCommitView *view); static gboolean popup_unstaged_menu(GitgCommitView *view, GdkEventButton *event); static gboolean popup_staged_menu(GitgCommitView *view, GdkEventButton *event); @@ -121,21 +125,22 @@ static void on_ignore_file(GtkAction *action, GitgCommitView *view); static void on_unstage_changes(GtkAction *action, GitgCommitView *view); +static void on_check_button_amend_toggled (GtkToggleButton *button, GitgCommitView *view); static void gitg_commit_view_finalize(GObject *object) { GitgCommitView *view = GITG_COMMIT_VIEW(object); - + if (view->priv->update_id) g_signal_handler_disconnect(view->priv->runner, view->priv->update_id); - + gitg_runner_cancel(view->priv->runner); g_object_unref(view->priv->runner); g_object_unref(view->priv->ui_manager); - + gdk_cursor_unref(view->priv->hand); - + G_OBJECT_CLASS(gitg_commit_view_parent_class)->finalize(object); } @@ -143,12 +148,12 @@ icon_data_func(GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, GitgCommitView *view) { GitgChangedFile *file; - + gtk_tree_model_get(model, iter, COLUMN_FILE, &file, -1); GitgChangedFileStatus status = gitg_changed_file_get_status(file); - + gboolean staged = (model == GTK_TREE_MODEL(view->priv->store_staged)); - + switch (status) { case GITG_CHANGED_FILE_STATUS_NEW: @@ -163,7 +168,7 @@ default: break; } - + g_object_unref(file); } @@ -171,7 +176,7 @@ set_icon_data_func(GitgCommitView *view, GtkTreeView *treeview, GtkCellRenderer *renderer) { GtkTreeViewColumn *column = gtk_tree_view_get_column(treeview, 0); - + gtk_tree_view_column_set_cell_data_func(column, renderer, (GtkTreeCellDataFunc)icon_data_func, view, NULL); } @@ -179,7 +184,7 @@ set_language(GitgCommitView *view, GtkSourceLanguage *language) { GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->priv->changes_view))); - + gtk_source_buffer_set_language(buffer, language); gitg_diff_view_set_diff_enabled(GITG_DIFF_VIEW(view->priv->changes_view), FALSE); } @@ -210,9 +215,9 @@ gchar *line; GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->priv->changes_view)); GtkTextIter iter; - + gtk_text_buffer_get_end_iter(buf, &iter); - + while ((line = *(buffer++))) { if (view->priv->is_diff && g_str_has_prefix(line, "@@")) @@ -226,13 +231,11 @@ gtk_text_buffer_insert(buf, &iter, line, -1); gtk_text_buffer_insert(buf, &iter, "\n", -1); } - - gitg_utils_guess_content_type(GTK_TEXT_BUFFER(buf)); - + if (gtk_source_buffer_get_language(GTK_SOURCE_BUFFER(buf)) == NULL) { gchar *content_type = gitg_utils_guess_content_type(GTK_TEXT_BUFFER(buf)); - + if (content_type && !gitg_utils_can_display_content_type(content_type)) { gitg_runner_cancel(runner); @@ -240,14 +243,14 @@ } else if (content_type) { - GtkSourceLanguage *language = gitg_utils_get_language(content_type); + GtkSourceLanguage *language = gitg_utils_get_language(NULL, content_type); set_language(view, language); gtk_widget_set_sensitive(GTK_WIDGET(view->priv->hscale_context), FALSE); } - + g_free(content_type); } - + while (gtk_events_pending()) gtk_main_iteration(); } @@ -263,7 +266,7 @@ { if (view->priv->current_file != NULL) g_object_unref(view->priv->current_file); - + view->priv->current_file = file ? g_object_ref(file) : NULL; view->priv->current_changes = changes; } @@ -279,25 +282,25 @@ if (files == NULL && changes == NULL && status == NULL && paths == NULL) return gtk_tree_selection_count_selected_rows(selection) != 0; - + GtkTreeModel *model; GList *items = gtk_tree_selection_get_selected_rows(selection, &model); - + if (files) *files = NULL; - + if (paths) *paths = NULL; - + if (!items) return FALSE; - + if (changes) *changes = ~0; - + if (status) *status = -1; - + GList *item; GitgChangedFile *file; @@ -307,12 +310,12 @@ gtk_tree_model_get_iter(model, &iter, (GtkTreePath *)item->data); gtk_tree_model_get(model, &iter, COLUMN_FILE, &file, -1); - + if (changes) *changes &= gitg_changed_file_get_status(file); - + GitgChangedFileStatus s = gitg_changed_file_get_status(file); - + if (status) { if (*status != -1 && *status != s) @@ -320,13 +323,13 @@ else *status = s; } - + if (files) *files = g_list_prepend(*files, file); else g_object_unref(file); } - + if (paths) { *paths = items; @@ -336,10 +339,10 @@ g_list_foreach(items, (GFunc)gtk_tree_path_free, NULL); g_list_free(items); } - + if (files) *files = g_list_reverse(*files); - + return TRUE; } @@ -363,11 +366,11 @@ gtk_source_buffer_remove_source_marks(GTK_SOURCE_BUFFER(buffer), &start, &end, CATEGORY_UNSTAGE_HUNK); gtk_source_buffer_remove_source_marks(GTK_SOURCE_BUFFER(buffer), &start, &end, CATEGORY_STAGE_HUNK); gtk_text_buffer_set_text(gtk_text_view_get_buffer(tv), "", -1); - + GList *paths; gboolean ret; get_selected_files(tree_view, NULL, &paths, NULL, NULL); - + if (g_list_length(paths) != 1) { set_current_file(view, NULL, GITG_CHANGED_FILE_CHANGES_NONE); @@ -382,7 +385,7 @@ (GtkTreePath *)paths->data); ret = TRUE; } - + g_list_foreach(paths, (GFunc)gtk_tree_path_free, NULL); g_list_free(paths); return ret; @@ -399,15 +402,15 @@ { GtkTreeModel *model; GtkTreeIter iter; - + if (!check_selection(view->priv->tree_view_unstaged, &iter, view)) return; - + model = gtk_tree_view_get_model(view->priv->tree_view_unstaged); unselect_tree_view(view->priv->tree_view_staged); - + GitgChangedFile *file; - + gtk_tree_model_get(model, &iter, COLUMN_FILE, &file, -1); GitgChangedFileStatus status = gitg_changed_file_get_status(file); GFile *f = gitg_changed_file_get_file(file); @@ -415,7 +418,7 @@ if (status == GITG_CHANGED_FILE_STATUS_NEW) { gchar *content_type = gitg_utils_get_content_type(f); - + if (!gitg_utils_can_display_content_type(content_type)) { show_binary_information(view); @@ -423,24 +426,29 @@ else { GInputStream *stream = G_INPUT_STREAM(g_file_read(f, NULL, NULL)); - + if (!stream) { show_binary_information(view); } else { - GtkSourceLanguage *language = gitg_utils_get_language(content_type); + gchar *basename = g_file_get_basename(f); + GtkSourceLanguage *language = gitg_utils_get_language(basename, content_type); + g_free(basename); + set_language(view, language); gtk_widget_set_sensitive(GTK_WIDGET(view->priv->hscale_context), FALSE); - + view->priv->is_diff = FALSE; connect_update(view); - + gitg_runner_run_stream(view->priv->runner, stream, NULL); g_object_unref(stream); } } + + g_free(content_type); } else { @@ -452,11 +460,11 @@ gchar ct[10]; g_snprintf(ct, sizeof(ct), "-U%d", view->priv->context_size); - + gitg_repository_run_commandv(view->priv->repository, view->priv->runner, NULL, "diff", ct, "--", path, NULL); g_free(path); } - + set_current_file(view, file, GITG_CHANGED_FILE_CHANGES_UNSTAGED); g_object_unref(file); @@ -468,44 +476,46 @@ { GtkTreeModel *model; GtkTreeIter iter; - + if (!check_selection(view->priv->tree_view_staged, &iter, view)) return; - + model = gtk_tree_view_get_model(view->priv->tree_view_staged); unselect_tree_view(view->priv->tree_view_unstaged); GitgChangedFile *file; - + gtk_tree_model_get(model, &iter, COLUMN_FILE, &file, -1); GitgChangedFileStatus status = gitg_changed_file_get_status(file); - + GFile *f = gitg_changed_file_get_file(file); gchar *path = gitg_repository_relative(view->priv->repository, f); - g_object_unref(f); - + if (status == GITG_CHANGED_FILE_STATUS_NEW) { view->priv->is_diff = FALSE; gchar *content_type = gitg_utils_get_content_type(f); - + if (!gitg_utils_can_display_content_type(content_type)) { show_binary_information(view); } else { - set_language(view, gitg_utils_get_language(content_type)); + gchar *basename = g_file_get_basename(f); + GtkSourceLanguage *language = gitg_utils_get_language(basename, content_type); + g_free(basename); + gtk_widget_set_sensitive(GTK_WIDGET(view->priv->hscale_context), FALSE); connect_update(view); gchar *indexpath = g_strconcat(":0:", path, NULL); - gitg_repository_run_commandv(view->priv->repository, view->priv->runner, NULL, "show", indexpath, NULL); + gitg_repository_run_commandv(view->priv->repository, view->priv->runner, NULL, "show", "--encoding=UTF-8", indexpath, NULL); g_free(indexpath); } - + g_free(content_type); } else @@ -513,7 +523,7 @@ view->priv->is_diff = TRUE; set_diff_language(view); connect_update(view); - + gchar *head = gitg_repository_parse_head(view->priv->repository); gchar ct[10]; g_snprintf(ct, sizeof(ct), "-U%d", view->priv->context_size); @@ -522,13 +532,14 @@ g_free(head); } - g_free(path); + g_object_unref(f); + g_free(path); - set_current_file(view, file, GITG_CHANGED_FILE_CHANGES_CACHED); + set_current_file(view, file, GITG_CHANGED_FILE_CHANGES_CACHED); g_object_unref(file); } -static int +static gint compare_by_name(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata) { gchar *s1; @@ -536,12 +547,12 @@ gtk_tree_model_get(model, a, COLUMN_NAME, &s1, -1); gtk_tree_model_get(model, b, COLUMN_NAME, &s2, -1); - - int ret = gitg_utils_sort_names(s1, s2); - + + gint ret = gitg_utils_sort_names(s1, s2); + g_free(s1); g_free(s2); - + return ret; } @@ -558,14 +569,14 @@ GSList *m1 = gtk_source_buffer_get_source_marks_at_iter(buffer, iter, CATEGORY_UNSTAGE_HUNK); gboolean has_mark = (m1 != NULL); g_slist_free(m1); - + if (has_mark) return TRUE; - + m1 = gtk_source_buffer_get_source_marks_at_iter(buffer, iter, CATEGORY_STAGE_HUNK); has_mark = (m1 != NULL); g_slist_free(m1); - + return has_mark; } @@ -583,9 +594,9 @@ gtk_text_iter_backward_line(&begin); GtkTextIter lineend = begin; gtk_text_iter_forward_line(&lineend); - - gchar *text = gtk_text_buffer_get_text(buffer, &begin, &lineend, FALSE); - + + gchar *text = gtk_text_buffer_get_text(buffer, &begin, &lineend, TRUE); + if (g_str_has_prefix(text, "+++ ")) { end = lineend; @@ -598,11 +609,11 @@ g_free(text); } - + if (!foundstart || !foundend) return NULL; - - return gtk_text_buffer_get_text(buffer, &begin, &end, FALSE); + + return gtk_text_buffer_get_text(buffer, &begin, &end, TRUE); } static gchar * @@ -612,19 +623,19 @@ or next file start (or end of file) */ GtkTextIter begin = *iter; GtkTextIter end = begin; - + while (!gtk_text_iter_is_end(&end)) { if (!gtk_text_iter_forward_line(&end)) break; - + GtkTextIter lineend = end; gtk_text_iter_forward_to_line_end(&lineend); - - gchar *text = gtk_text_buffer_get_text(buffer, &end, &lineend, FALSE); + + gchar *text = gtk_text_buffer_get_text(buffer, &end, &lineend, TRUE); gboolean isend = g_str_has_prefix(text, "@@") || g_str_has_prefix(text, "diff --git "); g_free(text); - + if (isend) { gtk_text_iter_backward_line(&end); @@ -632,7 +643,7 @@ break; } } - + return gtk_text_buffer_get_text(buffer, &begin, &end, FALSE); } @@ -642,10 +653,10 @@ /* Get patch header */ GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->priv->changes_view)); gchar *header = get_patch_header(view, buffer, iter); - + if (!header) return NULL; - + /* Get patch contents */ gchar *contents = get_patch_contents(view, buffer, iter); @@ -654,7 +665,7 @@ g_free(header); return NULL; } - + return g_strconcat(header, contents, NULL); } @@ -662,28 +673,28 @@ handle_stage_unstage(GitgCommitView *view, GtkTextIter *iter) { gchar *hunk = get_hunk_patch(view, iter); - + if (!hunk) return FALSE; gboolean ret; GitgChangedFile *file = g_object_ref(view->priv->current_file); gboolean unstage = view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED; - + if (unstage) ret = gitg_commit_stage(view->priv->commit, view->priv->current_file, hunk, NULL); else ret = gitg_commit_unstage(view->priv->commit, view->priv->current_file, hunk, NULL); - + if (ret && file == view->priv->current_file) { /* remove hunk from text view */ gitg_diff_view_remove_hunk(GITG_DIFF_VIEW(view->priv->changes_view), iter); } - + g_object_unref(file); g_free(hunk); - + return ret; } @@ -708,13 +719,13 @@ gtk_text_iter_forward_line(iter); GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER(gtk_text_view_get_buffer(textview)); - + if (!has_hunk_mark(buffer, iter)) return FALSE; if (hunk) *hunk = get_hunk_patch(view, iter); - + return TRUE; } @@ -749,7 +760,7 @@ { handle_stage_unstage(view, &iter); } - + return FALSE; } @@ -757,11 +768,11 @@ initialize_buffer(GitgCommitView *view) { GtkTextBuffer *buffer = GTK_TEXT_BUFFER(gtk_source_buffer_new(NULL)); - + GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_manager_get_default(); GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_get_scheme(manager, "gitg"); gtk_source_buffer_set_style_scheme(GTK_SOURCE_BUFFER(buffer), scheme); - + return buffer; } @@ -777,25 +788,23 @@ guint time, GitgCommitView *view) { - GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); - GtkTreeModel *model; GList *selected; GList *item; gchar **uris; guint i = 0; - get_selected_files(GTK_TREE_VIEW(widget), &selected, NULL, NULL, NULL); + get_selected_files(GTK_TREE_VIEW(widget), &selected, NULL, NULL, NULL); uris = g_new(gchar *, g_list_length(selected) + 1); - + for (item = selected; item; item = g_list_next(item)) { GitgChangedFile *file = GITG_CHANGED_FILE (item->data); GFile *gf = gitg_changed_file_get_file(file); - + uris[i++] = g_file_get_uri(gf); g_object_unref(gf); } - + uris[i] = NULL; gtk_selection_data_set_uris(selection, uris); @@ -818,7 +827,6 @@ /* Stage all the files dropped on this */ gchar **uris = gtk_selection_data_get_uris(data); gchar **uri; - GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); for (uri = uris; *uri; ++uri) { @@ -826,12 +834,12 @@ GitgChangedFile *f; f = gitg_commit_find_changed_file(view->priv->commit, file); - + if (f && (gitg_changed_file_get_changes(f) & GITG_CHANGED_FILE_CHANGES_UNSTAGED)) { gitg_commit_stage(view->priv->commit, f, NULL, NULL); } - + g_object_unref(f); g_object_unref(file); } @@ -850,19 +858,19 @@ /* Unstage all the files dropped on this */ gchar **uris = gtk_selection_data_get_uris(data); gchar **uri; - + for (uri = uris; *uri; ++uri) { GFile *file = g_file_new_for_uri(*uri); GitgChangedFile *f; f = gitg_commit_find_changed_file(view->priv->commit, file); - + if (f && (gitg_changed_file_get_changes(f) & GITG_CHANGED_FILE_CHANGES_CACHED)) { gitg_commit_unstage(view->priv->commit, f, NULL, NULL); } - + g_object_unref(f); g_object_unref(file); } @@ -912,92 +920,122 @@ /* Store widgets */ GitgCommitView *self = GITG_COMMIT_VIEW(buildable); - - self->priv->ui_manager = g_object_ref(gtk_builder_get_object(builder, "uiman")); + + GtkBuilder *b = gitg_utils_new_builder("gitg-commit-menu.ui"); + self->priv->ui_manager = g_object_ref(gtk_builder_get_object(b, "uiman")); + + g_signal_connect(gtk_builder_get_object(b, "StageChangesAction"), "activate", G_CALLBACK(on_stage_changes), self); + g_signal_connect(gtk_builder_get_object(b, "RevertChangesAction"), "activate", G_CALLBACK(on_revert_changes), self); + g_signal_connect(gtk_builder_get_object(b, "IgnoreFileAction"), "activate", G_CALLBACK(on_ignore_file), self); + g_signal_connect(gtk_builder_get_object(b, "UnstageChangesAction"), "activate", G_CALLBACK(on_unstage_changes), self); + + self->priv->group_context = GTK_ACTION_GROUP(gtk_builder_get_object(b, "action_group_commit_context")); + + g_object_unref(b); + self->priv->tree_view_unstaged = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_unstaged")); self->priv->tree_view_staged = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_staged")); - + self->priv->store_unstaged = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, GITG_TYPE_CHANGED_FILE); self->priv->store_staged = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, GITG_TYPE_CHANGED_FILE); - + set_sort_func(self->priv->store_unstaged); set_sort_func(self->priv->store_staged); - + self->priv->changes_view = GTK_SOURCE_VIEW(gtk_builder_get_object(builder, "source_view_changes")); self->priv->comment_view = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "text_view_comment")); self->priv->check_button_signed_off_by = GTK_CHECK_BUTTON(gtk_builder_get_object(builder, "check_button_signed_off_by")); - + self->priv->check_button_amend = GTK_CHECK_BUTTON(gtk_builder_get_object(builder, "check_button_amend")); + + GitgPreferences *preferences = gitg_preferences_get_default(); + + gitg_data_binding_new(preferences, "message-show-right-margin", + self->priv->comment_view, "show-right-margin"); + + gitg_data_binding_new(preferences, "message-right-margin-at", + self->priv->comment_view, "right-margin-position"); + self->priv->hscale_context = GTK_HSCALE(gtk_builder_get_object(builder, "hscale_context")); - self->priv->group_context = GTK_ACTION_GROUP(gtk_builder_get_object(builder, "action_group_commit_context")); - + gtk_range_set_value (GTK_RANGE (self->priv->hscale_context), 3); + initialize_dnd_staged(self); initialize_dnd_unstaged(self); - + GtkIconTheme *theme = gtk_icon_theme_get_default(); GdkPixbuf *pixbuf = gtk_icon_theme_load_icon(theme, GTK_STOCK_ADD, 12, GTK_ICON_LOOKUP_USE_BUILTIN, NULL); - + if (pixbuf) { - gtk_source_view_set_mark_category_pixbuf(self->priv->changes_view, CATEGORY_STAGE_HUNK, pixbuf); + gtk_source_view_set_mark_category_icon_from_pixbuf(self->priv->changes_view, CATEGORY_STAGE_HUNK, pixbuf); g_object_unref(pixbuf); } - + pixbuf = gtk_icon_theme_load_icon(theme, GTK_STOCK_REMOVE, 12, GTK_ICON_LOOKUP_USE_BUILTIN, NULL); - + if (pixbuf) { - gtk_source_view_set_mark_category_pixbuf(self->priv->changes_view, CATEGORY_UNSTAGE_HUNK, pixbuf); + gtk_source_view_set_mark_category_icon_from_pixbuf(self->priv->changes_view, CATEGORY_UNSTAGE_HUNK, pixbuf); g_object_unref(pixbuf); } - + gitg_utils_set_monospace_font(GTK_WIDGET(self->priv->changes_view)); - + GtkTextBuffer *buffer = initialize_buffer(self); gtk_text_view_set_buffer(GTK_TEXT_VIEW(self->priv->changes_view), buffer); g_signal_connect(self->priv->changes_view, "event", G_CALLBACK(view_event), self); - + gtk_tree_view_set_model(self->priv->tree_view_unstaged, GTK_TREE_MODEL(self->priv->store_unstaged)); gtk_tree_view_set_model(self->priv->tree_view_staged, GTK_TREE_MODEL(self->priv->store_staged)); - + set_icon_data_func(self, self->priv->tree_view_unstaged, GTK_CELL_RENDERER(gtk_builder_get_object(builder, "unstaged_cell_renderer_icon"))); set_icon_data_func(self, self->priv->tree_view_staged, GTK_CELL_RENDERER(gtk_builder_get_object(builder, "staged_cell_renderer_icon"))); - + GtkTreeSelection *selection; - + selection = gtk_tree_view_get_selection(self->priv->tree_view_unstaged); - + gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); g_signal_connect(selection, "changed", G_CALLBACK(unstaged_selection_changed), self); - + selection = gtk_tree_view_get_selection(self->priv->tree_view_staged); gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); g_signal_connect(selection, "changed", G_CALLBACK(staged_selection_changed), self); - + g_signal_connect(self->priv->tree_view_unstaged, "event-after", G_CALLBACK(on_unstaged_button_press), self); g_signal_connect(self->priv->tree_view_staged, "event-after", G_CALLBACK(on_staged_button_press), self); + g_signal_connect (self->priv->tree_view_unstaged, + "button-press-event", + G_CALLBACK (on_staged_unstaged_button_press_before), + self); + + g_signal_connect (self->priv->tree_view_staged, + "button-press-event", + G_CALLBACK (on_staged_unstaged_button_press_before), + self); + g_signal_connect(self->priv->tree_view_unstaged, "popup-menu", G_CALLBACK(on_unstaged_popup_menu), self); g_signal_connect(self->priv->tree_view_staged, "popup-menu", G_CALLBACK(on_staged_popup_menu), self); g_signal_connect(self->priv->changes_view, "populate-popup", G_CALLBACK(on_changes_view_popup_menu), self); g_signal_connect(self->priv->tree_view_unstaged, "motion-notify-event", G_CALLBACK(on_unstaged_motion), self); g_signal_connect(self->priv->tree_view_staged, "motion-notify-event", G_CALLBACK(on_staged_motion), self); - + g_signal_connect(gtk_builder_get_object(builder, "button_commit"), "clicked", G_CALLBACK(on_commit_clicked), self); - + g_signal_connect(self->priv->hscale_context, "value-changed", G_CALLBACK(on_context_value_changed), self); - - g_signal_connect(gtk_builder_get_object(builder, "StageChangesAction"), "activate", G_CALLBACK(on_stage_changes), self); - g_signal_connect(gtk_builder_get_object(builder, "RevertChangesAction"), "activate", G_CALLBACK(on_revert_changes), self); - g_signal_connect(gtk_builder_get_object(builder, "IgnoreFileAction"), "activate", G_CALLBACK(on_ignore_file), self); - g_signal_connect(gtk_builder_get_object(builder, "UnstageChangesAction"), "activate", G_CALLBACK(on_unstage_changes), self); + + g_signal_connect (self->priv->check_button_amend, + "toggled", + G_CALLBACK (on_check_button_amend_toggled), + self); } static void gitg_commit_view_buildable_iface_init(GtkBuildableIface *iface) { parent_iface = *iface; - + iface->parser_finished = gitg_commit_view_parser_finished; } @@ -1005,13 +1043,13 @@ gitg_commit_view_dispose(GObject *object) { GitgCommitView *self = GITG_COMMIT_VIEW(object); - + if (self->priv->repository) { g_object_unref(self->priv->repository); self->priv->repository = NULL; } - + if (self->priv->commit) { g_signal_handlers_disconnect_by_func(self->priv->commit, on_commit_file_inserted, self); @@ -1045,7 +1083,7 @@ gitg_commit_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgCommitView *self = GITG_COMMIT_VIEW(object); - + switch (prop_id) { case PROP_REPOSITORY: @@ -1080,10 +1118,10 @@ GitgCommitView *self = GITG_COMMIT_VIEW(widget); GTK_WIDGET_CLASS(gitg_commit_view_parent_class)->map(widget); - + if (!self->priv->repository) return; - + initialize_commit(self); } @@ -1095,7 +1133,7 @@ object_class->finalize = gitg_commit_view_finalize; object_class->dispose = gitg_commit_view_dispose; - + widget_class->map = gitg_commit_view_map; object_class->set_property = gitg_commit_view_set_property; @@ -1124,7 +1162,7 @@ gitg_commit_view_init(GitgCommitView *self) { self->priv = GITG_COMMIT_VIEW_GET_PRIVATE(self); - + self->priv->runner = gitg_runner_new(10000); self->priv->hand = gdk_cursor_new(GDK_HAND1); } @@ -1140,22 +1178,22 @@ g_object_unref(view->priv->repository); view->priv->repository = NULL; } - + if (view->priv->commit) { g_object_unref(view->priv->commit); view->priv->commit = NULL; } - + gtk_list_store_clear(view->priv->store_unstaged); gtk_list_store_clear(view->priv->store_staged); if (repository) view->priv->repository = g_object_ref(repository); - + if (GTK_WIDGET_MAPPED(GTK_WIDGET(view))) initialize_commit(view); - + g_object_notify(G_OBJECT(view), "repository"); } @@ -1164,13 +1202,13 @@ { GFile *f = gitg_changed_file_get_file(file); GFile *repos = g_file_new_for_path(gitg_repository_get_path(view->priv->repository)); - + GtkTreeIter iter; gchar *rel = g_file_get_relative_path(repos, f); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, COLUMN_NAME, rel, COLUMN_FILE, file, -1); - + g_free(rel); g_object_unref(repos); g_object_unref(f); @@ -1181,22 +1219,22 @@ find_file_in_store(GtkListStore *store, GitgChangedFile *file, GtkTreeIter *iter) { GtkTreeModel *model = GTK_TREE_MODEL(store); - + if (!gtk_tree_model_get_iter_first(model, iter)) return FALSE; - + do { GitgChangedFile *other; gtk_tree_model_get(model, iter, COLUMN_FILE, &other, -1); gboolean ret = (other == file); - + g_object_unref(other); - + if (ret) return TRUE; } while (gtk_tree_model_iter_next(model, iter)); - + return FALSE; } @@ -1204,10 +1242,10 @@ model_row_changed(GtkListStore *store, GtkTreeIter *iter) { GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), iter); - + if (!path) return; - + gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, iter); gtk_tree_path_free(path); } @@ -1217,18 +1255,18 @@ { GtkTreeIter staged; GtkTreeIter unstaged; - + gboolean isstaged = find_file_in_store(view->priv->store_staged, file, &staged); gboolean isunstaged = find_file_in_store(view->priv->store_unstaged, file, &unstaged); if (isstaged) model_row_changed(view->priv->store_staged, &staged); - + if (isunstaged) model_row_changed(view->priv->store_unstaged, &unstaged); GitgChangedFileChanges changes = gitg_changed_file_get_changes(file); - + if (changes & GITG_CHANGED_FILE_CHANGES_CACHED) { if (!isstaged) @@ -1239,7 +1277,7 @@ if (isstaged) gtk_list_store_remove(view->priv->store_staged, &staged); } - + if (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED) { if (!isunstaged) @@ -1256,13 +1294,13 @@ on_commit_file_inserted(GitgCommit *commit, GitgChangedFile *file, GitgCommitView *view) { GitgChangedFileChanges changes = gitg_changed_file_get_changes(file); - + if (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED) append_file(view->priv->store_unstaged, file, view); - + if (changes & GITG_CHANGED_FILE_CHANGES_CACHED) append_file(view->priv->store_staged, file, view); - + g_signal_connect(file, "notify::changes", G_CALLBACK(on_commit_file_changed), view); g_signal_connect(file, "notify::status", G_CALLBACK(on_commit_file_changed), view); } @@ -1271,10 +1309,10 @@ on_commit_file_removed(GitgCommit *commit, GitgChangedFile *file, GitgCommitView *view) { GtkTreeIter iter; - + if (find_file_in_store(view->priv->store_staged, file, &iter)) gtk_list_store_remove(view->priv->store_staged, &iter); - + if (find_file_in_store(view->priv->store_unstaged, file, &iter)) gtk_list_store_remove(view->priv->store_unstaged, &iter); } @@ -1285,19 +1323,19 @@ GtkTreeViewColumn *column; gint x; gint y; - + gtk_tree_view_convert_widget_to_bin_window_coords(view, (gint)ex, (gint)ey, &x, &y); GtkTreePath *path; if (!gtk_tree_view_get_path_at_pos(view, x, y, &path, &column, NULL, NULL)) return FALSE; - + if (column != gtk_tree_view_get_column(view, 0)) { gtk_tree_path_free(path); return FALSE; } - + if (file) { GtkTreeModel *model = gtk_tree_view_get_model(view); @@ -1306,17 +1344,51 @@ gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, COLUMN_FILE, file, -1); } - + gtk_tree_path_free(path); - + return TRUE; } +static gboolean +on_staged_unstaged_button_press_before (GtkWidget *widget, + GdkEventButton *event, + GitgCommitView *view) +{ + if (event->button != 3) + { + return FALSE; + } + + /* Check if it is important to keep the selection here */ + GtkTreeView *treeview = GTK_TREE_VIEW (widget); + GtkTreePath *path; + + if (gtk_tree_view_get_path_at_pos (treeview, + (gint)event->x, + (gint)event->y, + &path, + NULL, + NULL, + NULL)) + { + GtkTreeSelection *selection = gtk_tree_view_get_selection (treeview); + if (gtk_tree_selection_path_is_selected (selection, path)) + { + /* Block normal treeview behavior to unselect potential + multiselection */ + return TRUE; + } + } + + return FALSE; +} + static void on_unstaged_button_press(GtkWidget *widget, GdkEventButton *event, GitgCommitView *view) { GitgChangedFile *file; - + if (event->type != GDK_BUTTON_PRESS) return; @@ -1336,7 +1408,7 @@ on_staged_button_press(GtkWidget *widget, GdkEventButton *event, GitgCommitView *view) { GitgChangedFile *file; - + if (event->type != GDK_BUTTON_PRESS) return; @@ -1359,7 +1431,7 @@ gdk_window_set_cursor(widget->window, view->priv->hand); else gdk_window_set_cursor(widget->window, NULL); - + return FALSE; } @@ -1380,15 +1452,15 @@ GtkTextBuffer *buffer = gtk_text_view_get_buffer(view->priv->comment_view); GtkTextIter start; GtkTextIter end; - + gtk_text_buffer_get_bounds(buffer, &start, &end); gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); gchar *ptr; - + for (ptr = text; *ptr; ptr = g_utf8_next_char(ptr)) if (!g_unichar_isspace(g_utf8_get_char(ptr))) return text; - + g_free(text); return NULL; } @@ -1410,34 +1482,37 @@ show_error(view, _("You must first stage some changes before committing")); return; } - + gchar *comment = get_comment(view); - + if (!comment) { show_error(view, _("Please enter a commit message before committing")); return; } - + gboolean signoff = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(view->priv->check_button_signed_off_by)); - + gboolean amend = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view->priv->check_button_amend)); + GError *error = NULL; - - if (!gitg_commit_commit(view->priv->commit, comment, signoff, &error)) + + if (!gitg_commit_commit(view->priv->commit, comment, signoff, amend, &error)) { if (error && error->domain == GITG_COMMIT_ERROR && error->code == GITG_COMMIT_ERROR_SIGNOFF) show_error(view, _("Your user name or email could not be retrieved for use in the sign off message")); else show_error(view, _("Something went wrong while trying to commit")); - + if (error) g_error_free(error); } else { gtk_text_buffer_set_text(gtk_text_view_get_buffer(view->priv->comment_view), "", -1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->check_button_amend), FALSE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->check_button_signed_off_by), FALSE); } - + g_free(comment); } @@ -1445,7 +1520,7 @@ on_context_value_changed(GtkHScale *scale, GitgCommitView *view) { view->priv->context_size = (gint)gtk_range_get_value(GTK_RANGE(scale)); - + if (view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED) unstaged_selection_changed(gtk_tree_view_get_selection(view->priv->tree_view_unstaged), view); else if (view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_CACHED) @@ -1460,14 +1535,14 @@ if (!get_selected_files(view->priv->tree_view_unstaged, NULL, NULL, &changes, &status)) return FALSE; - + GtkAction *revert = gtk_ui_manager_get_action(view->priv->ui_manager, "/ui/popup_commit_stage/RevertChangesAction"); GtkAction *ignore = gtk_ui_manager_get_action(view->priv->ui_manager, "/ui/popup_commit_stage/IgnoreFileAction"); - gboolean isnew = status == GITG_CHANGED_FILE_STATUS_NEW; - gtk_action_set_visible(revert, !isnew); - gtk_action_set_visible(ignore, isnew); - + gtk_action_set_visible(revert, status == GITG_CHANGED_FILE_STATUS_MODIFIED || + status == GITG_CHANGED_FILE_STATUS_DELETED); + gtk_action_set_visible(ignore, status == GITG_CHANGED_FILE_STATUS_NEW); + return TRUE; } @@ -1476,8 +1551,8 @@ { if (!get_selected_files(view->priv->tree_view_staged, NULL, NULL, NULL, NULL)) return FALSE; - - return TRUE; + + return TRUE; } static gboolean @@ -1487,9 +1562,9 @@ return FALSE; GtkWidget *wd = gtk_ui_manager_get_widget(view->priv->ui_manager, "/ui/popup_commit_stage"); - + view->priv->context_type = CONTEXT_TYPE_FILE; - + if (event) { gtk_menu_popup(GTK_MENU(wd), NULL, NULL, NULL, NULL, event->button, event->time); @@ -1501,7 +1576,7 @@ view->priv->tree_view_staged, 0, gtk_get_current_event_time()); } - + return TRUE; } @@ -1512,9 +1587,9 @@ return FALSE; GtkWidget *wd = gtk_ui_manager_get_widget(view->priv->ui_manager, "/ui/popup_commit_unstage"); - + view->priv->context_type = CONTEXT_TYPE_FILE; - + if (event) { gtk_menu_popup(GTK_MENU(wd), NULL, NULL, NULL, NULL, event->button, event->time); @@ -1526,7 +1601,7 @@ view->priv->tree_view_unstaged, 0, gtk_get_current_event_time()); } - + return TRUE; } @@ -1548,12 +1623,18 @@ { if (view->priv->context_type == CONTEXT_TYPE_FILE) { - GitgChangedFile *file = view->priv->current_file; - - if (!file) - return; - - gitg_commit_stage(view->priv->commit, file, NULL, NULL); + GList *files = NULL; + GList *item; + + get_selected_files (view->priv->tree_view_unstaged, &files, NULL, NULL, NULL); + + for (item = files; item; item = g_list_next (item)) + { + gitg_commit_stage(view->priv->commit, GITG_CHANGED_FILE (item->data), NULL, NULL); + g_object_unref (item->data); + } + + g_list_free (files); } else { @@ -1565,10 +1646,21 @@ do_revert_changes(GitgCommitView *view) { gboolean ret; - + if (view->priv->context_type == CONTEXT_TYPE_FILE) { - ret = gitg_commit_revert(view->priv->commit, view->priv->current_file, NULL, NULL); + GList *files = NULL; + GList *item; + + get_selected_files (view->priv->tree_view_unstaged, &files, NULL, NULL, NULL); + + for (item = files; item; item = g_list_next (item)) + { + ret &= gitg_commit_revert(view->priv->commit, GITG_CHANGED_FILE (item->data), NULL, NULL); + g_object_unref (item->data); + } + + g_list_free (files); } else { @@ -1577,13 +1669,13 @@ gchar *hunk = get_hunk_patch(view, &view->priv->context_iter); ret = gitg_commit_revert(view->priv->commit, view->priv->current_file, hunk, NULL); g_free(hunk); - + if (ret && view->priv->current_file == file) gitg_diff_view_remove_hunk(GITG_DIFF_VIEW(view->priv->changes_view), &view->priv->context_iter); - + g_object_unref(file); } - + if (!ret) show_error(view, _("Revert fail")); } @@ -1602,17 +1694,28 @@ _("Reverting changes is permanent and cannot be undone")); gint response = gtk_dialog_run(GTK_DIALOG(dialog)); - + if (response == GTK_RESPONSE_YES) do_revert_changes(view); - + gtk_widget_destroy(dialog); } static void -on_ignore_file(GtkAction *action, GitgCommitView *view) +on_ignore_file (GtkAction *action, GitgCommitView *view) { - gitg_commit_add_ignore(view->priv->commit, view->priv->current_file, NULL); + GList *files = NULL; + GList *item; + + get_selected_files (view->priv->tree_view_unstaged, &files, NULL, NULL, NULL); + + for (item = files; item; item = g_list_next (item)) + { + gitg_commit_add_ignore (view->priv->commit, GITG_CHANGED_FILE (item->data), NULL); + g_object_unref (item->data); + } + + g_list_free (files); } static void @@ -1620,12 +1723,18 @@ { if (view->priv->context_type == CONTEXT_TYPE_FILE) { - GitgChangedFile *file = view->priv->current_file; - - if (!file) - return; - - gitg_commit_unstage(view->priv->commit, file, NULL, NULL); + GList *files = NULL; + GList *item; + + get_selected_files (view->priv->tree_view_unstaged, &files, NULL, NULL, NULL); + + for (item = files; item; item = g_list_next (item)) + { + gitg_commit_unstage(view->priv->commit, GITG_CHANGED_FILE (item->data), NULL, NULL); + g_object_unref (item->data); + } + + g_list_free (files); } else { @@ -1646,14 +1755,14 @@ /* check the hunk */ if (!get_hunk_at_pointer(view, &view->priv->context_iter, NULL)) return; - + GtkWidget *separator = gtk_separator_menu_item_new(); gtk_widget_show(separator); view->priv->context_type = CONTEXT_TYPE_HUNK; gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator); - + if (view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_CACHED) { GtkWidget *unstage = create_context_menu_item(view, "UnstageChangesAction"); @@ -1663,8 +1772,32 @@ { GtkWidget *stage = create_context_menu_item(view, "StageChangesAction"); GtkWidget *revert = create_context_menu_item(view, "RevertChangesAction"); - + gtk_menu_shell_append(GTK_MENU_SHELL(menu), stage); gtk_menu_shell_append(GTK_MENU_SHELL(menu), revert); } } + +static void +on_check_button_amend_toggled (GtkToggleButton *button, GitgCommitView *view) +{ + gboolean active = gtk_toggle_button_get_active (button); + GtkTextBuffer *buffer = gtk_text_view_get_buffer (view->priv->comment_view); + GtkTextIter start; + GtkTextIter end; + + gtk_text_buffer_get_bounds (buffer, &start, &end); + + if (active && gtk_text_iter_compare (&start, &end) == 0) + { + // Get last commit message + gchar *message = gitg_commit_amend_message (view->priv->commit); + + if (message) + { + gtk_text_buffer_set_text (buffer, message, -1); + } + + g_free (message); + } +} diff -Nru gitg-0.0.3/gitg/gitg-commit-view.h gitg-0.0.6/gitg/gitg-commit-view.h --- gitg-0.0.3/gitg/gitg-commit-view.h 2009-02-08 14:35:12.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-commit-view.h 2010-01-24 12:17:15.000000000 +0000 @@ -41,13 +41,13 @@ typedef struct _GitgCommitViewPrivate GitgCommitViewPrivate; struct _GitgCommitView { - GtkHPaned parent; - + GtkVPaned parent; + GitgCommitViewPrivate *priv; }; struct _GitgCommitViewClass { - GtkHPanedClass parent_class; + GtkVPanedClass parent_class; }; GType gitg_commit_view_get_type (void) G_GNUC_CONST; diff -Nru gitg-0.0.3/gitg/gitg-config.c gitg-0.0.6/gitg/gitg-config.c --- gitg-0.0.3/gitg/gitg-config.c 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-config.c 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,360 @@ +#include "gitg-config.h" + + +#define GITG_CONFIG_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GITG_TYPE_CONFIG, GitgConfigPrivate)) + +enum +{ + PROP_0, + PROP_REPOSITORY +}; + +struct _GitgConfigPrivate +{ + GitgRepository *repository; + GitgRunner *runner; + + GString *accumulated; +}; + +G_DEFINE_TYPE (GitgConfig, gitg_config, G_TYPE_OBJECT) + +static void +gitg_config_finalize (GObject *object) +{ + GitgConfig *config = GITG_CONFIG (object); + + if (config->priv->repository) + { + g_object_unref(config->priv->repository); + } + + g_string_free (config->priv->accumulated, TRUE); + + G_OBJECT_CLASS (gitg_config_parent_class)->finalize (object); +} + +static void +gitg_config_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) +{ + GitgConfig *self = GITG_CONFIG (object); + + switch (prop_id) + { + case PROP_REPOSITORY: + if (self->priv->repository) + { + g_object_unref(self->priv->repository); + } + + self->priv->repository = GITG_REPOSITORY (g_value_dup_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gitg_config_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) +{ + GitgConfig *self = GITG_CONFIG (object); + + switch (prop_id) + { + case PROP_REPOSITORY: + g_value_set_object (value, self->priv->repository); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gitg_config_class_init (GitgConfigClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = gitg_config_finalize; + object_class->get_property = gitg_config_get_property; + object_class->set_property = gitg_config_set_property; + + g_object_class_install_property(object_class, PROP_REPOSITORY, + g_param_spec_object("repository", + "REPOSITORY", + "The repository", + GITG_TYPE_REPOSITORY, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_type_class_add_private (object_class, sizeof(GitgConfigPrivate)); +} + +static void +gitg_config_accumulate (GitgRunner *runner, gchar **buffer, GitgConfig *config) +{ + gchar **ptr = buffer; + + while (*ptr) + { + if (config->priv->accumulated->len != 0) + { + g_string_append_c (config->priv->accumulated, '\n'); + } + + g_string_append (config->priv->accumulated, *ptr); + ++ptr; + } +} + +static void +gitg_config_begin_loading (GitgRunner *runner, GitgConfig *config) +{ + g_string_erase (config->priv->accumulated, 0, -1); +} + +static void +gitg_config_init (GitgConfig *self) +{ + self->priv = GITG_CONFIG_GET_PRIVATE (self); + + self->priv->runner = gitg_runner_new_synchronized (1000); + + self->priv->accumulated = g_string_new (""); + + g_signal_connect (self->priv->runner, + "update", + G_CALLBACK (gitg_config_accumulate), + self); + + g_signal_connect (self->priv->runner, + "begin-loading", + G_CALLBACK (gitg_config_begin_loading), + self); +} + +GitgConfig * +gitg_config_new (GitgRepository *repository) +{ + return g_object_new (GITG_TYPE_CONFIG, "repository", repository, NULL); +} + +static gchar * +get_value_process (GitgConfig *config, gboolean ret) +{ + gchar *res; + + if (ret) + { + res = g_strndup (config->priv->accumulated->str, config->priv->accumulated->len); + } + else + { + res = NULL; + } + + return res; +} + +static gchar * +get_value_global (GitgConfig *config, gchar const *key) +{ + gchar const *argv[] = { + "git", + "config", + "--global", + key, + NULL + }; + + gboolean ret = gitg_runner_run (config->priv->runner, argv, NULL); + return get_value_process (config, ret); +} + +static gchar * +get_value_global_regex (GitgConfig *config, gchar const *regex) +{ + gchar const *argv[] = { + "git", + "config", + "--global", + "--get-regexp", + regex, + NULL + }; + + gboolean ret = gitg_runner_run (config->priv->runner, argv, NULL); + return get_value_process (config, ret); +} + +static gchar * +get_value_local (GitgConfig *config, gchar const *key) +{ + gboolean ret; + gchar const *path = gitg_repository_get_path (config->priv->repository); + gchar *cfg = g_build_filename (path, ".git", "config", NULL); + + ret = gitg_repository_run_commandv (config->priv->repository, + config->priv->runner, + NULL, + "config", + "--file", + cfg, + key, + NULL); + g_free (cfg); + + return get_value_process (config, ret); +} + +static gchar * +get_value_local_regex (GitgConfig *config, gchar const *regex) +{ + gboolean ret; + gchar const *path = gitg_repository_get_path (config->priv->repository); + gchar *cfg = g_build_filename (path, ".git", "config", NULL); + + ret = gitg_repository_run_commandv (config->priv->repository, + config->priv->runner, + NULL, + "config", + "--file", + cfg, + "--get-regexp", + regex, + NULL); + g_free (cfg); + + return get_value_process (config, ret); +} + +static gboolean +set_value_global (GitgConfig *config, gchar const *key, gchar const *value) +{ + gchar const *argv[] = { + "git", + "config", + "--global", + value == NULL ? "--unset" : key, + value == NULL ? key : value, + NULL + }; + + return gitg_runner_run (config->priv->runner, argv, NULL); +} + +static gboolean +set_value_local (GitgConfig *config, gchar const *key, gchar const *value) +{ + gchar const *path = gitg_repository_get_path (config->priv->repository); + gchar *cfg = g_build_filename (path, ".git", "config", NULL); + + return gitg_repository_run_commandv (config->priv->repository, + config->priv->runner, + NULL, + "config", + "--file", + cfg, + value == NULL ? "--unset" : key, + value == NULL ? key : value, + NULL); +} + +static gboolean +rename_global (GitgConfig *config, gchar const *old, gchar const *nw) +{ + gchar const *argv[] = { + "git", + "config", + "--global", + "--rename-section", + old, + nw, + NULL + }; + + return gitg_runner_run (config->priv->runner, argv, NULL); +} + +static gboolean +rename_local (GitgConfig *config, gchar const *old, gchar const *nw) +{ + gchar const *path = gitg_repository_get_path (config->priv->repository); + gchar *cfg = g_build_filename (path, ".git", "config", NULL); + + return gitg_repository_run_commandv (config->priv->repository, + config->priv->runner, + NULL, + "config", + "--file", + cfg, + "--rename-section", + old, + nw, + NULL); +} + +gchar * +gitg_config_get_value (GitgConfig *config, gchar const *key) +{ + g_return_val_if_fail (GITG_IS_CONFIG (config), NULL); + g_return_val_if_fail (key != NULL, NULL); + + if (config->priv->repository != NULL) + { + return get_value_local (config, key); + } + else + { + return get_value_global (config, key); + } +} + +gchar * +gitg_config_get_value_regex (GitgConfig *config, gchar const *regex) +{ + g_return_val_if_fail (GITG_IS_CONFIG (config), NULL); + g_return_val_if_fail (regex != NULL, NULL); + + if (config->priv->repository != NULL) + { + return get_value_local_regex (config, regex); + } + else + { + return get_value_global_regex (config, regex); + } +} + +gboolean +gitg_config_set_value (GitgConfig *config, gchar const *key, gchar const *value) +{ + g_return_val_if_fail (GITG_IS_CONFIG (config), FALSE); + g_return_val_if_fail (key != NULL, FALSE); + + if (config->priv->repository != NULL) + { + return set_value_local (config, key, value); + } + else + { + return set_value_global (config, key, value); + } +} + +gboolean +gitg_config_rename (GitgConfig *config, gchar const *old, gchar const *nw) +{ + g_return_val_if_fail (GITG_IS_CONFIG (config), FALSE); + g_return_val_if_fail (old != NULL, FALSE); + g_return_val_if_fail (nw != NULL, FALSE); + + if (config->priv->repository != NULL) + { + return rename_local (config, old, nw); + } + else + { + return rename_global (config, old, nw); + } +} diff -Nru gitg-0.0.3/gitg/gitg-config.h gitg-0.0.6/gitg/gitg-config.h --- gitg-0.0.3/gitg/gitg-config.h 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-config.h 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,42 @@ +#ifndef __GITG_CONFIG_H__ +#define __GITG_CONFIG_H__ + +#include +#include "gitg-repository.h" + +G_BEGIN_DECLS + +#define GITG_TYPE_CONFIG (gitg_config_get_type ()) +#define GITG_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_CONFIG, GitgConfig)) +#define GITG_CONFIG_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_CONFIG, GitgConfig const)) +#define GITG_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_CONFIG, GitgConfigClass)) +#define GITG_IS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_CONFIG)) +#define GITG_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_CONFIG)) +#define GITG_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_CONFIG, GitgConfigClass)) + +typedef struct _GitgConfig GitgConfig; +typedef struct _GitgConfigClass GitgConfigClass; +typedef struct _GitgConfigPrivate GitgConfigPrivate; + +struct _GitgConfig { + GObject parent; + + GitgConfigPrivate *priv; +}; + +struct _GitgConfigClass { + GObjectClass parent_class; +}; + +GType gitg_config_get_type (void) G_GNUC_CONST; +GitgConfig *gitg_config_new (GitgRepository *repository); + +gchar *gitg_config_get_value (GitgConfig *config, gchar const *key); +gchar *gitg_config_get_value_regex (GitgConfig *config, gchar const *regex); + +gboolean gitg_config_rename (GitgConfig *config, gchar const *old, gchar const *nw); +gboolean gitg_config_set_value (GitgConfig *config, gchar const *key, gchar const *value); + +G_END_DECLS + +#endif /* __GITG_CONFIG_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-data-binding.c gitg-0.0.6/gitg/gitg-data-binding.c --- gitg-0.0.3/gitg/gitg-data-binding.c 2009-02-08 14:35:23.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-data-binding.c 2010-01-24 12:17:16.000000000 +0000 @@ -27,7 +27,7 @@ typedef struct { GObject *object; - + gchar *property; GType type; @@ -82,41 +82,41 @@ { g_return_val_if_fail(G_IS_OBJECT(source), NULL); g_return_val_if_fail(G_IS_OBJECT(dest), NULL); - + GObjectClass *sclass = G_OBJECT_GET_CLASS(source); GObjectClass *dclass = G_OBJECT_GET_CLASS(dest); - + GParamSpec *sspec = g_object_class_find_property(sclass, source_property); - + if (!sspec) { g_warning("No such source property found: %s", source_property); return NULL; } - + GParamSpec *dspec = g_object_class_find_property(dclass, dest_property); - + if (!dspec) { g_warning("No such dest property found: %s", dest_property); return NULL; } - + GitgDataBinding *binding = g_slice_new0(GitgDataBinding); - + binding->flags = flags; - + binding_fill(&binding->source, source, source_property, G_PARAM_SPEC_VALUE_TYPE(sspec), source_to_dest, userdata); binding_fill(&binding->dest, dest, dest_property, G_PARAM_SPEC_VALUE_TYPE(dspec), dest_to_source, userdata); - + binding_connect(binding, &binding->source); - + if (flags & GITG_DATA_BINDING_MUTUAL) binding_connect(binding, &binding->dest); - + g_object_weak_ref(binding->source.object, (GWeakNotify)on_data_binding_destroy, binding); g_object_weak_ref(binding->dest.object, (GWeakNotify)on_data_binding_destroy, binding); - + /* initial value */ on_data_binding_changed(binding->source.object, NULL, binding); return binding; @@ -187,7 +187,7 @@ g_object_weak_unref(binding->source.object, (GWeakNotify)on_data_binding_destroy, binding); g_object_weak_unref(binding->dest.object, (GWeakNotify)on_data_binding_destroy, binding); - + gitg_data_binding_finalize(binding); } @@ -195,11 +195,11 @@ on_data_binding_destroy(GitgDataBinding *binding, GObject *object) { Binding *bd = binding->source.object == object ? &binding->dest : &binding->source; - + /* disconnect notify handler */ if (bd->notify_id) g_signal_handler_disconnect(bd->object, bd->notify_id); - + /* remove weak ref */ g_object_weak_unref(bd->object, (GWeakNotify)on_data_binding_destroy, binding); @@ -216,13 +216,13 @@ /* Transmit to dest */ GValue value = { 0, }; g_value_init(&value, dest->type); - + GValue svalue = { 0, }; g_value_init(&svalue, source->type); - + g_object_get_property(source->object, source->property, &svalue); g_object_get_property(dest->object, dest->property, &value); - + if (source->conversion(&svalue, &value, source->userdata)) { if (dest->notify_id) @@ -233,7 +233,7 @@ if (dest->notify_id) g_signal_handler_unblock(dest->object, dest->notify_id); } - + g_value_unset(&value); g_value_unset(&svalue); } @@ -244,7 +244,7 @@ { GdkColor *clr = g_value_get_boxed(color); gchar *s = gdk_color_to_string(clr); - + g_value_take_string(string, s); return TRUE; } @@ -254,7 +254,7 @@ { gchar const *s = g_value_get_string(string); GdkColor clr; - + gdk_color_parse(s, &clr); g_value_set_boxed(color, &clr); return TRUE; diff -Nru gitg-0.0.3/gitg/gitg-diff-line-renderer.c gitg-0.0.6/gitg/gitg-diff-line-renderer.c --- gitg-0.0.3/gitg/gitg-diff-line-renderer.c 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-diff-line-renderer.c 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,255 @@ +#include "gitg-diff-line-renderer.h" + +#define GITG_DIFF_LINE_RENDERER_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GITG_TYPE_DIFF_LINE_RENDERER, GitgDiffLineRendererPrivate)) + +#ifndef MAX +#define MAX(a, b) (a > b ? a : b) +#endif + +#ifndef MIN +#define MIN(a, b) (a < b ? a : b) +#endif + +/* Properties */ +enum +{ + PROP_0, + PROP_LINE_OLD, + PROP_LINE_NEW +}; + +struct _GitgDiffLineRendererPrivate +{ + gint line_old; + gint line_new; +}; + +G_DEFINE_TYPE (GitgDiffLineRenderer, gitg_diff_line_renderer, GTK_TYPE_CELL_RENDERER) + +static void +gitg_diff_line_renderer_finalize (GObject *object) +{ + G_OBJECT_CLASS (gitg_diff_line_renderer_parent_class)->finalize (object); +} + +static void +gitg_diff_line_renderer_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GitgDiffLineRenderer *self = GITG_DIFF_LINE_RENDERER (object); + + switch (prop_id) + { + case PROP_LINE_OLD: + self->priv->line_old = g_value_get_int (value); + break; + case PROP_LINE_NEW: + self->priv->line_new = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gitg_diff_line_renderer_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GitgDiffLineRenderer *self = GITG_DIFF_LINE_RENDERER (object); + + switch (prop_id) + { + case PROP_LINE_OLD: + g_value_set_int (value, self->priv->line_old); + break; + case PROP_LINE_NEW: + g_value_set_int (value, self->priv->line_new); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gitg_diff_line_renderer_render_impl (GtkCellRenderer *cell, + GdkDrawable *window, + GtkWidget *widget, + GdkRectangle *background_area, + GdkRectangle *cell_area, + GdkRectangle *expose_area, + GtkCellRendererState flags) +{ + GitgDiffLineRenderer *lr = GITG_DIFF_LINE_RENDERER (cell); + + /* Render new/old in the cell area */ + gchar old_str[16]; + gchar new_str[16]; + guint xpad; + guint ypad; + + PangoLayout *layout = gtk_widget_create_pango_layout (widget, ""); + pango_layout_set_width (layout, cell_area->width / 2); + + pango_layout_set_alignment (layout, PANGO_ALIGN_RIGHT); + + if (lr->priv->line_old >= 0) + { + g_snprintf (old_str, sizeof (old_str), "%d", lr->priv->line_old); + } + else + { + *old_str = '\0'; + } + + if (lr->priv->line_new >= 0) + { + g_snprintf (new_str, sizeof (old_str), "%d", lr->priv->line_new); + } + else + { + *new_str = '\0'; + } + + g_object_get (cell, "xpad", &xpad, "ypad", &ypad, NULL); + + pango_layout_set_text (layout, old_str, -1); + gtk_paint_layout (widget->style, + window, + GTK_WIDGET_STATE (widget), + FALSE, + NULL, + widget, + NULL, + cell_area->x + cell_area->width / 2 - 1 - xpad, + cell_area->y, + layout); + + pango_layout_set_text (layout, new_str, -1); + gtk_paint_layout (widget->style, + window, + GTK_WIDGET_STATE (widget), + FALSE, + NULL, + widget, + NULL, + cell_area->x + cell_area->width - xpad, + cell_area->y, + layout); + + g_object_unref (layout); + + gtk_paint_vline (widget->style, + window, + GTK_WIDGET_STATE (widget), + NULL, + widget, + NULL, + background_area->y, + background_area->y + background_area->height, + background_area->x + background_area->width / 2); +} + +static void +gitg_diff_line_renderer_get_size_impl (GtkCellRenderer *cell, + GtkWidget *widget, + GdkRectangle *cell_area, + gint *x_offset, + gint *y_offset, + gint *width, + gint *height) +{ + GitgDiffLineRenderer *lr = GITG_DIFF_LINE_RENDERER (cell); + + /* Get size of this rendering */ + PangoLayout *layout; + gchar str[16]; + gint pixel_width; + gint pixel_height; + guint xpad; + guint ypad; + + g_snprintf(str, sizeof(str), "%d", MAX(MAX(99, lr->priv->line_old), lr->priv->line_new)); + layout = gtk_widget_create_pango_layout (widget, str); + pango_layout_get_pixel_size(layout, &pixel_width, &pixel_height); + + g_object_get (cell, "xpad", &xpad, "ypad", &ypad, NULL); + + pixel_width = pixel_width * 2 + xpad * 4 + 3; + pixel_height += ypad * 2; + + if (width) + { + *width = pixel_width; + } + + if (height) + { + *height = pixel_height; + } + + if (x_offset) + { + *x_offset = 0; + } + + if (y_offset) + { + *y_offset = 0; + } + + g_object_unref (G_OBJECT (layout)); +} + +static void +gitg_diff_line_renderer_class_init (GitgDiffLineRendererClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkCellRendererClass *cell_renderer_class = GTK_CELL_RENDERER_CLASS (klass); + + cell_renderer_class->render = gitg_diff_line_renderer_render_impl; + cell_renderer_class->get_size = gitg_diff_line_renderer_get_size_impl; + + object_class->finalize = gitg_diff_line_renderer_finalize; + object_class->set_property = gitg_diff_line_renderer_set_property; + object_class->get_property = gitg_diff_line_renderer_get_property; + + g_object_class_install_property (object_class, + PROP_LINE_OLD, + g_param_spec_int ("line-old", + "Line Old", + "Line Old", + -1, + G_MAXINT, + -1, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property (object_class, + PROP_LINE_NEW, + g_param_spec_int ("line-new", + "Line New", + "Line New", + -1, + G_MAXINT, + -1, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_type_class_add_private (object_class, sizeof(GitgDiffLineRendererPrivate)); +} + +static void +gitg_diff_line_renderer_init (GitgDiffLineRenderer *self) +{ + self->priv = GITG_DIFF_LINE_RENDERER_GET_PRIVATE (self); +} + +GitgDiffLineRenderer * +gitg_diff_line_renderer_new () +{ + return g_object_new (GITG_TYPE_DIFF_LINE_RENDERER, NULL); +} diff -Nru gitg-0.0.3/gitg/gitg-diff-line-renderer.h gitg-0.0.6/gitg/gitg-diff-line-renderer.h --- gitg-0.0.3/gitg/gitg-diff-line-renderer.h 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-diff-line-renderer.h 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,36 @@ +#ifndef __GITG_DIFF_LINE_RENDERER_H__ +#define __GITG_DIFF_LINE_RENDERER_H__ + +#include + +G_BEGIN_DECLS + +#define GITG_TYPE_DIFF_LINE_RENDERER (gitg_diff_line_renderer_get_type ()) +#define GITG_DIFF_LINE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_LINE_RENDERER, GitgDiffLineRenderer)) +#define GITG_DIFF_LINE_RENDERER_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_LINE_RENDERER, GitgDiffLineRenderer const)) +#define GITG_DIFF_LINE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_DIFF_LINE_RENDERER, GitgDiffLineRendererClass)) +#define GITG_IS_DIFF_LINE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DIFF_LINE_RENDERER)) +#define GITG_IS_DIFF_LINE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_DIFF_LINE_RENDERER)) +#define GITG_DIFF_LINE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_DIFF_LINE_RENDERER, GitgDiffLineRendererClass)) + +typedef struct _GitgDiffLineRenderer GitgDiffLineRenderer; +typedef struct _GitgDiffLineRendererClass GitgDiffLineRendererClass; +typedef struct _GitgDiffLineRendererPrivate GitgDiffLineRendererPrivate; + +struct _GitgDiffLineRenderer { + GtkCellRenderer parent; + + GitgDiffLineRendererPrivate *priv; +}; + +struct _GitgDiffLineRendererClass { + GtkCellRendererClass parent_class; +}; + +GType gitg_diff_line_renderer_get_type (void) G_GNUC_CONST; +GitgDiffLineRenderer *gitg_diff_line_renderer_new (void); + + +G_END_DECLS + +#endif /* __GITG_DIFF_LINE_RENDERER_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-diff-view.c gitg-0.0.6/gitg/gitg-diff-view.c --- gitg-0.0.3/gitg/gitg-diff-view.c 2009-04-05 15:55:40.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-diff-view.c 2010-01-24 12:17:16.000000000 +0000 @@ -22,6 +22,8 @@ #include "gitg-diff-view.h" #include "gitg-types.h" +#include "gitg-diff-line-renderer.h" + #include #include @@ -40,6 +42,17 @@ static void on_buffer_insert_text(GtkTextBuffer *buffer, GtkTextIter *iter, gchar const *text, gint len, GitgDiffView *view); static void on_buffer_delete_range(GtkTextBuffer *buffer, GtkTextIter *start, GtkTextIter *end, GitgDiffView *view); +static void +line_renderer_size_func (GtkSourceGutter *gutter, + GtkCellRenderer *cell, + GitgDiffView *view); +static void +line_renderer_data_func (GtkSourceGutter *gutter, + GtkCellRenderer *cell, + gint line_number, + gboolean current_line, + GitgDiffView *view); + static gboolean on_idle_scan(GitgDiffView *view); /* Signals */ @@ -54,7 +67,7 @@ enum { PROP_0, - + PROP_DIFF_ENABLED }; @@ -93,11 +106,18 @@ Region *regions; Region *last_region; GSequence *regions_index; - + guint scan_id; gboolean diff_enabled; GtkTextBuffer *current_buffer; GtkTextTag *invisible_tag; + GtkTextTag *subheader_tag; + + GitgDiffLineRenderer *line_renderer; + + Region *lines_current_region; + gint lines_previous_line; + guint lines_counters[2]; }; G_DEFINE_TYPE(GitgDiffView, gitg_diff_view, GTK_TYPE_SOURCE_VIEW) @@ -110,9 +130,9 @@ { if (!region) return; - + region_free(region->next); - + if (region->type == GITG_DIFF_ITER_TYPE_HEADER) g_slice_free(Header, (Header *)region); else @@ -124,7 +144,7 @@ { region_free(view->priv->regions); g_sequence_remove_range(g_sequence_get_begin_iter(view->priv->regions_index), g_sequence_get_end_iter(view->priv->regions_index)); - + view->priv->regions = NULL; view->priv->last_region = NULL; view->priv->last_scan_line = 0; @@ -135,30 +155,32 @@ g_source_remove(view->priv->scan_id); view->priv->scan_id = 0; } - + if (view->priv->current_buffer && remove_signals) { g_signal_handlers_disconnect_by_func(view->priv->current_buffer, G_CALLBACK(on_buffer_insert_text), view); g_signal_handlers_disconnect_by_func(view->priv->current_buffer, G_CALLBACK(on_buffer_delete_range), view); - gtk_text_tag_table_remove(gtk_text_buffer_get_tag_table(view->priv->current_buffer), view->priv->invisible_tag); - - g_object_unref(view->priv->current_buffer); - + gtk_text_tag_table_remove (gtk_text_buffer_get_tag_table(view->priv->current_buffer), view->priv->invisible_tag); + gtk_text_tag_table_remove (gtk_text_buffer_get_tag_table(view->priv->current_buffer), view->priv->subheader_tag); + + g_object_unref (view->priv->current_buffer); + view->priv->current_buffer = NULL; view->priv->invisible_tag = NULL; + view->priv->subheader_tag = NULL; } } - + static void -gitg_diff_view_finalize(GObject *object) +gitg_diff_view_finalize (GObject *object) { - GitgDiffView *view = GITG_DIFF_VIEW(object); - - regions_free(view, TRUE); - g_sequence_free(view->priv->regions_index); - - G_OBJECT_CLASS(gitg_diff_view_parent_class)->finalize(object); + GitgDiffView *view = GITG_DIFF_VIEW (object); + + regions_free (view, TRUE); + g_sequence_free (view->priv->regions_index); + + G_OBJECT_CLASS (gitg_diff_view_parent_class)->finalize (object); } static void @@ -172,7 +194,7 @@ gitg_diff_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgDiffView *self = GITG_DIFF_VIEW(object); - + switch (prop_id) { case PROP_DIFF_ENABLED: @@ -201,15 +223,23 @@ } static void +gitg_diff_view_constructed (GObject *object) +{ + g_object_set (object, "show-line-numbers", FALSE, NULL); +} + +static void gitg_diff_view_class_init(GitgDiffViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - + object_class->finalize = gitg_diff_view_finalize; object_class->set_property = gitg_diff_view_set_property; object_class->get_property = gitg_diff_view_get_property; + object_class->constructed = gitg_diff_view_constructed; + widget_class->expose_event = gitg_diff_view_expose; diff_view_signals[HEADER_ADDED] = @@ -249,98 +279,56 @@ { /* remove all regions for a new buffer */ regions_free(self, TRUE); - + self->priv->current_buffer = g_object_ref(gtk_text_view_get_buffer(GTK_TEXT_VIEW(self))); g_signal_connect_after(self->priv->current_buffer, "insert-text", G_CALLBACK(on_buffer_insert_text), self); g_signal_connect_after(self->priv->current_buffer, "delete-range", G_CALLBACK(on_buffer_delete_range), self); self->priv->scan_id = g_idle_add((GSourceFunc)on_idle_scan, self); self->priv->invisible_tag = gtk_text_buffer_create_tag(self->priv->current_buffer, "GitgHunkInvisible", "invisible", TRUE, NULL); -} - -static void -gitg_diff_view_init(GitgDiffView *self) -{ - self->priv = GITG_DIFF_VIEW_GET_PRIVATE(self); - - self->priv->regions_index = g_sequence_new(NULL); - - g_signal_connect(self, "notify::buffer", G_CALLBACK(on_buffer_set), NULL); -} + self->priv->subheader_tag = gtk_text_buffer_create_tag(self->priv->current_buffer, "GitgHunkSubHeader", "invisible", TRUE, NULL); -GitgDiffView* -gitg_diff_view_new() -{ - return g_object_new(GITG_TYPE_DIFF_VIEW, NULL); + gtk_text_tag_set_priority (self->priv->subheader_tag, + gtk_text_tag_table_get_size (gtk_text_buffer_get_tag_table (self->priv->current_buffer)) - 1); } -/* This function is taken from gtk+/tests/testtext.c */ static void -get_lines (GtkTextView *text_view, gint first_y, gint last_y, GArray *buffer_coords, GArray *line_heights, GArray *numbers, gint *countp) +gitg_diff_view_init (GitgDiffView *self) { - GtkTextIter iter; - gint count; - gint size; - gint last_line_num = -1; - - g_array_set_size(buffer_coords, 0); - g_array_set_size(numbers, 0); - - if (line_heights != NULL) - g_array_set_size(line_heights, 0); - - /* Get iter at first y */ - gtk_text_view_get_line_at_y(text_view, &iter, first_y, NULL); - - /* For each iter, get its location and add it to the arrays. - * Stop when we pass last_y */ - count = 0; - size = 0; - - while (!gtk_text_iter_is_end(&iter)) - { - gint y, height; - - gtk_text_view_get_line_yrange(text_view, &iter, &y, &height); - - g_array_append_val(buffer_coords, y); - - if (line_heights) - g_array_append_val(line_heights, height); - - last_line_num = gtk_text_iter_get_line(&iter); - g_array_append_val(numbers, last_line_num); + GtkSourceGutter *gutter; - ++count; + self->priv = GITG_DIFF_VIEW_GET_PRIVATE (self); - if ((y + height) >= last_y) - break; + self->priv->regions_index = g_sequence_new (NULL); + self->priv->line_renderer = gitg_diff_line_renderer_new (); - gtk_text_iter_forward_line(&iter); - } + g_object_set (self->priv->line_renderer, "xpad", 2, NULL); - if (gtk_text_iter_is_end(&iter)) - { - gint y, height; - gint line_num; + gutter = gtk_source_view_get_gutter (GTK_SOURCE_VIEW (self), GTK_TEXT_WINDOW_LEFT); - gtk_text_view_get_line_yrange(text_view, &iter, &y, &height); + gtk_source_gutter_insert (gutter, + GTK_CELL_RENDERER (self->priv->line_renderer), + 0); - line_num = gtk_text_iter_get_line(&iter); + gtk_source_gutter_set_cell_data_func (gutter, + GTK_CELL_RENDERER (self->priv->line_renderer), + (GtkSourceGutterDataFunc)line_renderer_data_func, + self, + NULL); - if (line_num != last_line_num) - { - g_array_append_val(buffer_coords, y); - - if (line_heights) - g_array_append_val(line_heights, height); + gtk_source_gutter_set_cell_size_func (gutter, + GTK_CELL_RENDERER (self->priv->line_renderer), + (GtkSourceGutterSizeFunc)line_renderer_size_func, + self, + NULL); - g_array_append_val(numbers, line_num); - ++count; - } - } + g_signal_connect (self, "notify::buffer", G_CALLBACK (on_buffer_set), NULL); +} - *countp = count; +GitgDiffView * +gitg_diff_view_new () +{ + return g_object_new (GITG_TYPE_DIFF_VIEW, NULL); } static gint @@ -348,18 +336,41 @@ { guint la = ((Region *)a)->line; guint lb = ((Region *)b)->line; - + return la < lb ? -1 : (la > lb ? 1 : 0); } static void -ensure_max_line(GitgDiffView *view, Hunk *hunk) +ensure_max_line (GitgDiffView *view, Hunk *hunk) { guint num = hunk->region.next ? hunk->region.next->line - hunk->region.line : 0; - guint m = MAX(hunk->new + num, hunk->old + num); + guint m = MAX (hunk->new + num, hunk->old + num); if (m > view->priv->max_line_count) + { view->priv->max_line_count = m; + + gtk_source_gutter_queue_draw (gtk_source_view_get_gutter (GTK_SOURCE_VIEW (view), GTK_TEXT_WINDOW_LEFT)); + } +} + +static void +hide_header_details (GitgDiffView *view, + Region *region) +{ + /* Just hide the lines 2->n lines from region to region->next */ + GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); + GtkTextIter startiter; + GtkTextIter enditer; + + gint line = region->line + 2; + + gtk_text_buffer_get_iter_at_line (buffer, &startiter, line); + + enditer = startiter; + gtk_text_iter_forward_lines (&enditer, region->next->line - line); + + gtk_text_buffer_apply_tag (buffer, view->priv->subheader_tag, &startiter, &enditer); } static void @@ -369,9 +380,11 @@ { view->priv->last_region->next = region; region->prev = view->priv->last_region; - + if (view->priv->last_region->type == GITG_DIFF_ITER_TYPE_HUNK) + { ensure_max_line(view, (Hunk *)view->priv->last_region); + } } else { @@ -380,35 +393,48 @@ } view->priv->last_region = region; + + if (region->prev && region->prev->type == GITG_DIFF_ITER_TYPE_HEADER) + { + /* Hide header details if first hunk is scanned */ + hide_header_details (view, region->prev); + } + g_sequence_insert_sorted(view->priv->regions_index, region, index_compare, NULL); - + GitgDiffIter iter; iter.userdata = view; iter.userdata2 = region; - + if (region->type == GITG_DIFF_ITER_TYPE_HEADER) + { g_signal_emit(view, diff_view_signals[HEADER_ADDED], 0, &iter); + } else if (region->type == GITG_DIFF_ITER_TYPE_HUNK) + { g_signal_emit(view, diff_view_signals[HUNK_ADDED], 0, &iter); + } } static void parse_hunk_info(Hunk *hunk, GtkTextIter *iter) { GtkTextIter end = *iter; - + gtk_text_iter_forward_to_line_end(&end); gchar *text = gtk_text_iter_get_text(iter, &end); - + hunk->old = 0; hunk->new = 0; - + gchar *old = g_utf8_strchr(text, -1, '-'); gchar *new = g_utf8_strchr(text, -1, '+'); if (!old || !new) + { return; - + } + hunk->old = atoi(old + 1); hunk->new = atoi(new + 1); @@ -422,22 +448,26 @@ GtkTextIter iter; GtkTextBuffer *buffer = view->priv->current_buffer; gtk_text_buffer_get_iter_at_line(buffer, &iter, view->priv->last_scan_line); - + while (view->priv->last_scan_line <= last_line) { GtkTextIter start = iter; GtkTextIter end = iter; if (!gtk_text_iter_forward_line(&iter)) + { break; + } ++view->priv->last_scan_line; - + if (!gtk_text_iter_forward_chars(&end, 3)) + { continue; + } gchar *text = gtk_text_iter_get_text(&start, &end); - + if (g_str_has_prefix(text, "@@ ")) { /* start new hunk region */ @@ -445,41 +475,45 @@ hunk->region.type = GITG_DIFF_ITER_TYPE_HUNK; hunk->region.line = view->priv->last_scan_line - 1; hunk->region.visible = TRUE; - + parse_hunk_info(hunk, &start); - + add_region(view, (Region *)hunk); - + g_free(text); continue; } - + g_free(text); if (!gtk_text_iter_forward_chars(&end, 7)) + { continue; - + } + text = gtk_text_iter_get_text(&start, &end); - - if (g_str_has_prefix(text, "diff --git")) + + if (g_str_has_prefix(text, "diff --git") || g_str_has_prefix(text, "diff --cc")) { /* start new header region */ Header *header = g_slice_new(Header); header->region.type = GITG_DIFF_ITER_TYPE_HEADER; header->region.line = view->priv->last_scan_line - 1; header->region.visible = TRUE; - + header->index_to[0] = '\0'; header->index_from[0] = '\0'; - + add_region(view, (Region *)header); } - + g_free(text); } - + if (view->priv->last_region && view->priv->last_region->type == GITG_DIFF_ITER_TYPE_HUNK) + { ensure_max_line(view, (Hunk *)view->priv->last_region); + } } static Region * @@ -487,20 +521,24 @@ { GSequenceIter *iter; Region tmp = {0, NULL, NULL, line}; - + iter = g_sequence_search(view->priv->regions_index, &tmp, index_compare, NULL); - + if (!iter || g_sequence_iter_is_begin(iter)) + { return NULL; + } if (!g_sequence_iter_is_end(iter)) { Region *ret = (Region *)g_sequence_get(iter); - + if (ret->line == line) + { return ret->visible ? ret : NULL; + } } - + Region *ret = (Region *)g_sequence_get(g_sequence_iter_prev(iter)); return ret->visible ? ret : NULL; } @@ -509,17 +547,20 @@ line_has_prefix(GitgDiffView *view, guint line, gchar const *prefix) { GtkTextIter iter; - + gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &iter, line); GtkTextIter end = iter; + if (!gtk_text_iter_forward_chars(&end, g_utf8_strlen(prefix, -1))) + { return FALSE; - + } + gchar *text = gtk_text_iter_get_text(&iter, &end); gboolean ret = g_str_has_prefix(text, prefix); g_free(text); - + return ret; } @@ -539,160 +580,104 @@ get_initial_counters(GitgDiffView *view, Region *region, guint line, guint counters[2]) { guint i; - + counters[0] = counters[1] = 0; - + for (i = region->line + 1; i < line; ++i) { if (draw_old(view, i)) ++counters[0]; - + if (draw_new(view, i)) ++counters[1]; } } static void -paint_line_numbers(GitgDiffView *view, GdkEventExpose *event) +line_renderer_size_func (GtkSourceGutter *gutter, + GtkCellRenderer *cell, + GitgDiffView *view) { - GtkTextView *text_view; - GdkWindow *win; - PangoLayout *layout; - GArray *numbers; - GArray *pixels; - gchar str_old[16]; /* we don't expect more than ten million lines ;-) */ - gchar str_new[16]; - gint y1, y2; - gint count; - gint margin_width; - gint text_width; - gint i; - GtkTextIter cur; - - text_view = GTK_TEXT_VIEW(view); - win = gtk_text_view_get_window(text_view, GTK_TEXT_WINDOW_LEFT); - - y1 = event->area.y; - y2 = y1 + event->area.height; - - /* get the extents of the line printing */ - gtk_text_view_window_to_buffer_coords(text_view, GTK_TEXT_WINDOW_LEFT, 0, y1, NULL, &y1); - gtk_text_view_window_to_buffer_coords(text_view, GTK_TEXT_WINDOW_LEFT, 0, y2, NULL, &y2); + g_object_set (cell, + "line_old", view->priv->max_line_count, + "line_new", view->priv->max_line_count, + NULL); +} - numbers = g_array_new(FALSE, FALSE, sizeof(gint)); - pixels = g_array_new(FALSE, FALSE, sizeof(gint)); +static void +line_renderer_data_func (GtkSourceGutter *gutter, + GtkCellRenderer *cell, + gint line_number, + gboolean current_line, + GitgDiffView *view) +{ + gint line_old = -1; + gint line_new = -1; + Region **current = &view->priv->lines_current_region; - /* get the line numbers and y coordinates. */ - get_lines(text_view, y1, y2, pixels, NULL, numbers, &count); - - /* A zero-lined document should display a "1"; we don't need to worry about - scrolling effects of the text widget in this special case */ + ensure_scan (view, line_number); - if (count == 0) + if (!*current || view->priv->lines_previous_line + 1 != line_number) { - gint y = 0; - gint n = 0; - count = 1; - g_array_append_val(pixels, y); - g_array_append_val(numbers, n); - } - - /* Ensure scanned until last needed line */ - guint last = g_array_index(numbers, gint, count - 1); - ensure_scan(view, last); + *current = find_current_region (view, line_number); - /* set size */ - g_snprintf(str_old, sizeof(str_old), "%d", MAX(99, view->priv->max_line_count)); - layout = gtk_widget_create_pango_layout(GTK_WIDGET(view), str_old); - - pango_layout_get_pixel_size(layout, &text_width, NULL); - - /* determine the width of the left margin. */ - margin_width = text_width * 2 + 9; - - guint extra_width = 0; - - if (gtk_source_view_get_show_line_marks(GTK_SOURCE_VIEW(view))) - extra_width = 20; - - pango_layout_set_width(layout, text_width); - pango_layout_set_alignment(layout, PANGO_ALIGN_RIGHT); - - gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(text_view), GTK_TEXT_WINDOW_LEFT, margin_width + extra_width); - gtk_text_buffer_get_iter_at_mark(text_view->buffer, &cur, gtk_text_buffer_get_insert(text_view->buffer)); + if (*current) + { + get_initial_counters (view, + *current, + line_number, + view->priv->lines_counters); + } + } - Region *current = NULL; - guint counters[2]; + view->priv->lines_previous_line = line_number; - for (i = 0; i < count; ++i) + if (*current && + (*current)->type == GITG_DIFF_ITER_TYPE_HUNK && + line_number != (*current)->line) { - gint pos; - gint line_to_paint; - - gtk_text_view_buffer_to_window_coords(text_view, GTK_TEXT_WINDOW_LEFT, 0, g_array_index(pixels, gint, i), NULL, &pos); - line_to_paint = g_array_index(numbers, gint, i); - - if (!current) - { - current = find_current_region(view, line_to_paint); - - if (current) - get_initial_counters(view, current, line_to_paint, counters); - } - - *str_old = '\0'; - *str_new = '\0'; + Hunk *hunk = (Hunk *)*current; - if (current && current->type == GITG_DIFF_ITER_TYPE_HUNK && line_to_paint != current->line) + if (draw_old (view, line_number)) { - Hunk *hunk = (Hunk *)current; - - if (draw_old(view, line_to_paint)) - g_snprintf(str_old, sizeof(str_old), "%d", hunk->old + counters[0]++); - - if (draw_new(view, line_to_paint)) - g_snprintf(str_new, sizeof(str_new), "%d", hunk->new + counters[1]++); + line_old = hunk->old + view->priv->lines_counters[0]++; } - - pango_layout_set_markup(layout, str_old, -1); - gtk_paint_layout(GTK_WIDGET(view)->style, win, GTK_WIDGET_STATE(view), FALSE, NULL, GTK_WIDGET(view), NULL, margin_width - 7 - text_width, pos, layout); - - pango_layout_set_markup(layout, str_new, -1); - gtk_paint_layout(GTK_WIDGET(view)->style, win, GTK_WIDGET_STATE(view), FALSE, NULL, GTK_WIDGET(view), NULL, margin_width - 2, pos, layout); - if (current && current->next && line_to_paint == current->next->line - 1) + if (draw_new (view, line_number)) { - counters[0] = counters[1] = 0; - current = current->next->visible ? current->next : NULL; + line_new = hunk->new + view->priv->lines_counters[1]++; } } - - gtk_paint_vline(GTK_WIDGET(view)->style, win, GTK_WIDGET_STATE(view), NULL, GTK_WIDGET(view), NULL, event->area.y, event->area.y + event->area.height, 4 + text_width); - g_array_free(pixels, TRUE); - g_array_free(numbers, TRUE); + g_object_set (cell, "line_old", line_old, "line_new", line_new, NULL); - g_object_unref(G_OBJECT(layout)); + if (*current && (*current)->next && line_number == (*current)->next->line - 1) + { + view->priv->lines_counters[0] = view->priv->lines_counters[1] = 0; + *current = (*current)->next->visible ? (*current)->next : NULL; + } } -static gint -gitg_diff_view_expose(GtkWidget *widget, GdkEventExpose *event) +static gint +gitg_diff_view_expose (GtkWidget *widget, + GdkEventExpose *event) { - gboolean ret = FALSE; - GtkTextView *text_view = GTK_TEXT_VIEW(widget); - GitgDiffView *view = GITG_DIFF_VIEW(widget); + GitgDiffView *view = GITG_DIFF_VIEW (widget); - if (event->window == gtk_text_view_get_window(text_view, GTK_TEXT_WINDOW_LEFT) && - view->priv->diff_enabled && gtk_source_view_get_show_line_numbers(GTK_SOURCE_VIEW(view))) + /* Prepare for new round of expose on the line renderer */ + view->priv->lines_current_region = NULL; + view->priv->lines_previous_line = -1; + view->priv->lines_counters[0] = 0; + view->priv->lines_counters[1] = 0; + + if (GTK_WIDGET_CLASS (gitg_diff_view_parent_class)->expose_event) { - paint_line_numbers(GITG_DIFF_VIEW(widget), event); - ret = TRUE; + return GTK_WIDGET_CLASS (gitg_diff_view_parent_class)->expose_event (widget, event); + } + else + { + return FALSE; } - - if (GTK_WIDGET_CLASS(gitg_diff_view_parent_class)->expose_event) - ret = ret || GTK_WIDGET_CLASS(gitg_diff_view_parent_class)->expose_event(widget, event); - - return ret; } void @@ -709,19 +694,19 @@ gitg_diff_view_remove_hunk(GitgDiffView *view, GtkTextIter *iter) { g_return_if_fail(GITG_IS_DIFF_VIEW(view)); - + /* removes hunk at iter and if it was the last hunk of a file, also removes the file header */ Region *region = find_current_region(view, gtk_text_iter_get_line(iter)); - + if (!region) return; - + GtkTextIter start; GtkTextIter end; - + gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &start, region->line); - + if (region->next) { gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &end, region->next->line - 1); @@ -731,9 +716,9 @@ { gtk_text_buffer_get_end_iter(view->priv->current_buffer, &end); } - + Region *prev = find_current_region(view, region->line - 1); - + if ((!region->next || region->next->type == GITG_DIFF_ITER_TYPE_HEADER) && (!prev || prev->type == GITG_DIFF_ITER_TYPE_HEADER)) { if (!prev) @@ -741,7 +726,7 @@ else gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &start, region->line); } - + gtk_text_buffer_delete(view->priv->current_buffer, &start, &end); } @@ -753,7 +738,7 @@ iter->userdata = view; iter->userdata2 = view->priv->regions; - + return iter->userdata2 != NULL; } @@ -761,10 +746,10 @@ gitg_diff_iter_forward(GitgDiffIter *iter) { g_return_val_if_fail(iter != NULL, FALSE); - + if (!iter->userdata2) return FALSE; - + iter->userdata2 = ((Region *)iter->userdata2)->next; return iter->userdata2 != NULL; @@ -778,7 +763,7 @@ iter->userdata = view; iter->userdata2 = view->priv->last_region; - + return iter->userdata2 != NULL; } @@ -786,14 +771,14 @@ gitg_diff_iter_backward(GitgDiffIter *iter) { g_return_val_if_fail(iter != NULL, FALSE); - + if (!iter->userdata2) return FALSE; - + iter->userdata2 = ((Region *)iter->userdata2)->prev; return iter->userdata2 != NULL; - + } GitgDiffIterType @@ -802,7 +787,7 @@ g_return_val_if_fail(iter != NULL, 0); g_return_val_if_fail(GITG_IS_DIFF_VIEW(iter->userdata), 0); g_return_val_if_fail(iter->userdata2 != NULL, 0); - + return ((Region *)iter->userdata2)->type; } @@ -810,12 +795,12 @@ region_iter_range(GitgDiffView *view, Region *region, GtkTextIter *start, GtkTextIter *end) { gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, start, region->line); - + Region *next = region->next; - + while (next && next->type != region->type) next = next->next; - + if (next) gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, end, next->line); else @@ -831,21 +816,21 @@ GitgDiffView *view = GITG_DIFF_VIEW(iter->userdata); Region *region = (Region *)iter->userdata2; - + if (region->visible == visible) return; - + GtkTextIter start; GtkTextIter end; - + region_iter_range(view, region, &start, &end); region->visible = visible; - + /* Propagate visibility to hunks */ if (region->type == GITG_DIFF_ITER_TYPE_HEADER) { Region *next = region->next; - + while (next && next->type != GITG_DIFF_ITER_TYPE_HEADER) { next->visible = visible; @@ -856,11 +841,21 @@ if (visible) { gtk_text_buffer_remove_tag(view->priv->current_buffer, view->priv->invisible_tag, &start, &end); + + if (region->type == GITG_DIFF_ITER_TYPE_HEADER) + { + hide_header_details (view, region); + } } else { + if (region->type == GITG_DIFF_ITER_TYPE_HEADER) + { + gtk_text_buffer_remove_tag (view->priv->current_buffer, view->priv->subheader_tag, &start, &end); + } + gtk_text_buffer_apply_tag(view->priv->current_buffer, view->priv->invisible_tag, &start, &end); - } + } } static gboolean @@ -875,14 +870,14 @@ num = header->region.next->line - header->region.line; else num = gtk_text_buffer_get_line_count(buffer) - header->region.line; - + gtk_text_buffer_get_iter_at_line(buffer, &iter, header->region.line); - + for (i = 0; i < num; ++i) { if (!gtk_text_iter_forward_line(&iter)) return FALSE; - + GtkTextIter end = iter; gtk_text_iter_forward_to_line_end(&end); @@ -895,18 +890,19 @@ gchar *start = line + strlen(match); gchar *sep = strstr(start, ".."); gboolean ret; - + if (sep) { gchar *last = strstr(sep, " "); - + gchar *bet = strstr(start, ","); + if (!last) last = line + strlen(line); - - strncpy(header->index_from, start, sep - start); + + strncpy(header->index_from, start, (bet ? bet : sep) - start); strncpy(header->index_to, sep + 2, last - (sep + 2)); - - header->index_from[sep - start] = '\0'; + + header->index_from[(bet ? bet : sep) - start] = '\0'; header->index_to[last - (sep + 2)] = '\0'; ret = TRUE; @@ -915,14 +911,14 @@ { ret = FALSE; } - + g_free(line); return ret; } - + g_free(line); } - + return FALSE; } @@ -930,25 +926,25 @@ gitg_diff_iter_get_index(GitgDiffIter *iter, gchar **from, gchar **to) { Region *region = (Region *)iter->userdata2; - + while (region && region->type != GITG_DIFF_ITER_TYPE_HEADER) region = region->prev; - + if (!region) return FALSE; - + Header *header = (Header *)region; gboolean ret = TRUE; - + if (!*(header->index_to)) ret = header_parse_index((GitgDiffView *)iter->userdata, header); - + if (!ret) return FALSE; - + *from = header->index_from; *to = header->index_to; - + return TRUE; } @@ -959,11 +955,11 @@ GtkTextIter end; GdkRectangle rect; GtkTextView *textview = GTK_TEXT_VIEW(view); - + gtk_text_view_get_visible_rect(textview, &rect); gtk_text_view_get_iter_at_location(textview, &start, rect.x, rect.y); gtk_text_view_get_iter_at_location(textview, &end, rect.x + rect.width, rect.y + rect.height); - + return gtk_text_iter_in_range(iter, &start, &end) || gtk_text_iter_equal(iter, &end); } @@ -971,12 +967,12 @@ try_scan(GitgDiffView *view) { gint lines = gtk_text_buffer_get_line_count(view->priv->current_buffer); - + if (view->priv->last_scan_line > lines) return FALSE; guint num = MIN(lines - view->priv->last_scan_line, IDLE_SCAN_COUNT); - + if (num == 0) return FALSE; @@ -987,10 +983,10 @@ guint last = view->priv->last_scan_line; ensure_scan(view, view->priv->last_scan_line + num); g_snprintf(str, sizeof(str), "%u", view->priv->max_line_count); - + if (strlen(str) > max_line) gtk_widget_queue_draw(GTK_WIDGET(view)); - + return last != view->priv->last_scan_line; } @@ -1022,7 +1018,7 @@ { if (try_scan(view)) return TRUE; - + view->priv->scan_id = 0; return FALSE; } diff -Nru gitg-0.0.3/gitg/gitg-diff-view.h gitg-0.0.6/gitg/gitg-diff-view.h --- gitg-0.0.3/gitg/gitg-diff-view.h 2009-03-01 07:57:43.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-diff-view.h 2010-01-24 12:17:16.000000000 +0000 @@ -57,14 +57,14 @@ struct _GitgDiffView { GtkSourceView parent; - + GitgDiffViewPrivate *priv; }; struct _GitgDiffViewClass { GtkSourceViewClass parent_class; - + void (*header_added)(GitgDiffView *view, GitgDiffIter *iter); void (*hunk_added)(GitgDiffView *view, GitgDiffIter *iter); }; diff -Nru gitg-0.0.3/gitg/gitg-dirs.c gitg-0.0.6/gitg/gitg-dirs.c --- gitg-0.0.3/gitg/gitg-dirs.c 2009-04-22 18:40:24.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-dirs.c 2010-01-24 12:17:16.000000000 +0000 @@ -29,7 +29,7 @@ gitg_dirs_get_data_dir() { static gchar *datadir = NULL; - + if (!datadir) { #ifdef ENABLE_BUNDLE @@ -40,7 +40,7 @@ datadir = g_strdup(GITG_DATADIR); #endif } - + return datadir; } @@ -49,20 +49,20 @@ { gchar const *datadir = gitg_dirs_get_data_dir(); gchar *ret; - + ret = g_build_filename(datadir, first, NULL); gchar const *item; - + va_list ap; va_start(ap, first); - + while ((item = va_arg(ap, gchar const *))) { gchar *tmp = ret; ret = g_build_filename(ret, item, NULL); g_free(tmp); } - + va_end(ap); return ret; } diff -Nru gitg-0.0.3/gitg/gitg-dnd.c gitg-0.0.6/gitg/gitg-dnd.c --- gitg-0.0.3/gitg/gitg-dnd.c 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-dnd.c 2010-02-21 09:34:11.000000000 +0000 @@ -0,0 +1,1038 @@ +#include "gitg-dnd.h" +#include "gitg-ref.h" +#include "gitg-cell-renderer-path.h" +#include "gitg-utils.h" +#include +#include "gitg-window.h" +#include "gitg-branch-actions.h" + +enum +{ + DRAG_TARGET_REF = 1, + DRAG_TARGET_TREEISH, + DRAG_TARGET_REVISION, + DRAG_TARGET_TEXT, + DRAG_TARGET_URI, + DRAG_TARGET_DIRECT_SAVE +}; + +#define XDS_ATOM gdk_atom_intern ("XdndDirectSave0", FALSE) +#define TEXT_ATOM gdk_atom_intern ("text/plain", FALSE) + +#define MAX_XDS_ATOM_VAL_LEN 4096 + +static GtkTargetEntry target_dest_entries[] = { + {"gitg-ref", GTK_TARGET_SAME_WIDGET, DRAG_TARGET_REF} +}; + +static GtkTargetEntry target_source_entries[] = { + {"x-gitg/treeish-list", GTK_TARGET_OTHER_APP, DRAG_TARGET_TREEISH}, + {"XdndDirectSave0", GTK_TARGET_OTHER_APP, DRAG_TARGET_DIRECT_SAVE} +}; + +typedef struct +{ + GtkTreeView *tree_view; + GitgRef *ref; + GitgRef *target; + GitgRef *cursor_ref; + + GitgDndCallback callback; + GitgDndRevisionCallback revision_callback; + gpointer callback_data; + + gdouble x; + gdouble y; + + gboolean is_drag; + GtkTargetList *target_list; + GtkTargetList *revision_target_list; + GitgRevision *revision; + + guint scroll_timeout; + gchar *xds_destination; + gchar *xds_filename; +} GitgDndData; + +#define GITG_DND_DATA_KEY "GitgDndDataKey" + +#define GITG_DND_GET_DATA(widget) ((GitgDndData *)g_object_get_data(G_OBJECT(widget), GITG_DND_DATA_KEY)) + +static void +remove_scroll_timeout (GitgDndData *data) +{ + if (data->scroll_timeout != 0) + { + g_source_remove (data->scroll_timeout); + data->scroll_timeout = 0; + } +} + + +static GitgDndData * +gitg_dnd_data_new () +{ + GitgDndData *data = g_slice_new0 (GitgDndData); + + data->target_list = gtk_target_list_new (target_dest_entries, + G_N_ELEMENTS (target_dest_entries)); + + data->revision_target_list = gtk_target_list_new (target_source_entries, + G_N_ELEMENTS (target_source_entries)); + + gtk_target_list_add_text_targets (data->revision_target_list, DRAG_TARGET_TEXT); + gtk_target_list_add_uri_targets (data->revision_target_list, DRAG_TARGET_URI); + + return data; +} + +static void +gitg_dnd_data_free (GitgDndData *data) +{ + gtk_target_list_unref (data->target_list); + gtk_target_list_unref (data->revision_target_list); + + remove_scroll_timeout (data); + + g_slice_free (GitgDndData, data); +} + +static GitgRef * +get_ref_at_pos (GtkTreeView *tree_view, + gint x, + gint y, + gint *hot_x, + gint *hot_y, + GitgCellRendererPath **renderer, + GtkTreePath **tp) +{ + gint cell_x; + gint cell_y; + GtkTreePath *path; + GtkTreeViewColumn *column; + + if (!gtk_tree_view_get_path_at_pos (tree_view, + x, + y, + &path, + &column, + &cell_x, + &cell_y)) + { + return NULL; + } + + if (hot_y) + { + *hot_y = cell_y; + } + + GtkCellRenderer *cell = gitg_utils_find_cell_at_pos (tree_view, column, path, cell_x); + + if (!cell || !GITG_IS_CELL_RENDERER_PATH (cell)) + { + return NULL; + } + + if (renderer) + { + *renderer = GITG_CELL_RENDERER_PATH (cell); + } + + GitgRef *ref = gitg_cell_renderer_path_get_ref_at_pos (GTK_WIDGET (tree_view), + GITG_CELL_RENDERER_PATH (cell), + cell_x, + hot_x); + + if (tp) + { + *tp = path; + } + else + { + gtk_tree_path_free (path); + } + + return ref; +} + +static GitgRevision * +get_revision_at_pos (GtkTreeView *tree_view, + gint x, + gint y, + GtkTreePath **tp) +{ + gint cell_x; + gint cell_y; + GtkTreePath *path; + GtkTreeViewColumn *column; + GtkTreeModel *model; + GtkTreeIter iter; + GitgRevision *revision; + + if (!gtk_tree_view_get_path_at_pos (tree_view, + x, + y, + &path, + &column, + &cell_x, + &cell_y)) + { + return NULL; + } + + model = gtk_tree_view_get_model (tree_view); + + if (!gtk_tree_model_get_iter (model, &iter, path)) + { + return NULL; + } + + gtk_tree_model_get (model, &iter, 0, &revision, -1); + + if (revision && tp) + { + *tp = path; + } + else + { + gtk_tree_path_free (path); + } + + return revision; +} + +static gboolean +can_drag (GitgRef *ref) +{ + GitgRefType type = gitg_ref_get_ref_type (ref); + + switch (type) + { + case GITG_REF_TYPE_BRANCH: + case GITG_REF_TYPE_REMOTE: + case GITG_REF_TYPE_STASH: + return TRUE; + break; + default: + return FALSE; + break; + } +} + +static gboolean +can_drop (GitgRef *source, GitgRef *dest) +{ + if (gitg_ref_equal (source, dest)) + { + return FALSE; + } + + GitgRefType source_type = gitg_ref_get_ref_type (source); + GitgRefType dest_type = gitg_ref_get_ref_type (dest); + + if (source_type == GITG_REF_TYPE_BRANCH) + { + return dest_type == GITG_REF_TYPE_BRANCH || dest_type == GITG_REF_TYPE_REMOTE; + } + else if (source_type == GITG_REF_TYPE_REMOTE) + { + return dest_type == GITG_REF_TYPE_BRANCH; + } + else if (source_type == GITG_REF_TYPE_STASH) + { + return dest_type == GITG_REF_TYPE_BRANCH; + } + + return FALSE; +} + +/* Copied from gitg-label-renderer + * TODO: refactor + */ +static inline guint8 +convert_color_channel (guint8 src, + guint8 alpha) +{ + return alpha ? src / (alpha / 255.0) : 0; +} + +static void +convert_bgra_to_rgba (guint8 const *src, + guint8 *dst, + gint width, + gint height) +{ + guint8 const *src_pixel = src; + guint8 * dst_pixel = dst; + int y; + + for (y = 0; y < height; y++) + { + int x; + + for (x = 0; x < width; x++) + { + dst_pixel[0] = convert_color_channel (src_pixel[2], + src_pixel[3]); + dst_pixel[1] = convert_color_channel (src_pixel[1], + src_pixel[3]); + dst_pixel[2] = convert_color_channel (src_pixel[0], + src_pixel[3]); + dst_pixel[3] = src_pixel[3]; + + dst_pixel += 4; + src_pixel += 4; + } + } +} + +static GdkPixbuf * +create_revision_drag_icon (GtkTreeView *tree_view, + GitgRevision *revision) +{ + gchar const *subject = gitg_revision_get_subject (revision); + gchar *sha1 = gitg_revision_get_sha1 (revision); + + /* Only take first 8 characters */ + sha1[8] = '\0'; + + gchar *text = g_strdup_printf ("%s: %s", sha1, subject); + + PangoLayout *layout = gtk_widget_create_pango_layout (GTK_WIDGET (tree_view), text); + gint width; + gint height; + + pango_layout_get_pixel_size (layout, &width, &height); + + cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width + 4, height + 4); + cairo_t *context = cairo_create (surface); + + cairo_rectangle (context, 0, 0, width + 4, height + 4); + cairo_set_source_rgb (context, 1, 1, 1); + cairo_fill (context); + + cairo_translate (context, 2, 2); + cairo_set_source_rgb (context, 0, 0, 0); + pango_cairo_show_layout (context, layout); + + guint8 *data = cairo_image_surface_get_data (surface); + GdkPixbuf *ret = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, width + 4, height + 4); + guint8 *pixdata = gdk_pixbuf_get_pixels (ret); + + convert_bgra_to_rgba (data, pixdata, width + 4, height + 4); + + cairo_destroy (context); + cairo_surface_destroy (surface); + + g_object_unref (layout); + + g_free (text); + g_free (sha1); + + return ret; +} + +static gchar * +generate_format_patch_filename (GitgRevision *revision) +{ + gchar *name = gitg_revision_get_format_patch_name (revision); + gchar *filename = g_strdup_printf ("0001-%s.patch", name); + + g_free (name); + return filename; +} + +static void +begin_drag (GtkWidget *widget, + GdkEvent *event, + GitgDndData *data) +{ + + GtkTreeView *tree_view = GTK_TREE_VIEW (widget); + gint hot_x; + gint hot_y; + GitgCellRendererPath *cell; + GitgRef *ref = get_ref_at_pos (tree_view, + (gint)data->x, + (gint)data->y, + &hot_x, + &hot_y, + &cell, + NULL); + + if (ref && !can_drag (ref)) + { + return; + } + else if (ref) + { + /* This is a DND operation on a ref */ + data->ref = ref; + gitg_ref_set_state (ref, GITG_REF_STATE_NONE); + + GdkDragContext *context = gtk_drag_begin (widget, + data->target_list, + GDK_ACTION_MOVE, + 1, + event); + + guint minwidth; + guint h; + gdk_display_get_maximal_cursor_size (gtk_widget_get_display (widget), &minwidth, &h); + + GdkPixbuf *pixbuf = gitg_cell_renderer_path_render_ref (GTK_WIDGET (tree_view), + cell, + ref, + minwidth + 1); + + if (pixbuf) + { + gtk_drag_set_icon_pixbuf (context, pixbuf, hot_x, hot_y); + g_object_unref (pixbuf); + } + } + else + { + /* This is a normal DND operation which is just possibly just about + a SHA */ + GitgRevision *revision; + GtkTreePath *path; + + revision = get_revision_at_pos (tree_view, + (gint)data->x, + (gint)data->y, + &path); + + if (revision) + { + /* Make a DND for the revision */ + data->revision = revision; + + GdkDragContext *context = gtk_drag_begin (widget, + data->revision_target_list, + GDK_ACTION_COPY, + 1, + event); + GdkPixbuf *icon; + gchar *filename; + + filename = generate_format_patch_filename (revision); + + gdk_property_change (context->source_window, + XDS_ATOM, TEXT_ATOM, + 8, GDK_PROP_MODE_REPLACE, + (guchar *) filename, + strlen (filename)); + + data->xds_filename = filename; + + icon = create_revision_drag_icon (tree_view, revision); + + if (icon) + { + gtk_drag_set_icon_pixbuf (context, icon, 0, 0); + g_object_unref (icon); + } + + gtk_tree_path_free (path); + } + } +} + +static void +update_highlight (GitgDndData *data, gint x, gint y) +{ + GitgRef *ref = get_ref_at_pos (data->tree_view, + x, + y, + NULL, + NULL, + NULL, + NULL); + + if (ref != data->cursor_ref) + { + if (data->cursor_ref) + { + gitg_ref_set_state (data->cursor_ref, GITG_REF_STATE_NONE); + } + + if (ref && gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_NONE) + { + gitg_ref_set_state (ref, GITG_REF_STATE_PRELIGHT); + + gdk_window_set_cursor (gtk_tree_view_get_bin_window (data->tree_view), + gdk_cursor_new (GDK_HAND2)); + } + else + { + gdk_window_set_cursor (gtk_tree_view_get_bin_window (data->tree_view), + NULL); + } + + data->cursor_ref = ref; + gtk_widget_queue_draw (GTK_WIDGET (data->tree_view)); + } +} + +static gboolean +vertical_autoscroll (GitgDndData *data) +{ + GdkRectangle visible_rect; + gint y; + gint offset; + gfloat value; + + gdk_window_get_pointer (gtk_tree_view_get_bin_window (data->tree_view), NULL, &y, NULL); + gtk_tree_view_convert_bin_window_to_tree_coords (data->tree_view, 0, y, NULL, &y); + + gtk_tree_view_get_visible_rect (data->tree_view, &visible_rect); + + /* see if we are near the edge. */ + offset = y - (visible_rect.y + 2 * 15); + + if (offset > 0) + { + offset = y - (visible_rect.y + visible_rect.height - 2 * 15); + + if (offset < 0) + { + return TRUE; + } + } + + GtkAdjustment *adj = gtk_tree_view_get_vadjustment (data->tree_view); + + value = CLAMP (gtk_adjustment_get_value (adj) + offset, 0.0, + adj->upper - adj->page_size); + + gtk_adjustment_set_value (adj, value); + return TRUE; +} + +static void +add_scroll_timeout (GitgDndData *data) +{ + if (data->scroll_timeout == 0) + { + data->scroll_timeout = g_timeout_add (50, + (GSourceFunc)vertical_autoscroll, + data); + } +} + + +static gboolean +gitg_drag_source_event_cb (GtkWidget *widget, + GdkEvent *event, + GitgDndData *data) +{ + gboolean retval = FALSE; + + switch (event->type) + { + case GDK_BUTTON_PRESS: + if (event->button.button == 1) + { + data->x = event->button.x; + data->y = event->button.y; + + data->is_drag = TRUE; + data->ref = NULL; + data->target = NULL; + } + break; + case GDK_BUTTON_RELEASE: + if (event->button.button == 1) + { + data->is_drag = FALSE; + + if (data->target) + { + gitg_ref_set_state (data->target, GITG_REF_STATE_NONE); + } + + remove_scroll_timeout (data); + } + break; + case GDK_MOTION_NOTIFY: + if (data->is_drag && (event->motion.state & GDK_BUTTON1_MASK)) + { + if (gtk_drag_check_threshold (widget, data->x, data->y, event->motion.x, event->motion.y)) + { + data->is_drag = FALSE; + begin_drag (widget, event, data); + + retval = TRUE; + } + } + else if (!data->is_drag && !(event->motion.state & GDK_BUTTON1_MASK)) + { + update_highlight (data, (gint)event->motion.x, (gint)event->motion.y); + } + break; + default: + break; + } + + return retval; +} + +static gboolean +gitg_drag_source_motion_cb (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time, + GitgDndData *data) +{ + if (!data->ref && !data->revision) + { + return FALSE; + } + + GitgRef *ref; + gint dx; + gint dy; + + gtk_tree_view_convert_widget_to_bin_window_coords (data->tree_view, + x, + y, + &dx, + &dy); + + ref = get_ref_at_pos (GTK_TREE_VIEW (widget), + dx, + dy, + NULL, + NULL, + NULL, + NULL); + + gboolean ret = FALSE; + + if (ref != data->target) + { + if (data->target) + { + gitg_ref_set_state (data->target, GITG_REF_STATE_NONE); + gtk_widget_queue_draw (widget); + } + + if (data->ref && data->callback) + { + data->callback (data->ref, ref, FALSE, data->callback_data); + } + else if (data->revision && data->revision_callback) + { + data->revision_callback (data->revision, ref, FALSE, data->callback_data); + } + } + + if ((data->ref && ref && can_drop (data->ref, ref)) || + (data->revision && ref && gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH)) + { + if (ref != data->target) + { + gitg_ref_set_state (ref, GITG_REF_STATE_SELECTED); + data->target = ref; + + gtk_widget_queue_draw (widget); + } + + gdk_drag_status (context, GDK_ACTION_MOVE, time); + ret = TRUE; + } + else + { + if (data->target) + { + data->target = NULL; + gtk_widget_queue_draw (widget); + } + } + + if (data->ref) + { + add_scroll_timeout (data); + } + + return ret; +} + +static gboolean +gitg_drag_source_drop_cb (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time, + GitgDndData *data) +{ + if (!(data->ref || data->revision) || !data->target) + { + return FALSE; + } + + gboolean ret = FALSE; + + if (data->ref && data->callback) + { + ret = data->callback (data->ref, data->target, TRUE, data->callback_data); + } + else if (data->revision && data->revision_callback) + { + ret = data->revision_callback (data->revision, data->target, TRUE, data->callback_data); + } + + gtk_drag_finish (context, ret, FALSE, time); + return ret; +} + +static gboolean +gitg_drag_source_leave_cb (GtkWidget *widget, + GdkDragContext *context, + guint time, + GitgDndData *data) +{ + remove_scroll_timeout (data); + return FALSE; +} + +static void +remove_trailing_newlines (gchar **lines) +{ + gint lastnewline = -1; + gchar **ptr = lines; + gint i = 0; + + while (ptr && *ptr) + { + if (lastnewline == -1 && **ptr == '\0') + { + lastnewline = i; + } + else if (lastnewline != -1 && **ptr != '\0') + { + lastnewline = -1; + } + + ++i; + ++ptr; + } + + if (lastnewline == -1) + { + return; + } + + while (lines[lastnewline]) + { + g_free (lines[lastnewline]); + lines[lastnewline] = NULL; + + ++lastnewline; + } +} + +static gchar * +revision_to_text (GitgRepository *repository, + GitgRevision *revision) +{ + gchar **lines; + gchar *sha1 = gitg_revision_get_sha1 (revision); + + lines = gitg_repository_command_with_outputv (repository, + NULL, + "log", + "-1", + "--pretty=format:%h: %s%n%n%b", + sha1, + NULL); + + remove_trailing_newlines (lines); + gchar *ret = g_strjoinv ("\n", lines); + + g_strfreev (lines); + g_free (sha1); + + return ret; +} + +static gchar * +revision_to_uri (GitgRepository *repository, + GitgRevision *revision) +{ + gchar const *path = gitg_repository_get_path (repository); + gchar *sha1 = gitg_revision_get_sha1 (revision); + + gchar *ret = g_strdup_printf ("gitg://%s:%s", path, sha1); + g_free (sha1); + + return ret; +} + +static gchar * +revision_to_treeish (GitgRepository *repository, + GitgRevision *revision) +{ + gchar const *path = gitg_repository_get_path (repository); + gchar *sha1 = gitg_revision_get_sha1 (revision); + + gchar *ret = g_strdup_printf ("%s\n%s", path, sha1); + g_free (sha1); + + return ret; +} + +static gchar * +get_xds_filename (GdkDragContext *context) +{ + if (context == NULL || context->source_window == NULL) + { + return NULL; + } + + guint len; + gchar *ret = NULL; + + if (gdk_property_get (context->source_window, + XDS_ATOM, TEXT_ATOM, + 0, MAX_XDS_ATOM_VAL_LEN, + FALSE, NULL, NULL, &len, + (unsigned char **) &ret)) + { + gchar *dupped = g_strndup (ret, len); + g_free (ret); + + return dupped; + } + + return NULL; +} + +static gboolean +has_direct_save (GitgDndData *data, + GdkDragContext *context) +{ + gboolean ret; + + if (!g_list_find (context->targets, XDS_ATOM)) + { + return FALSE; + } + + gchar *filename = get_xds_filename (context); + ret = filename && *filename && g_strcmp0 (data->xds_filename, filename) != 0; + g_free (filename); + + return ret; +} + +static void +gitg_drag_source_data_get_cb (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection, + guint info, + guint time, + GitgDndData *data) +{ + if (!data->revision) + { + return; + } + + GitgRepository *repository = GITG_REPOSITORY (gtk_tree_view_get_model (GTK_TREE_VIEW (widget))); + + if (has_direct_save (data, context)) + { + gchar *destination = get_xds_filename (context); + + if (destination && *destination) + { + data->xds_destination = g_strdup (destination); + + gtk_selection_data_set (selection, + selection->target, + 8, + "S", + 1); + } + else + { + gtk_selection_data_set (selection, + selection->target, + 8, + "E", + 1); + } + + g_free (destination); + return; + } + + switch (info) + { + case DRAG_TARGET_TEXT: + { + gchar *text = revision_to_text (repository, data->revision); + gtk_selection_data_set_text (selection, text, -1); + g_free (text); + } + break; + case DRAG_TARGET_TREEISH: + { + gchar *treeish = revision_to_treeish (repository, data->revision); + + gtk_selection_data_set (selection, selection->target, 8, treeish, strlen (treeish)); + g_free (treeish); + } + break; + case DRAG_TARGET_URI: + { + gchar *uri = revision_to_uri (repository, data->revision); + gchar *uris[] = {uri, NULL}; + + gtk_selection_data_set_uris (selection, uris); + g_free (uri); + } + break; + } +} + +static void +gitg_drag_source_end_cb (GtkTreeView *tree_view, + GdkDragContext *context, + GitgDndData *data) +{ + if (data->revision) + { + gdk_property_delete (context->source_window, XDS_ATOM); + + if (data->xds_destination != NULL) + { + /* Do extract it there then */ + GitgWindow *window = GITG_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (data->tree_view))); + gitg_window_add_branch_action (window, + gitg_branch_actions_format_patch (window, + data->revision, + data->xds_destination)); + + g_free (data->xds_destination); + data->xds_destination = NULL; + } + + if (data->xds_filename != NULL) + { + g_free (data->xds_filename); + data->xds_filename = NULL; + } + } +} + +static void +gitg_drag_source_data_delete_cb (GtkTreeView *tree_view, + GdkDragContext *context, + GitgDndData *data) +{ + g_signal_stop_emission_by_name (tree_view, "drag-data-delete"); +} + +void +gitg_dnd_enable (GtkTreeView *tree_view, + GitgDndCallback callback, + GitgDndRevisionCallback revision_callback, + gpointer callback_data) +{ + if (GITG_DND_GET_DATA (tree_view)) + { + return; + } + + GitgDndData *data = gitg_dnd_data_new (); + + data->tree_view = tree_view; + data->callback = callback; + data->revision_callback = revision_callback; + data->callback_data = callback_data; + + g_object_set_data_full (G_OBJECT (tree_view), + GITG_DND_DATA_KEY, + data, + (GDestroyNotify)gitg_dnd_data_free); + + gtk_widget_add_events (GTK_WIDGET (tree_view), + gtk_widget_get_events (GTK_WIDGET (tree_view)) | + GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | + GDK_BUTTON_MOTION_MASK); + + gtk_drag_dest_set (GTK_WIDGET (tree_view), + 0, + target_dest_entries, + G_N_ELEMENTS (target_dest_entries), + GDK_ACTION_MOVE); + + g_signal_connect (tree_view, + "drag-data-get", + G_CALLBACK (gitg_drag_source_data_get_cb), + data); + + g_signal_connect (tree_view, + "button-press-event", + G_CALLBACK (gitg_drag_source_event_cb), + data); + + g_signal_connect (tree_view, + "button-release-event", + G_CALLBACK (gitg_drag_source_event_cb), + data); + + g_signal_connect (tree_view, + "motion-notify-event", + G_CALLBACK (gitg_drag_source_event_cb), + data); + + g_signal_connect (tree_view, + "drag-motion", + G_CALLBACK (gitg_drag_source_motion_cb), + data); + + g_signal_connect (tree_view, + "drag-drop", + G_CALLBACK (gitg_drag_source_drop_cb), + data); + + g_signal_connect (tree_view, + "drag-leave", + G_CALLBACK (gitg_drag_source_leave_cb), + data); + + g_signal_connect (tree_view, + "drag-end", + G_CALLBACK (gitg_drag_source_end_cb), + data); + + g_signal_connect (tree_view, + "drag-data-delete", + G_CALLBACK (gitg_drag_source_data_delete_cb), + data); +} + +void +gitg_dnd_disable (GtkTreeView *tree_view) +{ + GitgDndData *data = GITG_DND_GET_DATA (tree_view); + + if (data) + { + g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_event_cb, data); + g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_motion_cb, data); + g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_drop_cb, data); + g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_leave_cb, data); + g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_data_get_cb, data); + g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_end_cb, data); + + g_object_set_data (G_OBJECT (tree_view), GITG_DND_DATA_KEY, NULL); + } +} diff -Nru gitg-0.0.3/gitg/gitg-dnd.h gitg-0.0.6/gitg/gitg-dnd.h --- gitg-0.0.3/gitg/gitg-dnd.h 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-dnd.h 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,23 @@ +#ifndef __GITG_DND_H__ +#define __GITG_DND_H__ + +#include +#include "gitg-ref.h" +#include "gitg-revision.h" + +G_BEGIN_DECLS + +typedef gboolean (*GitgDndCallback)(GitgRef *source, GitgRef *dest, gboolean dropped, gpointer callback_data); +typedef gboolean (*GitgDndRevisionCallback)(GitgRevision *source, GitgRef *dest, gboolean dropped, gpointer callback_data); + +void gitg_dnd_enable (GtkTreeView *tree_view, + GitgDndCallback callback, + GitgDndRevisionCallback revision_callback, + gpointer callback_data); + +void gitg_dnd_disable (GtkTreeView *tree_view); + +G_END_DECLS + +#endif /* __GITG_DND_H__ */ + diff -Nru gitg-0.0.3/gitg/gitg-label-renderer.c gitg-0.0.6/gitg/gitg-label-renderer.c --- gitg-0.0.3/gitg/gitg-label-renderer.c 2009-02-08 14:36:23.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-label-renderer.c 2010-01-24 12:17:16.000000000 +0000 @@ -28,34 +28,41 @@ #define MARGIN 3 gint -gitg_label_renderer_width(GtkWidget *widget, PangoFontDescription *font, GSList *labels) +get_label_width (PangoLayout *layout, GitgRef *ref) +{ + gint w; + gchar *smaller = g_strdup_printf("%s", + gitg_ref_get_shortname(ref)); + + pango_layout_set_markup(layout, smaller, -1); + + pango_layout_get_pixel_size(layout, &w, NULL); + g_free(smaller); + + return w + PADDING * 2; +} + +gint +gitg_label_renderer_width(GtkWidget *widget, PangoFontDescription *description, GSList *labels) { gint width = 0; GSList *item; - + if (labels == NULL) return 0; PangoContext *ctx = gtk_widget_get_pango_context(widget); PangoLayout *layout = pango_layout_new(ctx); - pango_layout_set_font_description(layout, font); - + pango_layout_set_font_description(layout, description); + for (item = labels; item; item = item->next) { - gint w; - GitgRef *ref = (GitgRef *)item->data; - gchar *smaller = g_strdup_printf("%s", ref->shortname); - pango_layout_set_markup(layout, smaller, -1); - - pango_layout_get_pixel_size(layout, &w, NULL); - - width += w + PADDING * 2 + MARGIN; - g_free(smaller); + width += get_label_width (layout, GITG_REF (item->data)) + MARGIN; } - + g_object_unref(layout); //g_object_unref(ctx); - + return width + MARGIN; } @@ -65,39 +72,130 @@ cairo_move_to(ctx, x + radius, y); cairo_rel_line_to(ctx, width - 2 * radius, 0); cairo_arc(ctx, x + width - radius, y + radius, radius, 1.5 * M_PI, 0.0); - + cairo_rel_line_to(ctx, 0, height - 2 * radius); cairo_arc(ctx, x + width - radius, y + height - radius, radius, 0.0, 0.5 * M_PI); - + cairo_rel_line_to(ctx, -(width - radius * 2), 0); cairo_arc(ctx, x + radius, y + height - radius, radius, 0.5 * M_PI, M_PI); - + cairo_rel_line_to(ctx, 0, -(height - radius * 2)); cairo_arc(ctx, x + radius, y + radius, radius, M_PI, 1.5 * M_PI); } static void -set_source_for_ref_type(cairo_t *context, GitgRefType type) +get_type_color (GitgRefType type, gdouble *r, gdouble *g, gdouble *b) { switch (type) { case GITG_REF_TYPE_NONE: - cairo_set_source_rgb(context, 1, 1, 0.8); + *r = 1; + *g = 1; + *b = 0.8; break; case GITG_REF_TYPE_BRANCH: - cairo_set_source_rgb(context, 0.8, 1, 0.5); + *r = 0.8; + *g = 1; + *b = 0.5; break; case GITG_REF_TYPE_REMOTE: - cairo_set_source_rgb(context, 0.5, 0.8, 1); + *r = 0.5; + *g = 0.8; + *b = 1; break; case GITG_REF_TYPE_TAG: - cairo_set_source_rgb(context, 1, 1, 0); + *r = 1; + *g = 1; + *b = 0; break; + case GITG_REF_TYPE_STASH: + *r = 1; + *g = 0.8; + *b = 0.5; + break; + default: + *r = 1; + *g = 1; + *b = 1; + break; + } +} + +static void +get_ref_color (GitgRef *ref, gdouble *r, gdouble *g, gdouble *b) +{ + if (gitg_ref_get_working (ref)) + { + /* Orange */ + *r = 1; + *g = 0.7; + *b = 0; + } + else + { + get_type_color (gitg_ref_get_ref_type (ref), r, g, b); + } +} + +static void +set_source_for_ref_type(cairo_t *context, GitgRef *ref, gboolean use_state) +{ + if (use_state) + { + GitgRefState state = gitg_ref_get_state (ref); + + if (state == GITG_REF_STATE_SELECTED) + { + cairo_set_source_rgb(context, 1, 1, 1); + return; + } + else if (state == GITG_REF_STATE_PRELIGHT) + { + gdouble r, g, b; + get_ref_color (ref, &r, &g, &b); + + cairo_set_source_rgba(context, r, g, b, 0.3); + return; + } } + + gdouble r, g, b; + get_ref_color (ref, &r, &g, &b); + + cairo_set_source_rgb (context, r, g, b); +} + +static gint +render_label (cairo_t *context, PangoLayout *layout, GitgRef *ref, gint x, gint y, gint height, gboolean use_state) +{ + gint w; + gint h; + gchar *smaller = g_strdup_printf("%s", + gitg_ref_get_shortname(ref)); + + pango_layout_set_markup(layout, smaller, -1); + pango_layout_get_pixel_size(layout, &w, &h); + + // draw rounded rectangle + rounded_rectangle(context, x + 0.5, y + MARGIN + 0.5, w + PADDING * 2, height - MARGIN * 2, 5); + + set_source_for_ref_type(context, ref, use_state); + cairo_fill_preserve(context); + + cairo_set_source_rgb(context, 0, 0, 0); + cairo_stroke(context); + + cairo_save(context); + cairo_translate(context, x + PADDING, y + (height - h) / 2.0 + 0.5); + pango_cairo_show_layout(context, layout); + cairo_restore(context); + + g_free(smaller); + return w; } void -gitg_label_renderer_draw(GtkWidget *widget, PangoFontDescription *font, cairo_t *context, GSList *labels, GdkRectangle *area) +gitg_label_renderer_draw(GtkWidget *widget, PangoFontDescription *description, cairo_t *context, GSList *labels, GdkRectangle *area) { GSList *item; double pos = MARGIN + 0.5; @@ -107,37 +205,121 @@ PangoContext *ctx = gtk_widget_get_pango_context(widget); PangoLayout *layout = pango_layout_new(ctx); - pango_layout_set_font_description(layout, font); + pango_layout_set_font_description(layout, description); for (item = labels; item; item = item->next) { - GitgRef *ref = (GitgRef *)item->data; - gint w; - gint h; - gchar *smaller = g_strdup_printf("%s", ref->shortname); - - pango_layout_set_markup(layout, smaller, -1); - pango_layout_get_pixel_size(layout, &w, &h); - - // draw rounded rectangle - rounded_rectangle(context, pos + 0.5, area->y + MARGIN + 0.5, w + PADDING * 2, area->height - MARGIN * 2, 5); - - - set_source_for_ref_type(context, ref->type); - cairo_fill_preserve(context); - - cairo_set_source_rgb(context, 0, 0, 0); - cairo_stroke(context); - - cairo_save(context); - cairo_translate(context, pos + PADDING, area->y + (area->height - h) / 2.0 + 0.5); - pango_cairo_show_layout(context, layout); - cairo_restore(context); - + gint w = render_label (context, layout, GITG_REF (item->data), pos, area->y, area->height, TRUE); pos += w + PADDING * 2 + MARGIN; - g_free(smaller); } - + g_object_unref(layout); cairo_restore(context); } + + +GitgRef * +gitg_label_renderer_get_ref_at_pos (GtkWidget *widget, PangoFontDescription *font, GSList *labels, gint x, gint *hot_x) +{ + if (!labels) + { + return NULL; + } + + PangoContext *ctx = gtk_widget_get_pango_context(widget); + PangoLayout *layout = pango_layout_new(ctx); + pango_layout_set_font_description(layout, font); + + gint start = MARGIN; + GitgRef *ret = NULL; + GSList *item; + + for (item = labels; item; item = item->next) + { + gint width = get_label_width (layout, GITG_REF (item->data)); + + if (x >= start && x <= start + width) + { + ret = GITG_REF (item->data); + + if (hot_x) + { + *hot_x = x - start; + } + + break; + } + + start += width + MARGIN; + } + + g_object_unref(layout); + return ret; +} + +static inline guint8 +convert_color_channel (guint8 src, + guint8 alpha) +{ + return alpha ? src / (alpha / 255.0) : 0; +} + +static void +convert_bgra_to_rgba (guint8 const *src, + guint8 *dst, + gint width, + gint height) +{ + guint8 const *src_pixel = src; + guint8 * dst_pixel = dst; + int y; + + for (y = 0; y < height; y++) + { + int x; + + for (x = 0; x < width; x++) + { + dst_pixel[0] = convert_color_channel (src_pixel[2], + src_pixel[3]); + dst_pixel[1] = convert_color_channel (src_pixel[1], + src_pixel[3]); + dst_pixel[2] = convert_color_channel (src_pixel[0], + src_pixel[3]); + dst_pixel[3] = src_pixel[3]; + + dst_pixel += 4; + src_pixel += 4; + } + } +} + +GdkPixbuf * +gitg_label_renderer_render_ref (GtkWidget *widget, PangoFontDescription *description, GitgRef *ref, gint height, gint minwidth) +{ + PangoContext *ctx = gtk_widget_get_pango_context(widget); + PangoLayout *layout = pango_layout_new(ctx); + pango_layout_set_font_description(layout, description); + + gint width = MAX(get_label_width (layout, ref), minwidth); + + cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width + 2, height + 2); + cairo_t *context = cairo_create (surface); + + cairo_set_line_width (context, 1); + + render_label (context, layout, ref, 1, 1, height, FALSE); + + guint8 *data = cairo_image_surface_get_data (surface); + GdkPixbuf *ret = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, width + 2, height + 2); + guint8 *pixdata = gdk_pixbuf_get_pixels (ret); + + convert_bgra_to_rgba (data, pixdata, width + 2, height + 2); + + cairo_destroy (context); + cairo_surface_destroy (surface); + + g_object_unref (layout); + + return ret; +} diff -Nru gitg-0.0.3/gitg/gitg-label-renderer.h gitg-0.0.6/gitg/gitg-label-renderer.h --- gitg-0.0.3/gitg/gitg-label-renderer.h 2009-02-08 14:36:30.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-label-renderer.h 2010-01-23 21:03:30.000000000 +0000 @@ -25,9 +25,14 @@ #include #include +#include "gitg-ref.h" gint gitg_label_renderer_width(GtkWidget *widget, PangoFontDescription *description, GSList *labels); void gitg_label_renderer_draw(GtkWidget *widget, PangoFontDescription *description, cairo_t *context, GSList *labels, GdkRectangle *area); +GitgRef *gitg_label_renderer_get_ref_at_pos (GtkWidget *widget, PangoFontDescription *description, GSList *labels, gint x, gint *hot_x); + +GdkPixbuf *gitg_label_renderer_render_ref (GtkWidget *widget, PangoFontDescription *description, GitgRef *ref, gint height, gint minwidth); + #endif /* __GITG_LABEL_RENDERER_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-lane.c gitg-0.0.6/gitg/gitg-lane.c --- gitg-0.0.3/gitg/gitg-lane.c 2009-02-08 14:36:37.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-lane.c 2010-01-24 12:17:16.000000000 +0000 @@ -41,7 +41,7 @@ dup->color = gitg_color_copy(lane->color); dup->from = g_slist_copy(lane->from); dup->type = lane->type; - + return dup; } @@ -50,7 +50,7 @@ { gitg_color_unref(lane->color); g_slist_free(lane->from); - + if (GITG_IS_LANE_BOUNDARY(lane)) g_slice_free(GitgLaneBoundary, (GitgLaneBoundary *)lane); else @@ -68,7 +68,7 @@ { GitgLane *lane = g_slice_new0(GitgLane); lane->color = color ? gitg_color_ref(color) : gitg_color_next(); - + return lane; } @@ -76,11 +76,11 @@ gitg_lane_convert_boundary(GitgLane *lane, GitgLaneType type) { GitgLaneBoundary *boundary = g_slice_new(GitgLaneBoundary); - + boundary->lane = *lane; boundary->lane.type |= type; - + g_slice_free(GitgLane, lane); - + return boundary; } diff -Nru gitg-0.0.3/gitg/gitg-lanes.c gitg-0.0.6/gitg/gitg-lanes.c --- gitg-0.0.3/gitg/gitg-lanes.c 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-lanes.c 2010-01-24 12:17:16.000000000 +0000 @@ -56,15 +56,15 @@ /* list of last N GitgRevisions used to backtrack in case of lane collapse/reactivation */ GSList *previous; - + /* list of LaneContainer resembling the current lanes state for the next revision */ GSList *lanes; - + /* hash table of rev hash -> CollapsedLane where rev hash is the hash to be expected on the lane */ GHashTable *collapsed; - + gint inactive_max; gint inactive_collapse; gint inactive_gap; @@ -94,7 +94,7 @@ collapsed->color = gitg_color_ref(container->lane->color); collapsed->from = container->from; collapsed->to = container->to; - + return collapsed; } @@ -103,7 +103,7 @@ { g_slist_foreach(lanes->priv->lanes, (GFunc)lane_container_free, NULL); g_slist_free(lanes->priv->lanes); - + lanes->priv->lanes = NULL; } @@ -124,13 +124,13 @@ { if (pos) *pos = p; - + return container; } ++p; } - + return NULL; } @@ -139,10 +139,10 @@ gitg_lanes_finalize(GObject *object) { GitgLanes *self = GITG_LANES(object); - + gitg_lanes_reset(self); g_hash_table_destroy(self->priv->collapsed); - + G_OBJECT_CLASS(gitg_lanes_parent_class)->finalize(object); } @@ -150,7 +150,7 @@ gitg_lanes_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgLanes *self = GITG_LANES(object); - + switch (prop_id) { case PROP_INACTIVE_MAX: @@ -175,7 +175,7 @@ gitg_lanes_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GitgLanes *self = GITG_LANES(object); - + switch (prop_id) { case PROP_INACTIVE_MAX: @@ -200,11 +200,11 @@ gitg_lanes_class_init(GitgLanesClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_lanes_finalize; object_class->set_property = gitg_lanes_set_property; object_class->get_property = gitg_lanes_get_property; - + g_object_class_install_property(object_class, PROP_INACTIVE_MAX, g_param_spec_int("inactive-max", "INACTIVE_MAX", @@ -279,10 +279,10 @@ { GSList *lns = NULL; GSList *item; - + for (item = lanes->priv->lanes; item; item = item->next) lns = g_slist_prepend(lns, gitg_lane_copy(((LaneContainer*)item->data)->lane)); - + return g_slist_reverse(lns); } @@ -291,11 +291,11 @@ { free_lanes(lanes); gitg_color_reset(); - + g_slist_foreach(lanes->priv->previous, (GFunc)gitg_revision_unref, NULL); g_slist_free(lanes->priv->previous); lanes->priv->previous = NULL; - + g_hash_table_remove_all(lanes->priv->collapsed); } @@ -305,12 +305,12 @@ GitgLane *lane = gitg_lane_copy(container->lane); lane->type = GITG_LANE_TYPE_NONE; g_slist_free(lane->from); - + gitg_lane_free(container->lane); container->lane = lane; container->lane->from = g_slist_prepend(NULL, GINT_TO_POINTER((gint)(index))); - + if (container->to) ++container->inactive; } @@ -319,7 +319,7 @@ update_lane_merge_indices(GSList *from, gint8 index, gint direction) { GSList *item; - + for (item = from; item; item = g_slist_next(item)) { gint8 idx = GPOINTER_TO_INT(item->data); @@ -333,11 +333,11 @@ update_merge_indices(GSList *lanes, gint8 index, gint direction) { GSList *item; - + for (item = lanes; item; item = g_slist_next(item)) { GitgLane *lane = (GitgLane *)item->data; - + update_lane_merge_indices(lane->from, index, direction); } } @@ -347,7 +347,7 @@ { CollapsedLane *collapsed = collapsed_lane_new(container); collapsed->index = index; - + g_hash_table_insert(lanes->priv->collapsed, (gpointer)container->to, collapsed); } @@ -357,33 +357,33 @@ /* backtrack for inactive-collapse revisions and remove this container from those revisions, appropriately updating merge indices etc */ GSList *item; - + add_collapsed(lanes, container, index); - + for (item = lanes->priv->previous; item; item = g_slist_next(item)) { GitgRevision *revision = GITG_REVISION(item->data); GSList *lns = gitg_revision_get_lanes(revision); - + /* remove lane at 'index' and update merge indices for the lanes after 'index' in the list */ if (item->next) { GSList *collapsed = g_slist_nth(lns, index); GitgLane *lane = (GitgLane *)collapsed->data; - + gint8 newindex = GPOINTER_TO_INT(lane->from->data); lns = gitg_revision_remove_lane(revision, lane); - + if (item->next->next) update_merge_indices(lns, newindex, -1); - + gint mylane = gitg_revision_get_mylane(revision); - + if (mylane > index) gitg_revision_set_mylane(revision, mylane - 1); - + index = newindex; } else @@ -391,19 +391,19 @@ /* the last item we keep, and set the style of the lane to END */ GSList *lstlane = g_slist_nth(lns, index); GitgLaneBoundary *boundary = gitg_lane_convert_boundary((GitgLane *)lstlane->data, GITG_LANE_TYPE_END); - + /* copy parent hash over */ memcpy(boundary->hash, container->to, HASH_BINARY_SIZE); lstlane->data = boundary; } - } + } } static void update_current_lanes_merge_indices(GitgLanes *lanes, gint8 index, gint8 direction) { GSList *item; - + for (item = lanes->priv->lanes; item; item = g_slist_next(item)) update_lane_merge_indices(((LaneContainer *)item->data)->lane->from, index, direction); } @@ -417,7 +417,7 @@ while (item) { LaneContainer *container = (LaneContainer *)item->data; - + if (container->inactive != lanes->priv->inactive_max + lanes->priv->inactive_gap) { item = g_slist_next(item); @@ -427,7 +427,7 @@ collapse_lane(lanes, container, GPOINTER_TO_INT(container->lane->from->data)); update_current_lanes_merge_indices(lanes, index, -1); - + GSList *next = g_slist_next(item); lane_container_free(container); @@ -441,10 +441,10 @@ ensure_correct_index(GitgRevision *revision, gint8 index) { guint len = g_slist_length(gitg_revision_get_lanes(revision)); - + if (index > len) index = len; - + return index; } @@ -457,7 +457,7 @@ GitgLane *ln = gitg_lane_new_with_color(lane->color); guint len = g_slist_length(lanes->priv->lanes); gint8 next; - + if (index > len) index = len; @@ -471,7 +471,7 @@ index = next; guint cnt = 0; - + for (item = lanes->priv->previous; item; item = g_slist_next(item)) { GitgRevision *revision = GITG_REVISION(item->data); @@ -486,7 +486,7 @@ if (!item->next || cnt + 1 == lanes->priv->inactive_collapse) { GitgLaneBoundary *boundary = gitg_lane_convert_boundary(copy, GITG_LANE_TYPE_START); - + /* copy child hash in boundary */ memcpy(boundary->hash, lane->from, HASH_BINARY_SIZE); copy = (GitgLane *)boundary; @@ -495,21 +495,21 @@ { next = ensure_correct_index(GITG_REVISION(item->next->data), index); copy->from = g_slist_prepend(NULL, GINT_TO_POINTER((gint)next)); - + /* update merge indices */ update_merge_indices(lns, index, 1); } lns = gitg_revision_insert_lane(revision, copy, index); gint mylane = gitg_revision_get_mylane(revision); - + if (mylane >= index) gitg_revision_set_mylane(revision, mylane + 1); - + index = next; ++cnt; } - + gitg_lane_free(ln); } @@ -520,7 +520,7 @@ if (!collapsed) return; - + expand_lane(lanes, collapsed); g_hash_table_remove(lanes->priv->collapsed, hash); } @@ -530,7 +530,7 @@ { /* expand any lanes that revision needs (own lane and parents lanes) */ expand_lane_from_hash(lanes, gitg_revision_get_hash(revision)); - + guint num; guint i; Hash *parents = gitg_revision_get_parents_hash(revision, &num); @@ -544,7 +544,7 @@ { GSList *item = lanes->priv->lanes; gint8 index = 0; - + /* Initialize new set of lanes based on 'lanes'. It copies the lane (refs the color) and adds the lane index as a merge (so it basicly represents a passthrough) */ @@ -564,18 +564,18 @@ Hash *parents = gitg_revision_get_parents_hash(next, &num); guint i; gchar const *myhash = gitg_revision_get_hash(next); - + /* prepare the next layer */ init_next_layer(lanes); - + mylane = (LaneContainer *)g_slist_nth_data(lanes->priv->lanes, *pos); - + /* Iterate over all parents and find them a lane */ for (i = 0; i < num; ++i) { gint8 lnpos; LaneContainer *container = find_lane_by_hash(lanes, parents[i], &lnpos); - + if (container) { /* There already is a lane for this parent. This means that we add @@ -585,7 +585,7 @@ gitg_color_next_index(container->lane->color); container->inactive = 0; container->from = gitg_revision_get_hash(next); - + continue; } else if (mylane && mylane->to == NULL) @@ -593,7 +593,7 @@ /* There is no parent yet which can proceed on the current revision lane, so set it now */ mylane->to = (gchar const *)parents[i]; - + /* If there is more than one parent, then also change the color since this revision is a merge */ if (num > 1) @@ -616,7 +616,7 @@ lanes->priv->lanes = g_slist_append(lanes->priv->lanes, newlane); } } - + /* Remove the current lane if it is no longer needed */ if (mylane && mylane->to == NULL) { @@ -628,7 +628,7 @@ { GSList *last = g_slist_last(lanes->priv->previous); gitg_revision_unref(GITG_REVISION(last->data)); - + lanes->priv->previous = g_slist_remove_link(lanes->priv->previous, last); } diff -Nru gitg-0.0.3/gitg/gitg-lanes.h gitg-0.0.6/gitg/gitg-lanes.h --- gitg-0.0.3/gitg/gitg-lanes.h 2009-02-08 14:37:06.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-lanes.h 2010-01-24 12:17:16.000000000 +0000 @@ -43,7 +43,7 @@ struct _GitgLanes { GObject parent; - + GitgLanesPrivate *priv; }; diff -Nru gitg-0.0.3/gitg/gitg-menus.xml gitg-0.0.6/gitg/gitg-menus.xml --- gitg-0.0.3/gitg/gitg-menus.xml 2009-02-06 22:33:34.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-menus.xml 2010-01-24 12:17:16.000000000 +0000 @@ -34,6 +34,91 @@ + + + + + Checkout branch + + + + + + Remove branch + + + + + + Rename branch + + + + + + Rebase branch onto... + + + + + Merge branch with... + + + + + Push branch to... + + + + + Apply stash to... + + + + + + + + + Merge + + + + + + Rebase + + + + + + + + + + Create tag + + + + + + Cherry-pick on... + + + + + Format patch + + + + + + Squash revisions + + + + + @@ -41,6 +126,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gitg-0.0.3/gitg/gitg-preferences.c gitg-0.0.6/gitg/gitg-preferences.c --- gitg-0.0.3/gitg/gitg-preferences.c 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-preferences.c 2010-01-24 12:17:16.000000000 +0000 @@ -33,7 +33,7 @@ enum { PROP_0, - + PROP_HISTORY_SEARCH_FILTER, PROP_HISTORY_COLLAPSE_INACTIVE_LANES_ACTIVE, @@ -43,10 +43,19 @@ PROP_HISTORY_SHOW_VIRTUAL_STAGED, PROP_HISTORY_SHOW_VIRTUAL_UNSTAGED, + PROP_HISTORY_TOPO_ORDER, + + PROP_MAIN_LAYOUT_VERTICAL, + + PROP_MESSAGE_SHOW_RIGHT_MARGIN, + PROP_MESSAGE_RIGHT_MARGIN_AT, + + PROP_HIDDEN_SIGN_TAG, + PROP_STYLE_TEXT_FOREGROUND, PROP_STYLE_TEXT_BACKGROUND, PROP_STYLE_TEXT_STYLE, - + PROP_STYLE_ADDED_LINE_FOREGROUND, PROP_STYLE_ADDED_LINE_BACKGROUND, PROP_STYLE_ADDED_LINE_STYLE, @@ -66,7 +75,7 @@ PROP_STYLE_HUNK_FOREGROUND, PROP_STYLE_HUNK_BACKGROUND, PROP_STYLE_HUNK_STYLE, - + PROP_STYLE_TRAILING_SPACES_FOREGROUND, PROP_STYLE_TRAILING_SPACES_BACKGROUND, PROP_STYLE_TRAILING_SPACES_STYLE, @@ -93,9 +102,9 @@ struct _GitgPreferencesPrivate { GConfClient *client; - + guint notify_id; - + gboolean block_notify[PROP_LAST]; }; @@ -156,9 +165,9 @@ gitg_preferences_finalize(GObject *object) { GitgPreferences *preferences = GITG_PREFERENCES(object); - + finalize_notify(preferences); - + g_object_unref(preferences->priv->client); G_OBJECT_CLASS(gitg_preferences_parent_class)->finalize(object); } @@ -167,7 +176,7 @@ gitg_preferences_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgPreferences *self = GITG_PREFERENCES(object); - + if (prop_id > PROP_0 && prop_id < PROP_LAST) { Binding *b = &property_bindings[prop_id]; @@ -199,10 +208,20 @@ install_property_binding(guint prop_id, gchar const *group, gchar const *name, WrapGet wrap_get, WrapSet wrap_set) { Binding *b = &property_bindings[prop_id]; - + g_snprintf(b->key, PATH_MAX, "%s/%s/%s", KEY_ROOT, group, name); - gchar const *prefix = g_utf8_strrchr(group, -1, '/') + 1; + gchar const *prefix = g_utf8_strrchr(group, -1, '/'); + + if (prefix) + { + prefix += 1; + } + else + { + prefix = group; + } + g_snprintf(b->property, PATH_MAX, "%s-%s", prefix, name); b->wrap_get = wrap_get; @@ -233,19 +252,19 @@ wrap_get_int, wrap_set_int); g_free(group); - + gchar *stylename = g_strconcat("gitgdiff:", name, NULL); - + GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_manager_get_default(); GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_get_scheme(manager, "gitg"); GtkSourceStyle *style = gtk_source_style_scheme_get_style(scheme, stylename); - + g_free(stylename); gchar *foreground = NULL; gchar *background = NULL; gboolean line_background; - + group = g_strconcat(name, "-foreground", NULL); g_object_get(G_OBJECT(style), "line-background-set", &line_background, NULL); @@ -299,7 +318,7 @@ gitg_preferences_class_init(GitgPreferencesClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_preferences_finalize; object_class->set_property = gitg_preferences_set_property; object_class->get_property = gitg_preferences_get_property; @@ -384,6 +403,74 @@ TRUE, G_PARAM_READWRITE)); + + install_property_binding(PROP_MESSAGE_SHOW_RIGHT_MARGIN, + "commit/message", + "show-right-margin", + wrap_get_boolean, + wrap_set_boolean); + + g_object_class_install_property(object_class, PROP_MESSAGE_SHOW_RIGHT_MARGIN, + g_param_spec_boolean("message-show-right-margin", + "MESSAGE_SHOW_RIGHT_MARGIN", + "Show right margin in commit message view", + TRUE, + G_PARAM_READWRITE)); + + install_property_binding(PROP_MESSAGE_RIGHT_MARGIN_AT, + "commit/message", + "right-margin-at", + wrap_get_int, + wrap_set_int); + + g_object_class_install_property(object_class, PROP_MESSAGE_RIGHT_MARGIN_AT, + g_param_spec_int("message-right-margin-at", + "MESSAGE_RIGHT_MARGIN_AT", + "The column to show the right margin at", + 1, + 160, + 72, + G_PARAM_READWRITE)); + + install_property_binding(PROP_HIDDEN_SIGN_TAG, + "hidden", + "sign-tag", + wrap_get_boolean, + wrap_set_boolean); + + g_object_class_install_property(object_class, PROP_HIDDEN_SIGN_TAG, + g_param_spec_boolean("hidden-sign-tag", + "HIDDEN_SIGN_TAG", + "Whether to sign tag objects", + TRUE, + G_PARAM_READWRITE)); + + install_property_binding(PROP_HISTORY_TOPO_ORDER, + "view/history", + "topo-order", + wrap_get_boolean, + wrap_set_boolean); + + g_object_class_install_property(object_class, PROP_HISTORY_TOPO_ORDER, + g_param_spec_boolean("history-topo-order", + "HISTORY_TOPO_ORDER", + "Whether to load history in topological order", + FALSE, + G_PARAM_READWRITE)); + + install_property_binding(PROP_MAIN_LAYOUT_VERTICAL, + "view/main", + "layout-vertical", + wrap_get_boolean, + wrap_set_boolean); + + g_object_class_install_property(object_class, PROP_MAIN_LAYOUT_VERTICAL, + g_param_spec_boolean("main-layout-vertical", + "MAIN_LAYOUT_VERTICAL", + "Whether to use a vertical layout", + TRUE, + G_PARAM_READWRITE)); + install_style_properties(object_class, PROP_STYLE_TEXT_FOREGROUND, "text"); install_style_properties(object_class, PROP_STYLE_ADDED_LINE_FOREGROUND, "added-line"); install_style_properties(object_class, PROP_STYLE_REMOVED_LINE_FOREGROUND, "removed-line"); @@ -408,7 +495,7 @@ (GConfClientNotifyFunc)on_preference_changed, preferences, NULL, - NULL); + NULL); } static void @@ -420,26 +507,26 @@ for (i = PROP_0 + 1; i < PROP_LAST; ++i) { Binding *binding = &property_bindings[i]; - + GConfValue *v = gconf_client_get_without_default(preferences->priv->client, binding->key, NULL); - + if (v) { gconf_value_free(v); continue; } - + GParamSpec *spec = g_object_class_find_property(class, binding->property); GValue value = {0,}; - + /* Get default value */ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(spec)); g_param_value_set_default(spec, &value); - + /* Set it */ g_object_set_property(G_OBJECT(preferences), binding->property, &value); - - g_value_unset(&value); + + g_value_unset(&value); } } @@ -447,11 +534,11 @@ gitg_preferences_init(GitgPreferences *self) { self->priv = GITG_PREFERENCES_GET_PRIVATE(self); - + self->priv->client = gconf_client_get_default(); - + initialize_notify(self); - + /* Set initial values for properties that have defaults and do not exist yet */ initialize_default_values(self); @@ -461,13 +548,13 @@ gitg_preferences_get_default() { static GitgPreferences *preferences = NULL; - + if (!preferences) { preferences = g_object_new(GITG_TYPE_PREFERENCES, NULL); g_object_add_weak_pointer(G_OBJECT(preferences), (gpointer *)&preferences); } - + return preferences; } @@ -476,20 +563,20 @@ on_preference_changed(GConfClient *client, guint id, GConfEntry *entry, GitgPreferences *preferences) { gchar const *key = gconf_entry_get_key(entry); - + /* Find corresponding property */ guint i; - + for (i = PROP_0 + 1; i < PROP_LAST; ++i) { Binding *b = &property_bindings[i]; - + if (strcmp(key, b->key) == 0) { /* Property match, emit notify */ if (!preferences->priv->block_notify[i]) g_object_notify(G_OBJECT(preferences), b->property); - + preferences->priv->block_notify[i] = FALSE; break; } diff -Nru gitg-0.0.3/gitg/gitg-preferences-dialog.c gitg-0.0.6/gitg/gitg-preferences-dialog.c --- gitg-0.0.3/gitg/gitg-preferences-dialog.c 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-preferences-dialog.c 2010-01-24 12:17:16.000000000 +0000 @@ -25,6 +25,7 @@ #include "gitg-preferences.h" #include "gitg-data-binding.h" #include "gitg-utils.h" +#include "gitg-config.h" #include #include @@ -42,12 +43,24 @@ struct _GitgPreferencesDialogPrivate { + GitgConfig *config; + GtkCheckButton *history_search_filter; GtkAdjustment *collapse_inactive_lanes; GtkCheckButton *history_show_virtual_stash; GtkCheckButton *history_show_virtual_staged; GtkCheckButton *history_show_virtual_unstaged; + GtkCheckButton *history_topo_order; GtkCheckButton *check_button_collapse_inactive; + GtkCheckButton *main_layout_vertical; + + GtkCheckButton *check_button_show_right_margin; + GtkLabel *label_right_margin; + GtkSpinButton *spin_button_right_margin; + + GtkEntry *entry_configuration_user_name; + GtkEntry *entry_configuration_user_email; + GtkWidget *table; gint prev_value; @@ -66,6 +79,10 @@ static void gitg_preferences_dialog_finalize(GObject *object) { + GitgPreferencesDialog *dialog = GITG_PREFERENCES_DIALOG (object); + + g_object_unref (dialog->priv->config); + G_OBJECT_CLASS(gitg_preferences_dialog_parent_class)->finalize(object); } @@ -73,7 +90,7 @@ gitg_preferences_dialog_class_init(GitgPreferencesDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_preferences_dialog_finalize; g_type_class_add_private(object_class, sizeof(GitgPreferencesDialogPrivate)); @@ -83,6 +100,8 @@ gitg_preferences_dialog_init(GitgPreferencesDialog *self) { self->priv = GITG_PREFERENCES_DIALOG_GET_PRIVATE(self); + + self->priv->config = gitg_config_new (NULL); } static void @@ -97,10 +116,10 @@ GitgPreferencesDialog *dialog = GITG_PREFERENCES_DIALOG(userdata); gint val = round_val(g_value_get_double(source)); - + if (val == dialog->priv->prev_value) return FALSE; - + dialog->priv->prev_value = val; return g_value_transform(source, dest); } @@ -113,6 +132,15 @@ } static void +on_check_button_show_right_margin_toggled(GtkToggleButton *button, GitgPreferencesDialog *dialog) +{ + gboolean active = gtk_toggle_button_get_active (button); + + gtk_widget_set_sensitive(GTK_WIDGET(dialog->priv->label_right_margin), active); + gtk_widget_set_sensitive(GTK_WIDGET(dialog->priv->spin_button_right_margin), active); +} + +static void initialize_view(GitgPreferencesDialog *dialog) { GitgPreferences *preferences = gitg_preferences_get_default(); @@ -122,6 +150,11 @@ G_CALLBACK (on_collapse_inactive_toggled), dialog); + g_signal_connect (dialog->priv->check_button_show_right_margin, + "toggled", + G_CALLBACK (on_check_button_show_right_margin_toggled), + dialog); + gitg_data_binding_new_mutual(preferences, "history-search-filter", dialog->priv->history_search_filter, @@ -154,35 +187,75 @@ "history-show-virtual-unstaged", dialog->priv->history_show_virtual_unstaged, "active"); + + gitg_data_binding_new_mutual(preferences, + "history-topo-order", + dialog->priv->history_topo_order, + "active"); + + gitg_data_binding_new_mutual(preferences, + "message-show-right-margin", + dialog->priv->check_button_show_right_margin, + "active"); + + gitg_data_binding_new_mutual(preferences, + "message-right-margin-at", + dialog->priv->spin_button_right_margin, + "value"); + + gitg_data_binding_new_mutual(preferences, + "main-layout-vertical", + dialog->priv->main_layout_vertical, + "active"); } static void create_preferences_dialog() { - GtkBuilder *b = gitg_utils_new_builder("gitg-preferences.xml"); - + GtkBuilder *b = gitg_utils_new_builder("gitg-preferences.ui"); + preferences_dialog = GITG_PREFERENCES_DIALOG(gtk_builder_get_object(b, "dialog_preferences")); g_object_add_weak_pointer(G_OBJECT(preferences_dialog), (gpointer *)&preferences_dialog); - + GitgPreferencesDialogPrivate *priv = preferences_dialog->priv; - + priv->history_search_filter = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_search_filter")); priv->collapse_inactive_lanes = GTK_ADJUSTMENT(gtk_builder_get_object(b, "adjustment_collapse_inactive_lanes")); - + priv->history_show_virtual_stash = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_show_virtual_stash")); priv->history_show_virtual_staged = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_show_virtual_staged")); priv->history_show_virtual_unstaged = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_show_virtual_unstaged")); - + priv->history_topo_order = GTK_CHECK_BUTTON (gtk_builder_get_object (b, "check_button_history_topo_order")); + + priv->main_layout_vertical = GTK_CHECK_BUTTON (gtk_builder_get_object (b, "check_button_main_layout_vertical")); + priv->check_button_collapse_inactive = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_collapse_inactive")); priv->table = GTK_WIDGET(gtk_builder_get_object(b, "table_collapse_inactive_lanes")); - + + priv->check_button_show_right_margin = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_show_right_margin")); + priv->label_right_margin = GTK_LABEL(gtk_builder_get_object(b, "label_right_margin")); + priv->spin_button_right_margin = GTK_SPIN_BUTTON(gtk_builder_get_object(b, "spin_button_right_margin")); + priv->prev_value = (gint)gtk_adjustment_get_value(priv->collapse_inactive_lanes); g_signal_connect(preferences_dialog, "response", G_CALLBACK(on_response), NULL); - + initialize_view(preferences_dialog); + priv->entry_configuration_user_name = GTK_ENTRY(gtk_builder_get_object(b, "entry_configuration_user_name")); + priv->entry_configuration_user_email = GTK_ENTRY(gtk_builder_get_object(b, "entry_configuration_user_email")); + gtk_builder_connect_signals(b, preferences_dialog); g_object_unref(b); + + gchar *val; + + val = gitg_config_get_value (priv->config, "user.name"); + gtk_entry_set_text (priv->entry_configuration_user_name, val ? val : ""); + g_free (val); + + val = gitg_config_get_value (priv->config, "user.email"); + gtk_entry_set_text (priv->entry_configuration_user_email, val ? val : ""); + g_free (val); } GitgPreferencesDialog * @@ -209,3 +282,18 @@ g_signal_handlers_unblock_by_func(adjustment, G_CALLBACK(on_collapse_inactive_lanes_changed), dialog); } } + +gboolean +on_entry_configuration_user_name_focus_out_event(GtkEntry *entry, GdkEventFocus *event, GitgPreferencesDialog *dialog) +{ + gitg_config_set_value (dialog->priv->config, "user.name", gtk_entry_get_text (entry)); + return FALSE; +} + +gboolean +on_entry_configuration_user_email_focus_out_event(GtkEntry *entry, GdkEventFocus *event, GitgPreferencesDialog *dialog) +{ + gitg_config_set_value (dialog->priv->config, "user.email", gtk_entry_get_text (entry)); + return FALSE; +} + diff -Nru gitg-0.0.3/gitg/gitg-preferences-dialog.h gitg-0.0.6/gitg/gitg-preferences-dialog.h --- gitg-0.0.3/gitg/gitg-preferences-dialog.h 2009-02-08 14:37:42.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-preferences-dialog.h 2010-01-24 12:17:16.000000000 +0000 @@ -41,7 +41,7 @@ struct _GitgPreferencesDialog { GtkDialog parent; - + GitgPreferencesDialogPrivate *priv; }; diff -Nru gitg-0.0.3/gitg/gitg-preferences.h gitg-0.0.6/gitg/gitg-preferences.h --- gitg-0.0.3/gitg/gitg-preferences.h 2009-02-08 14:37:23.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-preferences.h 2010-01-24 12:17:16.000000000 +0000 @@ -50,7 +50,7 @@ struct _GitgPreferences { GObject parent; - + GitgPreferencesPrivate *priv; }; diff -Nru gitg-0.0.3/gitg/gitg-preferences.ui gitg-0.0.6/gitg/gitg-preferences.ui --- gitg-0.0.3/gitg/gitg-preferences.ui 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-preferences.ui 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,573 @@ + + + + + + + 2 + 5 + 1 + 1 + 1 + + + + 72 + 1 + 160 + 1 + 10 + + + 5 + Preferences + 400 + 500 + normal + False + + + True + 2 + + + True + True + + + True + 18 + + + True + 12 + 6 + + + True + 0 + <b>History</b> + True + + + False + 0 + + + + + True + + + True + + + + False + False + 0 + + + + + True + 6 + + + Search filters revisions in the history view + True + False + True + + + 0 + + + + + Collapse inactive lanes + True + True + False + True + True + + + 1 + + + + + True + 2 + 2 + 3 + 3 + + + True + True + adjustment_collapse_inactive_lanes + 0 + False + + + 2 + + + + + True + 0 + Early + + + 1 + 2 + + + + + True + + + 1 + 2 + GTK_FILL + + + + + True + 1 + Late + + + 1 + 2 + 1 + 2 + + + + + 2 + + + + + Show stash in history + True + True + False + True + + + 3 + + + + + Show staged changes in history + True + True + False + True + + + 4 + + + + + Show unstaged changes in history + True + True + False + True + + + 5 + + + + + Show history in topological order + True + True + False + True + + + 6 + + + + + 1 + + + + + False + 1 + + + + + True + 0 + <b>Main</b> + True + + + False + 2 + + + + + True + + + True + + + + False + False + 0 + + + + + True + 6 + + + Use vertical layout + True + True + False + True + + + 0 + + + + + 1 + + + + + False + 3 + + + + + 0 + + + + + + + True + Preferences that apply to the revision view + View + + + False + + + + + True + 18 + + + True + 12 + 6 + + + True + 0 + <b>Commit Message</b> + True + + + False + 0 + + + + + True + + + True + + + + False + False + 0 + + + + + True + 6 + + + Display right _margin + True + True + False + True + True + True + + + 0 + + + + + True + 6 + + + True + 0 + _Right margin at column: + True + + + False + False + 0 + + + + + True + True + spin_button_right_margin_adjustment + 1 + True + True + + + False + False + 1 + + + + + 1 + + + + + 1 + + + + + False + 1 + + + + + 0 + + + + + 1 + + + + + True + Preferences that apply to the commit view + Commit + + + 1 + False + + + + + True + 12 + vertical + 6 + + + True + 0 + <b>User</b> + True + + + False + 0 + + + + + True + + + True + + + + False + False + 0 + + + + + True + 2 + 2 + 6 + 6 + + + True + 0 + Name: + + + GTK_SHRINK | GTK_FILL + + + + + True + 0 + E-mail: + + + 1 + 2 + GTK_SHRINK | GTK_FILL + + + + + True + True + + + + + 1 + 2 + + + + + True + True + + + + + 1 + 2 + 1 + 2 + + + + + 1 + + + + + False + 1 + + + + + 2 + + + + + True + Configure global git settings. This corresponds to the settings as stored in ~/.gitconfig. Repository specific settings can be configured at the repository properties. + Configuration + + + 2 + False + + + + + 1 + + + + + True + end + + + gtk-close + True + True + True + True + + + False + False + 0 + + + + + False + end + 0 + + + + + + button_close + + + + True + gtk-bold + 1 + + + True + gtk-italic + 1 + + + True + gtk-underline + 1 + + diff -Nru gitg-0.0.3/gitg/gitg-preferences.xml gitg-0.0.6/gitg/gitg-preferences.xml --- gitg-0.0.3/gitg/gitg-preferences.xml 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-preferences.xml 1970-01-01 01:00:00.000000000 +0100 @@ -1,264 +0,0 @@ - - - - 2 - 0 - 5 - 1 - 1 - 1 - - - - 5 - Preferences - 400 - 500 - normal - False - - - True - 2 - - - True - True - - - True - 18 - - - True - 12 - 6 - - - True - 0 - <b>History</b> - True - - - False - 0 - - - - - True - - - True - - - - False - False - 0 - - - - - True - 6 - - - Search filters revisions in the history view - False - True - False - True - - - 0 - - - - - Collapse inactive lanes - True - True - False - True - True - - - 1 - - - - - True - 2 - 2 - 3 - 3 - - - True - True - adjustment_collapse_inactive_lanes - False - 0 - - - 0 - 2 - - - - - True - 0 - Early - - - 0 - 1 - 1 - 2 - - - - - True - - - 1 - 2 - GTK_FILL - - - - - True - 1 - Late - - - 1 - 2 - 1 - 2 - - - - - 2 - - - - - Show stash in history - True - True - False - True - - - 3 - - - - - Show staged changes in history - True - True - False - True - - - 4 - - - - - Show unstaged changes in history - true - True - False - True - - - 5 - - - - - 1 - - - - - False - 1 - - - - - 0 - - - - - - - True - View - - - False - - - - - 1 - - - - - True - end - - - gtk-close - True - True - True - True - - - 0 - - - - - False - end - 0 - - - - - - button_close - - - - True - gtk-bold - 1 - - - True - gtk-italic - 1 - - - True - gtk-underline - 1 - - diff -Nru gitg-0.0.3/gitg/gitg-ref.c gitg-0.0.6/gitg/gitg-ref.c --- gitg-0.0.3/gitg/gitg-ref.c 2009-04-23 22:08:56.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-ref.c 2010-01-24 12:17:16.000000000 +0000 @@ -30,6 +30,35 @@ GitgRefType type; } PrefixTypeMap; +struct _GitgRef +{ + Hash hash; + GitgRefType type; + + gchar *name; + gchar *shortname; + + gchar *prefix; + GitgRefState state; + + gboolean working; +}; + +GType +gitg_ref_get_type (void) +{ + static GType our_type = 0; + + if (!our_type) + { + our_type = g_boxed_type_register_static("GitGRef", + (GBoxedCopyFunc)gitg_ref_copy, + (GBoxedFreeFunc)gitg_ref_free); + } + + return our_type; +} + GitgRef * gitg_ref_new(gchar const *hash, gchar const *name) { @@ -37,43 +66,69 @@ gitg_utils_sha1_to_hash(hash, inst->hash); inst->name = g_strdup(name); - + PrefixTypeMap map[] = { {"refs/heads/", GITG_REF_TYPE_BRANCH}, {"refs/remotes/", GITG_REF_TYPE_REMOTE}, - {"refs/tags/", GITG_REF_TYPE_TAG} + {"refs/tags/", GITG_REF_TYPE_TAG}, + {"refs/stash", GITG_REF_TYPE_STASH} }; - + + inst->prefix = NULL; + // set type from name int i; for (i = 0; i < sizeof(map) / sizeof(PrefixTypeMap); ++i) { + gchar *pos; + if (!g_str_has_prefix(name, map[i].prefix)) continue; - + inst->type = map[i].type; - inst->shortname = g_strdup(name + strlen(map[i].prefix)); + + if (inst->type == GITG_REF_TYPE_STASH) + { + inst->shortname = g_strdup("stash"); + } + else + { + inst->shortname = g_strdup(name + strlen(map[i].prefix)); + } + + if (map[i].type == GITG_REF_TYPE_REMOTE && (pos = strchr(inst->shortname, '/'))) + { + inst->prefix = g_strndup(inst->shortname, pos - inst->shortname); + } + break; } - + if (inst->shortname == NULL) { inst->type = GITG_REF_TYPE_NONE; inst->shortname = g_strdup(name); } - + return inst; } GitgRef * gitg_ref_copy(GitgRef *ref) { - GitgRef *ret = g_slice_new0(GitgRef); - + if (ref == NULL) + { + return NULL; + } + + GitgRef *ret = g_slice_new0 (GitgRef); + ret->type = ref->type; ret->name = g_strdup(ref->name); ret->shortname = g_strdup(ref->shortname); - + ret->prefix = g_strdup(ref->prefix); + ret->working = ref->working; + int i; for (i = 0; i < HASH_BINARY_SIZE; ++i) ret->hash[i] = ref->hash[i]; @@ -89,6 +144,103 @@ g_free(ref->name); g_free(ref->shortname); + g_free(ref->prefix); g_slice_free(GitgRef, ref); } + +gboolean +gitg_ref_equal(GitgRef *ref, GitgRef *other) +{ + if (ref == NULL && other == NULL) + return TRUE; + + if (ref == NULL || other == NULL) + return FALSE; + + return strcmp(ref->name, other->name) == 0; +} + +gboolean +gitg_ref_equal_prefix(GitgRef *ref, GitgRef *other) +{ + if (ref == NULL && other == NULL) + return TRUE; + + if (ref == NULL || other == NULL) + return FALSE; + + return strcmp(ref->prefix, other->prefix) == 0; +} + +gchar const * +gitg_ref_get_hash(GitgRef *ref) +{ + return ref->hash; +} + +GitgRefType +gitg_ref_get_ref_type(GitgRef *ref) +{ + return ref->type; +} + +gchar const * +gitg_ref_get_name(GitgRef *ref) +{ + return ref->name; +} + +gchar const * +gitg_ref_get_shortname(GitgRef *ref) +{ + return ref->shortname; +} + +gchar const * +gitg_ref_get_prefix(GitgRef *ref) +{ + return ref->prefix; +} + +GitgRefState +gitg_ref_get_state (GitgRef *ref) +{ + return ref->state; +} + +void +gitg_ref_set_state (GitgRef *ref, + GitgRefState state) +{ + ref->state = state; +} + +gchar * +gitg_ref_get_local_name (GitgRef *ref) +{ + gchar const *shortname = gitg_ref_get_shortname (ref); + gchar const *prefix = gitg_ref_get_prefix (ref); + + if (prefix && g_str_has_prefix (shortname, prefix)) + { + return g_strdup (shortname + strlen(prefix) + 1); + } + else + { + return g_strdup (shortname); + } +} + +void +gitg_ref_set_working (GitgRef *ref, + gboolean working) +{ + ref->working = working; +} + +gboolean +gitg_ref_get_working (GitgRef *ref) +{ + return ref->working; +} diff -Nru gitg-0.0.3/gitg/gitg-ref.h gitg-0.0.6/gitg/gitg-ref.h --- gitg-0.0.3/gitg/gitg-ref.h 2009-04-23 21:37:15.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-ref.h 2010-01-24 12:17:16.000000000 +0000 @@ -23,27 +23,65 @@ #ifndef __GITG_REF_H__ #define __GITG_REF_H__ +#include #include "gitg-types.h" +G_BEGIN_DECLS + +#define GITG_TYPE_REF (gitg_ref_get_type ()) +#define GITG_REF(obj) ((GitgRef *)obj) +#define GITG_REF_CONST(obj) ((GitgRef const *)obj) + typedef enum { GITG_REF_TYPE_NONE = 0, GITG_REF_TYPE_BRANCH, GITG_REF_TYPE_REMOTE, - GITG_REF_TYPE_TAG + GITG_REF_TYPE_TAG, + GITG_REF_TYPE_STASH } GitgRefType; -typedef struct +typedef enum { - Hash hash; - GitgRefType type; - gchar *name; - gchar *shortname; -} GitgRef; - -GitgRef *gitg_ref_new(gchar const *hash, gchar const *name); -void gitg_ref_free(GitgRef *ref); -GitgRef *gitg_ref_copy(GitgRef *ref); + GITG_REF_STATE_NONE = 0, + GITG_REF_STATE_SELECTED, + GITG_REF_STATE_PRELIGHT +} GitgRefState; + +typedef struct _GitgRef GitgRef; + +GType gitg_ref_get_type (void) G_GNUC_CONST; + +GitgRef *gitg_ref_new (gchar const *hash, + gchar const *name); + +gchar const *gitg_ref_get_hash (GitgRef *ref); +GitgRefType gitg_ref_get_ref_type (GitgRef *ref); +gchar const *gitg_ref_get_name (GitgRef *ref); + +gchar const *gitg_ref_get_shortname (GitgRef *ref); +gchar const *gitg_ref_get_prefix (GitgRef *ref); + +gchar *gitg_ref_get_local_name (GitgRef *ref); + +GitgRefState gitg_ref_get_state (GitgRef *ref); +void gitg_ref_set_state (GitgRef *ref, + GitgRefState state); + +void gitg_ref_set_working (GitgRef *ref, + gboolean working); +gboolean gitg_ref_get_working (GitgRef *ref); + +GitgRef *gitg_ref_copy (GitgRef *ref); +void gitg_ref_free (GitgRef *ref); + +gboolean gitg_ref_equal (GitgRef *ref, + GitgRef *other); + +gboolean gitg_ref_equal_prefix (GitgRef *ref, + GitgRef *other); + +G_END_DECLS #endif /* __GITG_REF_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-repository.c gitg-0.0.6/gitg/gitg-repository.c --- gitg-0.0.3/gitg/gitg-repository.c 2009-04-23 22:09:55.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-repository.c 2010-01-24 12:17:16.000000000 +0000 @@ -27,6 +27,7 @@ #include "gitg-types.h" #include "gitg-preferences.h" #include "gitg-data-binding.h" +#include "gitg-config.h" #include #include @@ -42,9 +43,10 @@ G_IMPLEMENT_INTERFACE(GTK_TYPE_TREE_MODEL, gitg_repository_tree_model_iface_init)); /* Properties */ -enum { +enum +{ PROP_0, - + PROP_PATH, PROP_LOADER }; @@ -53,6 +55,7 @@ enum { LOAD, + LOADED, LAST_SIGNAL }; @@ -84,30 +87,35 @@ GHashTable *hashtable; gint stamp; GType column_types[N_COLUMNS]; - + GitgRevision **storage; GitgLanes *lanes; GHashTable *refs; GitgRef *current_ref; + GitgRef *working_ref; gulong size; gulong allocated; gint grow_size; - + gchar **last_args; + gchar **selection; + guint idle_relane_id; - + LoadStage load_stage; + + GFileMonitor *monitor; }; inline static gint gitg_repository_error_quark() { static GQuark quark = 0; - + if (G_UNLIKELY(quark == 0)) quark = g_quark_from_static_string("GitgRepositoryErrorQuark"); - + return quark; } @@ -131,7 +139,7 @@ { g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), G_TYPE_INVALID); g_return_val_if_fail(index < N_COLUMNS && index >= 0, G_TYPE_INVALID); - + return GITG_REPOSITORY(tree_model)->priv->column_types[index]; } @@ -146,22 +154,22 @@ tree_model_get_iter(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path) { g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), FALSE); - + gint *indices; gint depth; indices = gtk_tree_path_get_indices(path); depth = gtk_tree_path_get_depth(path); - + GitgRepository *rp = GITG_REPOSITORY(tree_model); g_return_val_if_fail(depth == 1, FALSE); - + if (indices[0] < 0 || indices[0] >= rp->priv->size) return FALSE; - + fill_iter(rp, indices[0], iter); - + return TRUE; } @@ -169,10 +177,10 @@ tree_model_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter) { g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), NULL); - + GitgRepository *rp = GITG_REPOSITORY(tree_model); g_return_val_if_fail(iter->stamp == rp->priv->stamp, NULL); - + return gtk_tree_path_new_from_indices(GPOINTER_TO_INT(iter->user_data), -1); } @@ -181,15 +189,15 @@ { g_return_if_fail(GITG_IS_REPOSITORY(tree_model)); g_return_if_fail(column >= 0 && column < N_COLUMNS); - + GitgRepository *rp = GITG_REPOSITORY(tree_model); g_return_if_fail(iter->stamp == rp->priv->stamp); gint index = GPOINTER_TO_INT(iter->user_data); - + g_return_if_fail(index >= 0 && index < rp->priv->size); GitgRevision *rv = rp->priv->storage[index]; - + g_value_init(value, rp->priv->column_types[column]); switch (column) @@ -219,12 +227,12 @@ GitgRepository *rp = GITG_REPOSITORY(tree_model); g_return_val_if_fail(iter->stamp == rp->priv->stamp, FALSE); - + gint next = GPOINTER_TO_INT(iter->user_data) + 1; - + if (next >= rp->priv->size) return FALSE; - + iter->user_data = GINT_TO_POINTER(next); return TRUE; } @@ -237,10 +245,10 @@ // Only root has children, because it's a flat list if (parent != NULL) return FALSE; - + GitgRepository *rp = GITG_REPOSITORY(tree_model); fill_iter(rp, 0, iter); - + return TRUE; } @@ -248,7 +256,7 @@ tree_model_iter_has_child(GtkTreeModel *tree_model, GtkTreeIter *iter) { g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), FALSE); - + // Only root (NULL) has children return iter == NULL; } @@ -258,7 +266,7 @@ { g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), 0); GitgRepository *rp = GITG_REPOSITORY(tree_model); - + return iter ? 0 : rp->priv->size; } @@ -271,11 +279,11 @@ if (parent) return FALSE; - GitgRepository *rp = GITG_REPOSITORY(tree_model); + GitgRepository *rp = GITG_REPOSITORY(tree_model); g_return_val_if_fail(n < rp->priv->size, FALSE); - + fill_iter(rp, n, iter); - + return TRUE; } @@ -308,7 +316,7 @@ { gint i; GtkTreePath *path = gtk_tree_path_new_from_indices(repository->priv->size - 1, -1); - + for (i = repository->priv->size - 1; i >= 0; --i) { if (emit) @@ -317,27 +325,27 @@ gtk_tree_model_row_deleted(GTK_TREE_MODEL(repository), dup); gtk_tree_path_free(dup); } - + gtk_tree_path_prev(path); gitg_revision_unref(repository->priv->storage[i]); } - + gtk_tree_path_free(path); - + if (repository->priv->storage) g_slice_free1(sizeof(GitgRevision *) * repository->priv->size, repository->priv->storage); - + repository->priv->storage = NULL; repository->priv->size = 0; repository->priv->allocated = 0; - + gitg_ref_free(repository->priv->current_ref); repository->priv->current_ref = NULL; - + /* clear hash tables */ g_hash_table_remove_all(repository->priv->hashtable); g_hash_table_remove_all(repository->priv->refs); - + gitg_color_reset(); } @@ -345,28 +353,47 @@ gitg_repository_finalize(GObject *object) { GitgRepository *rp = GITG_REPOSITORY(object); - + /* Make sure to cancel the loader */ gitg_runner_cancel(rp->priv->loader); g_object_unref(rp->priv->loader); - + g_object_unref(rp->priv->lanes); - + /* Clear the model to remove all revision objects */ do_clear(rp, FALSE); - + /* Free the path */ g_free(rp->priv->path); - + /* Free the hash */ g_hash_table_destroy(rp->priv->hashtable); g_hash_table_destroy(rp->priv->refs); - + /* Free cached args */ g_strfreev(rp->priv->last_args); - + g_strfreev(rp->priv->selection); + if (rp->priv->idle_relane_id) + { g_source_remove(rp->priv->idle_relane_id); + } + + if (rp->priv->current_ref) + { + gitg_ref_free (rp->priv->current_ref); + } + + if (rp->priv->working_ref) + { + gitg_ref_free (rp->priv->working_ref); + } + + if (rp->priv->monitor) + { + g_file_monitor_cancel (rp->priv->monitor); + g_object_unref (rp->priv->monitor); + } G_OBJECT_CLASS (gitg_repository_parent_class)->finalize(object); } @@ -375,7 +402,7 @@ gitg_repository_set_property(GObject *object, guint prop_id, GValue const *value, GParamSpec *pspec) { GitgRepository *self = GITG_REPOSITORY(object); - + switch (prop_id) { case PROP_PATH: @@ -392,7 +419,7 @@ gitg_repository_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GitgRepository *self = GITG_REPOSITORY(object); - + switch (prop_id) { case PROP_PATH: @@ -407,31 +434,128 @@ } } +static gchar * +parse_ref_intern (GitgRepository *repository, gchar const *ref, gboolean symbolic) +{ + gchar **ret = gitg_repository_command_with_outputv(repository, NULL, "rev-parse", "--verify", symbolic ? "--symbolic-full-name" : ref, symbolic ? ref : NULL, NULL); + + if (!ret) + return NULL; + + gchar *r = g_strdup(*ret); + g_strfreev(ret); + + return r; +} + +static GitgRef * +get_current_working_ref(GitgRepository *repository) +{ + GitgRef *ret = NULL; + + gchar *hash = parse_ref_intern (repository, "HEAD", FALSE); + gchar *name = parse_ref_intern (repository, "HEAD", TRUE); + + if (hash && name) + { + ret = gitg_ref_new (hash, name); + gitg_ref_set_working (ret, TRUE); + } + + g_free (hash); + g_free (name); + + return ret; +} + +static void +on_head_changed (GFileMonitor *monitor, + GFile *file, + GFile *otherfile, + GFileMonitorEvent event, + GitgRepository *repository) +{ + switch (event) + { + case G_FILE_MONITOR_EVENT_CHANGED: + case G_FILE_MONITOR_EVENT_CREATED: + { + GitgRef *current = get_current_working_ref (repository); + + if (!gitg_ref_equal (current, repository->priv->working_ref)) + { + gitg_repository_reload (repository); + } + + gitg_ref_free (current); + } + break; + default: + break; + } +} + +static void +install_head_monitor (GitgRepository *repository) +{ + gchar *path = g_build_filename (repository->priv->path, ".git", "HEAD", NULL); + GFile *file = g_file_new_for_path (path); + + repository->priv->monitor = g_file_monitor_file (file, + G_FILE_MONITOR_NONE, + NULL, + NULL); + + g_signal_connect (repository->priv->monitor, + "changed", + G_CALLBACK (on_head_changed), + repository); + + g_free (path); + g_object_unref (file); +} + +static GObject * +gitg_repository_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties) +{ + GObject *ret = G_OBJECT_CLASS (gitg_repository_parent_class)->constructor (type, + n_construct_properties, + construct_properties); + + install_head_monitor (GITG_REPOSITORY (ret)); + + return ret; +} + static void gitg_repository_class_init(GitgRepositoryClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->finalize = gitg_repository_finalize; - + object_class->set_property = gitg_repository_set_property; object_class->get_property = gitg_repository_get_property; - + + object_class->constructor = gitg_repository_constructor; + g_object_class_install_property(object_class, PROP_PATH, g_param_spec_string ("path", "PATH", "The repository path", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - + g_object_class_install_property(object_class, PROP_LOADER, g_param_spec_object ("loader", "LOADER", "The repository loader", GITG_TYPE_RUNNER, G_PARAM_READABLE)); - + repository_signals[LOAD] = - g_signal_new ("load", + g_signal_new ("load", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GitgRepositoryClass, load), @@ -440,6 +564,16 @@ G_TYPE_NONE, 0); + repository_signals[LOADED] = + g_signal_new ("loaded", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GitgRepositoryClass, loaded), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + g_type_class_add_private(object_class, sizeof(GitgRepositoryPrivate)); } @@ -448,7 +582,7 @@ { GSList *lanes; gint8 mylane = 0; - + if (repository->priv->size == 0) gitg_lanes_reset(repository->priv->lanes); @@ -465,9 +599,9 @@ GitgRevision *revision; gchar const *subject; struct timeval tv; - + gettimeofday(&tv, NULL); - + if (staged) subject = _("Staged changes"); else @@ -483,15 +617,18 @@ on_loader_end_loading(GitgRunner *object, gboolean cancelled, GitgRepository *repository) { if (cancelled) + { + g_signal_emit (repository, repository_signals[LOADED], 0); return; + } LoadStage current = repository->priv->load_stage++; GitgPreferences *preferences = gitg_preferences_get_default(); gboolean show_unstaged; gboolean show_staged; - - g_object_get(preferences, - "history-show-virtual-staged", &show_staged, + + g_object_get(preferences, + "history-show-virtual-staged", &show_staged, "history-show-virtual-unstaged", &show_unstaged, NULL); @@ -503,7 +640,7 @@ /* Check if there are staged changes */ gchar *head = gitg_repository_parse_head(repository); const gchar *cached = NULL; - + if (current == LOAD_STAGE_STAGED) { /* Check if there are unstaged changes */ @@ -516,7 +653,7 @@ { cached = "--cached"; } - + gitg_repository_run_commandv(repository, object, NULL, "diff-index", "--quiet", head, cached, NULL); g_free(head); } @@ -533,6 +670,45 @@ default: break; } + + if (repository->priv->load_stage == LOAD_STAGE_LAST) + { + g_signal_emit (repository, repository_signals[LOADED], 0); + } +} + +static gint +find_ref_custom (GitgRef *first, GitgRef *second) +{ + return gitg_ref_equal (first, second) ? 0 : 1; +} + +static GitgRef * +add_ref(GitgRepository *self, gchar const *sha1, gchar const *name) +{ + GitgRef *ref = gitg_ref_new(sha1, name); + GSList *refs = (GSList *)g_hash_table_lookup(self->priv->refs, + gitg_ref_get_hash(ref)); + + if (refs == NULL) + { + g_hash_table_insert(self->priv->refs, + (gpointer)gitg_ref_get_hash(ref), + g_slist_append(NULL, ref)); + } + else + { + if (!g_slist_find_custom (refs, ref, (GCompareFunc)find_ref_custom)) + { + refs = g_slist_append(refs, ref); + } + else + { + gitg_ref_free (ref); + } + } + + return ref; } static void @@ -541,27 +717,29 @@ gchar *line; GitgPreferences *preferences = gitg_preferences_get_default(); gboolean show_stash; - + g_object_get(preferences, "history-show-virtual-stash", &show_stash, NULL); if (!show_stash) return; - + while ((line = *buffer++) != NULL) { gchar **components = g_strsplit(line, "\01", 0); guint len = g_strv_length(components); - + if (len < 4) { g_strfreev(components); continue; } - + /* components -> [hash, author, subject, timestamp] */ gint64 timestamp = g_ascii_strtoll(components[3], NULL, 0); GitgRevision *rv = gitg_revision_new(components[0], components[1], components[2], NULL, timestamp); - + + add_ref (repository, components[0], "refs/stash"); + gitg_revision_set_sign(rv, 's'); append_revision(repository, rv); g_strfreev(components); @@ -572,13 +750,13 @@ loader_update_commits(GitgRepository *self, gchar **buffer) { gchar *line; - + while ((line = *buffer++) != NULL) { /* new line is read */ gchar **components = g_strsplit(line, "\01", 0); guint len = g_strv_length(components); - + if (len < 5) { g_strfreev(components); @@ -587,12 +765,13 @@ /* components -> [hash, author, subject, parents ([1 2 3]), timestamp[, leftright]] */ gint64 timestamp = g_ascii_strtoll(components[4], NULL, 0); - + GitgRevision *rv = gitg_revision_new(components[0], components[1], components[2], components[3], timestamp); - GSList *lanes; - + if (len > 5 && strlen(components[5]) == 1 && strchr("<>-^", *components[5]) != NULL) + { gitg_revision_set_sign(rv, *components[5]); + } append_revision(self, rv); g_strfreev(components); @@ -630,14 +809,14 @@ repository_relane(GitgRepository *repository) { repository->priv->idle_relane_id = 0; - + gitg_lanes_reset(repository->priv->lanes); - + guint i; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_first(); - - + + for (i = 0; i < repository->priv->size; ++i) { gint8 mylane; @@ -648,12 +827,12 @@ fill_iter(repository, i, &iter); gtk_tree_model_row_changed(GTK_TREE_MODEL(repository), path, &iter); - + gtk_tree_path_next(path); } - + gtk_tree_path_free(path); - + return FALSE; } @@ -669,10 +848,10 @@ { g_return_val_if_fail(G_VALUE_HOLDS(setting, G_TYPE_INT), FALSE); g_return_val_if_fail(G_VALUE_HOLDS(value, G_TYPE_INT), FALSE); - + gint s = g_value_get_int(setting); g_value_set_int(value, 2 + s * 8); - + prepare_relane(GITG_REPOSITORY(userdata)); return TRUE; } @@ -686,7 +865,7 @@ gint s = g_value_get_int(setting); g_value_set_int(value, 1 + s * 3); - prepare_relane(GITG_REPOSITORY(userdata)); + prepare_relane(GITG_REPOSITORY(userdata)); return TRUE; } @@ -697,8 +876,8 @@ g_return_val_if_fail(G_VALUE_HOLDS(value, G_TYPE_INT), FALSE); g_value_set_int(value, 10); - - prepare_relane(GITG_REPOSITORY(userdata)); + + prepare_relane(GITG_REPOSITORY(userdata)); return TRUE; } @@ -710,8 +889,8 @@ gboolean s = g_value_get_boolean(setting); g_value_set_boolean(value, s); - - prepare_relane(GITG_REPOSITORY(userdata)); + + prepare_relane(GITG_REPOSITORY(userdata)); return TRUE; } @@ -721,11 +900,111 @@ gitg_repository_reload (repository); } +static gchar ** +copy_strv (gchar const **ptr, gint argc) +{ + GPtrArray *ret = g_ptr_array_new (); + gint i = 0; + + while (ptr && ((argc >= 0 && i < argc) || (argc < 0 && ptr[i]))) + { + g_ptr_array_add (ret, g_strdup (ptr[i])); + ++i; + } + + g_ptr_array_add (ret, NULL); + return (gchar **)g_ptr_array_free (ret, FALSE); +} + +static gboolean +has_left_right(gchar const **av, int argc) +{ + int i; + + for (i = 0; i < argc; ++i) + if (strcmp(av[i], "--left-right") == 0) + return TRUE; + + return FALSE; +} + +static void +build_log_args(GitgRepository *self, gint argc, gchar const **av) +{ + GitgPreferences *preferences = gitg_preferences_get_default (); + gboolean topoorder; + + g_object_get (preferences, "history-topo-order", &topoorder, NULL); + + gchar **argv = g_new0(gchar *, 6 + topoorder + (argc > 0 ? argc - 1 : 0)); + + argv[0] = g_strdup("log"); + + if (has_left_right(av, argc)) + { + argv[1] = g_strdup("--pretty=format:%H\x01%an\x01%s\x01%P\x01%at\x01%m"); + } + else + { + argv[1] = g_strdup("--pretty=format:%H\x01%an\x01%s\x01%P\x01%at"); + } + + argv[2] = g_strdup ("--encoding=UTF-8"); + gint start = 3; + + if (topoorder) + { + argv[3] = g_strdup ("--topo-order"); + ++start; + } + + gchar *head = NULL; + + if (argc <= 0) + { + head = gitg_repository_parse_ref(self, "HEAD"); + + if (head) + { + argv[start] = g_strdup("HEAD"); + } + + g_free(head); + } + else + { + int i; + + for (i = 0; i < argc; ++i) + { + argv[start + i] = g_strdup(av[i]); + } + } + + g_strfreev(self->priv->last_args); + self->priv->last_args = argv; + + gchar **newselection = copy_strv (av, argc); + + g_strfreev (self->priv->selection); + self->priv->selection = newselection; +} + +static void +on_update_topo_order(GObject *object, GParamSpec *spec, GitgRepository *repository) +{ + build_log_args (repository, + g_strv_length (repository->priv->selection), + (gchar const **)repository->priv->selection); + + gitg_repository_reload (repository); +} + static void initialize_bindings(GitgRepository *repository) { GitgPreferences *preferences = gitg_preferences_get_default(); - + gitg_data_binding_new_full(preferences, "history-collapse-inactive-lanes", repository->priv->lanes, "inactive-max", convert_setting_to_inactive_max, @@ -739,12 +1018,12 @@ gitg_data_binding_new_full(preferences, "history-collapse-inactive-lanes", repository->priv->lanes, "inactive-gap", convert_setting_to_inactive_gap, - repository); + repository); gitg_data_binding_new_full(preferences, "history-collapse-inactive-lanes-active", repository->priv->lanes, "inactive-enabled", convert_setting_to_inactive_enabled, - repository); + repository); g_signal_connect(preferences, "notify::history-show-virtual-stash", @@ -760,6 +1039,11 @@ "notify::history-show-virtual-staged", G_CALLBACK(on_update_virtual), repository); + + g_signal_connect(preferences, + "notify::history-topo-order", + G_CALLBACK(on_update_topo_order), + repository); } static void @@ -767,21 +1051,21 @@ { object->priv = GITG_REPOSITORY_GET_PRIVATE(object); object->priv->hashtable = g_hash_table_new_full(gitg_utils_hash_hash, gitg_utils_hash_equal, NULL, NULL); - + object->priv->column_types[0] = GITG_TYPE_REVISION; object->priv->column_types[1] = G_TYPE_STRING; object->priv->column_types[2] = G_TYPE_STRING; object->priv->column_types[3] = G_TYPE_STRING; - + object->priv->lanes = gitg_lanes_new(); object->priv->grow_size = 1000; object->priv->stamp = g_random_int(); object->priv->refs = g_hash_table_new_full(gitg_utils_hash_hash, gitg_utils_hash_equal, NULL, (GDestroyNotify)free_refs); - + object->priv->loader = gitg_runner_new(10000); g_signal_connect(object->priv->loader, "update", G_CALLBACK(on_loader_update), object); g_signal_connect(object->priv->loader, "end-loading", G_CALLBACK(on_loader_end_loading), object); - + initialize_bindings(object); } @@ -790,18 +1074,18 @@ { if (repository->priv->size + size <= repository->priv->allocated) return; - + gulong prevallocated = repository->priv->allocated; repository->priv->allocated += repository->priv->grow_size; GitgRevision **newstorage = g_slice_alloc(sizeof(GitgRevision *) * repository->priv->allocated); - + int i; for (i = 0; i < repository->priv->size; ++i) newstorage[i] = repository->priv->storage[i]; - + if (repository->priv->storage) g_slice_free1(sizeof(GitgRevision *) * prevallocated, repository->priv->storage); - + repository->priv->storage = newstorage; } @@ -815,7 +1099,7 @@ gitg_repository_get_path(GitgRepository *self) { g_return_val_if_fail(GITG_IS_REPOSITORY(self), NULL); - + return self->priv->path; } @@ -826,77 +1110,20 @@ return GITG_RUNNER(g_object_ref(self->priv->loader)); } -static GitgRef * -add_ref(GitgRepository *self, gchar const *sha1, gchar const *name) -{ - GitgRef *ref = gitg_ref_new(sha1, name); - GSList *refs = (GSList *)g_hash_table_lookup(self->priv->refs, ref->hash); - - if (refs == NULL) - g_hash_table_insert(self->priv->refs, ref->hash, g_slist_append(NULL, ref)); - else - refs = g_slist_append(refs, ref); - - return ref; -} - -static gboolean -has_left_right(gchar const **av, int argc) -{ - int i; - - for (i = 0; i < argc; ++i) - if (strcmp(av[i], "--left-right") == 0) - return TRUE; - - return FALSE; -} - static gboolean reload_revisions(GitgRepository *repository, GError **error) { - g_signal_emit(repository, repository_signals[LOAD], 0); - - repository->priv->load_stage = LOAD_STAGE_STASH; - - return gitg_repository_run_commandv(repository, repository->priv->loader, error, "log", "--pretty=format:%H\x01%an\x01%s\x01%at", "-g", "refs/stash", NULL); -} - -static gboolean -load_revisions(GitgRepository *self, gint argc, gchar const **av, GError **error) -{ - gchar **argv = g_new0(gchar *, 5 + (argc > 0 ? argc - 1 : 0)); - - argv[0] = g_strdup("log"); - - if (has_left_right(av, argc)) - argv[1] = g_strdup("--pretty=format:%H\x01%an\x01%s\x01%P\x01%at\x01%m"); - else - argv[1] = g_strdup("--pretty=format:%H\x01%an\x01%s\x01%P\x01%at"); - - gchar *head = NULL; - - if (argc <= 0) + if (repository->priv->working_ref) { - head = gitg_repository_parse_ref(self, "HEAD"); - - if (head) - argv[2] = g_strdup("HEAD"); - - g_free(head); + gitg_ref_free (repository->priv->working_ref); + repository->priv->working_ref = NULL; } - else - { - int i; - for (i = 0; i < argc; ++i) - argv[2 + i] = g_strdup(av[i]); - } + g_signal_emit(repository, repository_signals[LOAD], 0); - g_strfreev(self->priv->last_args); - self->priv->last_args = argv; - - return reload_revisions(self, error); + repository->priv->load_stage = LOAD_STAGE_STASH; + + return gitg_repository_run_commandv(repository, repository->priv->loader, error, "log", "--pretty=format:%H\x01%an\x01%s\x01%at", "--encoding=UTF-8", "-g", "refs/stash", NULL); } static gchar * @@ -904,20 +1131,34 @@ { gchar **out; gchar *ret = NULL; + gint i; + gint numargs; + + numargs = g_strv_length(self->priv->last_args); + + gchar const **argv = g_new0(gchar const *, numargs + 3); + + argv[0] = "rev-parse"; + argv[1] = "--no-flags"; + argv[2] = "--symbolic-full-name"; + + for (i = 1; i < numargs; ++i) + { + argv[2 + i] = self->priv->last_args[i]; + } + + out = gitg_repository_command_with_output(self, argv, NULL); - out = gitg_repository_command_with_outputv(self, NULL, "show-branch", "--sha1-name", "--current", NULL); - if (!out) + { return NULL; - - if (*out) + } + + if (*out && !*(out + 1)) { - gchar *pos = g_utf8_strchr(*out, -1, ']'); - - if (pos) - ret = g_strndup(*out + 1, (pos - *out) - 2); + ret = g_strdup(*out); } - + g_strfreev(out); return ret; } @@ -925,31 +1166,41 @@ static void load_refs(GitgRepository *self) { - gchar *current = load_current_ref(self); - gchar **refs = gitg_repository_command_with_outputv(self, NULL, "for-each-ref", "--format=%(refname) %(objectname) %(*objectname)", "refs", NULL); + + if (!refs) + { + return; + } + gchar **buffer = refs; gchar *buf; - + gchar *current = load_current_ref(self); + + GitgRef *working = gitg_repository_get_current_working_ref (self); + while ((buf = *buffer++) != NULL) { // each line will look like gchar **components = g_strsplit(buf, " ", 3); guint len = g_strv_length(components); - - /* Skip refs/stash */ - if (strcmp(components[0], "refs/stash") != 0) + + if (len == 2 || len == 3) { - if (len == 2 || len == 3) + gchar const *obj = len == 3 && *components[2] ? components[2] : components[1]; + GitgRef *ref = add_ref(self, obj, components[0]); + + if (current != NULL && strcmp(gitg_ref_get_name(ref), current) == 0) { - gchar const *obj = len == 3 && *components[2] ? components[2] : components[1]; - GitgRef *ref = add_ref(self, obj, components[0]); - - if (current != NULL && strncmp(obj, current, strlen(current)) == 0) - self->priv->current_ref = gitg_ref_copy(ref); + self->priv->current_ref = gitg_ref_copy(ref); + } + + if (working != NULL && gitg_ref_equal (working, ref)) + { + gitg_ref_set_working (ref, TRUE); } } - + g_strfreev(components); } @@ -964,8 +1215,10 @@ g_return_if_fail(repository->priv->path != NULL); gitg_runner_cancel(repository->priv->loader); + + repository->priv->load_stage = LOAD_STAGE_NONE; gitg_repository_clear(repository); - + load_refs(repository); reload_revisions(repository, NULL); } @@ -974,23 +1227,27 @@ gitg_repository_load(GitgRepository *self, int argc, gchar const **av, GError **error) { g_return_val_if_fail(GITG_IS_REPOSITORY(self), FALSE); - + if (self->priv->path == NULL) { if (error) + { *error = g_error_new_literal(gitg_repository_error_quark(), GITG_REPOSITORY_ERROR_NOT_FOUND, _("Not a valid git repository")); - + } + return FALSE; } gitg_runner_cancel(self->priv->loader); gitg_repository_clear(self); - + + build_log_args(self, argc, av); + /* first get the refs */ load_refs(self); - + /* request log (all the revision) */ - return load_revisions(self, argc, av, error); + return reload_revisions(self, error); } void @@ -1000,7 +1257,7 @@ /* validate our parameters */ g_return_if_fail(GITG_IS_REPOSITORY(self)); - + grow_storage(self, 1); /* put this object in our data storage */ @@ -1012,11 +1269,11 @@ iter1.user_data = GINT_TO_POINTER(self->priv->size - 1); iter1.user_data2 = NULL; iter1.user_data3 = NULL; - + GtkTreePath *path = gtk_tree_path_new_from_indices(self->priv->size - 1, -1); gtk_tree_model_row_inserted(GTK_TREE_MODEL(self), path, &iter1); gtk_tree_path_free(path); - + /* return the iter if the user cares */ if (iter) *iter = iter1; @@ -1033,12 +1290,12 @@ gitg_repository_lookup(GitgRepository *store, gchar const *hash) { g_return_val_if_fail(GITG_IS_REPOSITORY(store), NULL); - + gpointer result = g_hash_table_lookup(store->priv->hashtable, hash); - + if (!result) return NULL; - + return store->priv->storage[GPOINTER_TO_UINT(result)]; } @@ -1046,12 +1303,12 @@ gitg_repository_find_by_hash(GitgRepository *store, gchar const *hash, GtkTreeIter *iter) { g_return_val_if_fail(GITG_IS_REPOSITORY(store), FALSE); - + gpointer result = g_hash_table_lookup(store->priv->hashtable, hash); - + if (!result) return FALSE; - + GtkTreePath *path = gtk_tree_path_new_from_indices(GPOINTER_TO_UINT(result), -1); gtk_tree_model_get_iter(GTK_TREE_MODEL(store), iter, path); gtk_tree_path_free(path); @@ -1072,15 +1329,18 @@ GList *values = g_hash_table_get_values(repository->priv->refs); GSList *ret = NULL; GList *item; - + for (item = values; item; item = item->next) { GSList *val; - + for (val = (GSList *)item->data; val; val = val->next) - ret = g_slist_append(ret, gitg_ref_copy((GitgRef *)val->data)); + { + ret = g_slist_prepend(ret, gitg_ref_copy((GitgRef *)val->data)); + } } - + + ret = g_slist_reverse (ret); g_list_free(values); return ret; } @@ -1096,7 +1356,7 @@ gitg_repository_get_current_ref(GitgRepository *repository) { g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL); - + return repository->priv->current_ref; } @@ -1105,11 +1365,11 @@ { g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL); g_return_val_if_fail(repository->priv->path != NULL, NULL); - + GFile *parent = g_file_new_for_path(repository->priv->path); gchar *ret = g_file_get_relative_path(parent, file); g_object_unref(parent); - + return ret; } @@ -1119,18 +1379,18 @@ g_return_val_if_fail(GITG_IS_REPOSITORY(repository), FALSE); g_return_val_if_fail(GITG_IS_RUNNER(runner), FALSE); g_return_val_if_fail(repository->priv->path != NULL, FALSE); - + guint num = g_strv_length((gchar **)argv); guint i; gchar const **args = g_new0(gchar const *, num + 2); - args[0] = "git"; - + args[0] = "git"; + for (i = 0; i < num; ++i) args[i + 1] = argv[i]; - + gboolean ret = gitg_runner_run_with_arguments(runner, args, repository->priv->path, input, error); g_free(args); - + return ret; } @@ -1151,7 +1411,7 @@ g_return_val_if_fail(repository->priv->path != NULL, FALSE); GitgRunner *runner = gitg_runner_new_synchronized(1000); - + gboolean ret = gitg_repository_run_command_with_input(repository, runner, argv, input, error); g_object_unref(runner); @@ -1178,12 +1438,12 @@ { guint num = g_strv_length(buffer); guint i; - + output->buffer = g_realloc(output->buffer, sizeof(gchar *) * (output->size + num + 1)); - + for (i = 0; i < num; ++i) output->buffer[output->size + i] = g_strdup(buffer[i]); - + output->size += num; output->buffer[output->size] = NULL; } @@ -1193,19 +1453,19 @@ { g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL); g_return_val_if_fail(repository->priv->path != NULL, NULL); - + GitgRunner *runner = gitg_runner_new_synchronized(1000); CommandOutput output = {NULL, 0}; g_signal_connect(runner, "update", G_CALLBACK(command_with_output_update), &output); gboolean ret = gitg_repository_run_command_with_input(repository, runner, argv, input, error); - + if (!ret) { g_strfreev(output.buffer); output.buffer = NULL; } - + g_object_unref(runner); return output.buffer; } @@ -1219,19 +1479,19 @@ return gitg_repository_command_with_input_and_output(repository, argv, NULL, error); } -gchar const ** +static gchar const ** parse_valist(va_list ap) { gchar const *a; gchar const **ret = NULL; guint num = 0; - + while ((a = va_arg(ap, gchar const *)) != NULL) { ret = g_realloc(ret, sizeof(gchar const *) * (++num + 1)); ret[num - 1] = a; } - + ret[num] = NULL; return ret; } @@ -1243,7 +1503,7 @@ va_start(ap, error); gchar const **argv = parse_valist(ap); va_end(ap); - + gboolean ret = gitg_repository_command(repository, argv, error); g_free(argv); return ret; @@ -1256,7 +1516,7 @@ va_start(ap, error); gchar const **argv = parse_valist(ap); va_end(ap); - + gboolean ret = gitg_repository_command_with_input(repository, argv, input, error); g_free(argv); return ret; @@ -1269,7 +1529,7 @@ va_start(ap, error); gchar const **argv = parse_valist(ap); va_end(ap); - + gboolean ret = gitg_repository_run_command(repository, runner, argv, error); g_free(argv); return ret; @@ -1282,7 +1542,7 @@ va_start(ap, error); gchar const **argv = parse_valist(ap); va_end(ap); - + gboolean ret = gitg_repository_run_command_with_input(repository, runner, argv, input, error); g_free(argv); return ret; @@ -1295,7 +1555,7 @@ va_start(ap, error); gchar const **argv = parse_valist(ap); va_end(ap); - + gchar **ret = gitg_repository_command_with_output(repository, argv, error); g_free(argv); return ret; @@ -1308,7 +1568,7 @@ va_start(ap, error); gchar const **argv = parse_valist(ap); va_end(ap); - + gchar **ret = gitg_repository_command_with_input_and_output(repository, argv, input, error); g_free(argv); return ret; @@ -1318,28 +1578,95 @@ gitg_repository_parse_ref(GitgRepository *repository, gchar const *ref) { g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL); - - gchar **ret = gitg_repository_command_with_outputv(repository, NULL, "rev-parse", "--verify", ref, NULL); - - if (!ret) - return NULL; - - gchar *r = g_strdup(*ret); - g_strfreev(ret); - - return r; + + return parse_ref_intern (repository, ref, FALSE); } gchar * gitg_repository_parse_head(GitgRepository *repository) { g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL); - + gchar *ret = gitg_repository_parse_ref(repository, "HEAD"); - + if (!ret) ret = g_strdup("4b825dc642cb6eb9a060e54bf8d69288fbee4904"); - + return ret; } +GitgRef * +gitg_repository_get_current_working_ref(GitgRepository *repository) +{ + if (repository->priv->working_ref) + { + return repository->priv->working_ref; + } + + repository->priv->working_ref = get_current_working_ref (repository); + return repository->priv->working_ref; +} + +gchar ** +gitg_repository_get_remotes (GitgRepository *repository) +{ + g_return_val_if_fail (GITG_IS_REPOSITORY (repository), NULL); + + GitgConfig *config = gitg_config_new (repository); + gchar *ret = gitg_config_get_value_regex (config, "remote\\..*\\.url"); + + GPtrArray *remotes = g_ptr_array_new (); + + if (!ret) + { + g_ptr_array_add (remotes, NULL); + g_object_unref (config); + + return (gchar **)g_ptr_array_free (remotes, FALSE); + } + + gchar **lines = g_strsplit(ret, "\n", -1); + gchar **ptr = lines; + + g_free (ret); + + GRegex *regex = g_regex_new ("remote\\.(.+?)\\.url\\s+(.*)", 0, 0, NULL); + + while (*ptr) + { + GMatchInfo *info = NULL; + + if (g_regex_match (regex, *ptr, 0, &info)) + { + gchar *name = g_match_info_fetch (info, 1); + + g_ptr_array_add (remotes, name); + } + + g_match_info_free (info); + ++ptr; + } + + /* NULL terminate */ + g_ptr_array_add (remotes, NULL); + g_object_unref (config); + g_strfreev (lines); + + return (gchar **)g_ptr_array_free (remotes, FALSE); +} + +gboolean +gitg_repository_get_loaded (GitgRepository *repository) +{ + g_return_val_if_fail (GITG_IS_REPOSITORY (repository), FALSE); + return repository->priv->load_stage == LOAD_STAGE_LAST && + !gitg_runner_running (repository->priv->loader); +} + +gchar const ** +gitg_repository_get_current_selection (GitgRepository *repository) +{ + g_return_val_if_fail (GITG_IS_REPOSITORY (repository), NULL); + + return (gchar const **)repository->priv->selection; +} diff -Nru gitg-0.0.3/gitg/gitg-repository-dialog.c gitg-0.0.6/gitg/gitg-repository-dialog.c --- gitg-0.0.3/gitg/gitg-repository-dialog.c 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-repository-dialog.c 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,773 @@ +#include + +#include + +#include "gitg-repository-dialog.h" +#include "gitg-utils.h" +#include "gitg-config.h" +#include "gitg-spinner.h" + +#define GITG_REPOSITORY_DIALOG_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GITG_TYPE_REPOSITORY_DIALOG, GitgRepositoryDialogPrivate)) + +static GitgRepositoryDialog *repository_dialog = NULL; + +enum +{ + COLUMN_NAME, + COLUMN_URL, + COLUMN_FETCH +}; + +struct _GitgRepositoryDialogPrivate +{ + GitgRepository *repository; + GitgConfig *config; + + GtkEntry *entry_repository_user_name; + GtkEntry *entry_repository_user_email; + + GtkTreeView *tree_view_remotes; + GtkListStore *list_store_remotes; + + GtkButton *button_remove_remote; + GtkButton *button_fetch_remote; + GtkImage *image_fetch_remote; + + GList *fetchers; + gboolean show_fetch; +}; + +G_DEFINE_TYPE (GitgRepositoryDialog, gitg_repository_dialog, GTK_TYPE_DIALOG) + +typedef struct +{ + GitgRepositoryDialog *dialog; + GitgRunner *runner; + GtkTreeRowReference *reference; + GitgSpinner *spinner; +} FetchInfo; + +static void +fetch_cleanup (FetchInfo *info) +{ + if (info->spinner) + { + g_object_unref (info->spinner); + } + + info->dialog->priv->fetchers = g_list_remove (info->dialog->priv->fetchers, info); + + if (gtk_tree_row_reference_valid (info->reference)) + { + GtkTreeIter iter; + GtkTreePath *path = gtk_tree_row_reference_get_path (info->reference); + + gtk_tree_model_get_iter (GTK_TREE_MODEL (info->dialog->priv->list_store_remotes), + &iter, + path); + + gtk_list_store_set (info->dialog->priv->list_store_remotes, + &iter, + COLUMN_FETCH, NULL, + -1); + + gtk_tree_path_free (path); + } + + gtk_tree_row_reference_free (info->reference); + g_object_unref (info->runner); + + g_slice_free (FetchInfo, info); +} + +static void +gitg_repository_dialog_finalize (GObject *object) +{ + GitgRepositoryDialog *dialog = GITG_REPOSITORY_DIALOG (object); + + if (dialog->priv->repository) + { + g_object_unref (dialog->priv->repository); + } + + if (dialog->priv->config) + { + g_object_unref (dialog->priv->config); + } + + GList *copy = g_list_copy (dialog->priv->fetchers); + GList *item; + + for (item = copy; item; item = g_list_next (item)) + { + gitg_runner_cancel (((FetchInfo *)item->data)->runner); + } + + g_list_free (copy); + g_list_foreach (dialog->priv->fetchers, (GFunc)fetch_cleanup, NULL); + + G_OBJECT_CLASS (gitg_repository_dialog_parent_class)->finalize (object); +} + +static void +gitg_repository_dialog_class_init (GitgRepositoryDialogClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = gitg_repository_dialog_finalize; + + g_type_class_add_private (object_class, sizeof(GitgRepositoryDialogPrivate)); +} + +static void +gitg_repository_dialog_init (GitgRepositoryDialog *self) +{ + self->priv = GITG_REPOSITORY_DIALOG_GET_PRIVATE (self); +} + +static void +on_response(GtkWidget *dialog, gint response, gpointer data) +{ + gtk_widget_destroy(dialog); +} + +static void +update_fetch (GitgRepositoryDialog *dialog) +{ + GtkTreeSelection *selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes); + GList *rows; + GtkTreeModel *model; + + rows = gtk_tree_selection_get_selected_rows (selection, &model); + + GList *item; + gboolean show_fetch = FALSE; + + for (item = rows; item; item = g_list_next (item)) + { + GtkTreePath *path = (GtkTreePath *)item->data; + GtkTreeIter iter; + GdkPixbuf *fetch; + + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, COLUMN_FETCH, &fetch, -1); + + if (!fetch) + { + show_fetch = TRUE; + } + else + { + g_object_unref (fetch); + } + } + + if (!rows) + { + show_fetch = TRUE; + } + + if (show_fetch) + { + gtk_image_set_from_stock (dialog->priv->image_fetch_remote, GTK_STOCK_REFRESH, GTK_ICON_SIZE_BUTTON); + gtk_button_set_label (dialog->priv->button_fetch_remote, _("Fetch")); + } + else + { + gtk_image_set_from_stock (dialog->priv->image_fetch_remote, GTK_STOCK_CANCEL, GTK_ICON_SIZE_BUTTON); + gtk_button_set_label (dialog->priv->button_fetch_remote, _("Cancel")); + } + + dialog->priv->show_fetch = show_fetch; + + g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (rows); +} + +static void +update_sensitivity (GitgRepositoryDialog *dialog) +{ + GtkTreeSelection *selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes); + GList *rows; + GtkTreeModel *model; + + rows = gtk_tree_selection_get_selected_rows (selection, &model); + + gtk_widget_set_sensitive (GTK_WIDGET (dialog->priv->button_remove_remote), rows != NULL); + gtk_widget_set_sensitive (GTK_WIDGET (dialog->priv->button_fetch_remote), rows != NULL); + + update_fetch (dialog); + + g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (rows); +} + +static void +add_remote (GitgRepositoryDialog *dialog, gchar const *name, gchar const *url, GtkTreeIter *iter) +{ + GtkTreeIter it; + + gtk_list_store_append (dialog->priv->list_store_remotes, iter ? iter : &it); + gtk_list_store_set (dialog->priv->list_store_remotes, + iter ? iter : &it, + COLUMN_NAME, name, + COLUMN_URL, url, + COLUMN_FETCH, NULL, + -1); +} + +static void +on_spinner_frame (GitgSpinner *spinner, GdkPixbuf *pixbuf, FetchInfo *info) +{ + GtkTreeIter iter; + GtkTreePath *path = gtk_tree_row_reference_get_path (info->reference); + + gtk_tree_model_get_iter (GTK_TREE_MODEL (info->dialog->priv->list_store_remotes), + &iter, + path); + + gtk_list_store_set (info->dialog->priv->list_store_remotes, + &iter, + COLUMN_FETCH, pixbuf, + -1); + + gtk_tree_path_free (path); +} + +static void +on_fetch_begin_loading (GitgRunner *runner, FetchInfo *info) +{ + info->spinner = gitg_spinner_new (GTK_ICON_SIZE_MENU); + gitg_spinner_set_screen (info->spinner, gtk_widget_get_screen (GTK_WIDGET (info->dialog))); + + g_signal_connect (info->spinner, "frame", G_CALLBACK (on_spinner_frame), info); + gitg_spinner_start (info->spinner); + + update_fetch (info->dialog); +} + +static void +on_fetch_end_loading (GitgRunner *runner, gboolean cancelled, FetchInfo *info) +{ + if (cancelled || !gtk_tree_row_reference_valid (info->reference)) + { + fetch_cleanup (info); + return; + } + + GitgRepositoryDialog *dialog = info->dialog; + + fetch_cleanup (info); + + update_fetch (dialog); + gitg_repository_reload (dialog->priv->repository); +} + +static void +fetch_remote (GitgRepositoryDialog *dialog, GtkTreeIter *iter) +{ + GitgRunner *runner = gitg_runner_new (1000); + FetchInfo *info = g_slice_new0 (FetchInfo); + GtkTreeModel *model = GTK_TREE_MODEL (dialog->priv->list_store_remotes); + + GtkTreePath *path = gtk_tree_model_get_path (model, iter); + + info->dialog = dialog; + info->reference = gtk_tree_row_reference_new (model, path); + info->runner = runner; + + gtk_tree_path_free (path); + + g_signal_connect (runner, + "begin-loading", + G_CALLBACK (on_fetch_begin_loading), + info); + + g_signal_connect (runner, + "end-loading", + G_CALLBACK (on_fetch_end_loading), + info); + + dialog->priv->fetchers = g_list_prepend (dialog->priv->fetchers, info); + + gchar *name; + gtk_tree_model_get (model, iter, COLUMN_NAME, &name, -1); + + gitg_repository_run_commandv (dialog->priv->repository, + runner, + NULL, + "fetch", + name, + NULL); + + g_free (name); +} + +static void +on_selection_changed (GtkTreeSelection *selection, GitgRepositoryDialog *dialog) +{ + update_sensitivity (dialog); +} + +static void +init_remotes(GitgRepositoryDialog *dialog) +{ + gchar *ret = gitg_config_get_value_regex (dialog->priv->config, "remote\\..*\\.url"); + + if (!ret) + { + update_sensitivity (dialog); + return; + } + + gchar **lines = g_strsplit(ret, "\n", -1); + gchar **ptr = lines; + + GRegex *regex = g_regex_new ("remote\\.(.+?)\\.url\\s+(.*)", 0, 0, NULL); + + while (*ptr) + { + GMatchInfo *info = NULL; + + if (g_regex_match (regex, *ptr, 0, &info)) + { + gchar *name = g_match_info_fetch (info, 1); + gchar *url = g_match_info_fetch (info, 2); + + add_remote (dialog, name, url, NULL); + + g_free (name); + g_free (url); + } + + g_match_info_free (info); + ++ptr; + } + + g_regex_unref (regex); + g_strfreev (lines); + g_free (ret); + + GtkTreeSelection *selection; + selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes); + + gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); + g_signal_connect (selection, "changed", G_CALLBACK (on_selection_changed), dialog); + + update_sensitivity (dialog); +} + +static void +init_properties(GitgRepositoryDialog *dialog) +{ + gchar *val; + + val = gitg_config_get_value (dialog->priv->config, "user.name"); + gtk_entry_set_text (dialog->priv->entry_repository_user_name, val ? val : ""); + g_free (val); + + val = gitg_config_get_value (dialog->priv->config, "user.email"); + gtk_entry_set_text (dialog->priv->entry_repository_user_email, val ? val : ""); + g_free (val); + + init_remotes(dialog); +} + +static void +fetch_data_cb (GtkTreeViewColumn *column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + GitgRepositoryDialog *dialog) +{ + GdkPixbuf *fetch; + + gtk_tree_model_get (model, iter, COLUMN_FETCH, &fetch, -1); + + if (fetch) + { + g_object_set (cell, "pixbuf", fetch, NULL); + g_object_unref (fetch); + } + else + { + g_object_set (cell, + "stock-id", GTK_STOCK_NETWORK, + NULL); + } +} + +static void +create_repository_dialog (GitgWindow *window) +{ + GitgRepository *repository = gitg_window_get_repository (window); + + if (!repository) + { + return; + } + + GtkBuilder *b = gitg_utils_new_builder("gitg-repository.ui"); + + repository_dialog = GITG_REPOSITORY_DIALOG(gtk_builder_get_object(b, "dialog_repository")); + g_object_add_weak_pointer(G_OBJECT(repository_dialog), (gpointer *)&repository_dialog); + + repository_dialog->priv->repository = g_object_ref (repository); + repository_dialog->priv->config = gitg_config_new (repository); + + repository_dialog->priv->entry_repository_user_name = GTK_ENTRY(gtk_builder_get_object(b, "entry_repository_user_name")); + repository_dialog->priv->entry_repository_user_email = GTK_ENTRY(gtk_builder_get_object(b, "entry_repository_user_email")); + + repository_dialog->priv->tree_view_remotes = GTK_TREE_VIEW(gtk_builder_get_object(b, "tree_view_remotes")); + repository_dialog->priv->list_store_remotes = GTK_LIST_STORE(gtk_builder_get_object(b, "list_store_remotes")); + + repository_dialog->priv->button_remove_remote = GTK_BUTTON(gtk_builder_get_object(b, "button_remove_remote")); + repository_dialog->priv->button_fetch_remote = GTK_BUTTON(gtk_builder_get_object(b, "button_fetch_remote")); + repository_dialog->priv->image_fetch_remote = GTK_IMAGE(gtk_builder_get_object(b, "image_fetch_remote")); + + GObject *column = gtk_builder_get_object(b, "tree_view_remotes_column_name"); + GObject *renderer = gtk_builder_get_object(b, "tree_view_remotes_renderer_icon"); + + gtk_tree_view_column_set_cell_data_func (GTK_TREE_VIEW_COLUMN (column), + GTK_CELL_RENDERER (renderer), + (GtkTreeCellDataFunc)fetch_data_cb, + repository_dialog, + NULL); + + gtk_builder_connect_signals(b, repository_dialog); + g_object_unref (b); + + gchar *basename = g_path_get_basename(gitg_repository_get_path(repository)); + gchar *title = g_strdup_printf("%s - %s", _("Properties"), basename); + + gtk_window_set_title(GTK_WINDOW(repository_dialog), title); + g_free (title); + g_free (basename); + + g_signal_connect(repository_dialog, "response", G_CALLBACK(on_response), NULL); + + init_properties(repository_dialog); +} + +GitgRepositoryDialog * +gitg_repository_dialog_present(GitgWindow *window) +{ + if (!repository_dialog) + create_repository_dialog(window); + + gtk_window_set_transient_for(GTK_WINDOW(repository_dialog), GTK_WINDOW (window)); + gtk_window_present(GTK_WINDOW(repository_dialog)); + + return repository_dialog; +} + +void +gitg_repository_dialog_close () +{ + if (repository_dialog) + { + gtk_widget_destroy (GTK_WIDGET (repository_dialog)); + } +} + +static void +fetch_remote_cancel (GitgRepositoryDialog *dialog, GtkTreeIter *iter) +{ + GList *item; + GtkTreePath *orig; + GtkTreeModel *model = GTK_TREE_MODEL (dialog->priv->list_store_remotes); + + orig = gtk_tree_model_get_path (model, iter); + + for (item = dialog->priv->fetchers; item; item = g_list_next (item)) + { + FetchInfo *info = (FetchInfo *)item->data; + GtkTreePath *ref = gtk_tree_row_reference_get_path (info->reference); + gboolean equal = gtk_tree_path_compare (orig, ref) == 0; + + gtk_tree_path_free (ref); + + if (equal) + { + gitg_runner_cancel (info->runner); + break; + } + } + + gtk_tree_path_free (orig); +} + +void +on_button_fetch_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes); + + GList *rows = gtk_tree_selection_get_selected_rows (selection, &model); + GList *item; + + for (item = rows; item; item = g_list_next (item)) + { + GtkTreePath *path = (GtkTreePath *)item->data; + GtkTreeIter iter; + GdkPixbuf *fetch; + + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, COLUMN_FETCH, &fetch, -1); + + if (!fetch && dialog->priv->show_fetch) + { + fetch_remote (dialog, &iter); + } + else if (fetch && !dialog->priv->show_fetch) + { + fetch_remote_cancel (dialog, &iter); + } + + if (fetch) + { + g_object_unref (fetch); + } + + gtk_tree_path_free (path); + } + + if (rows) + { + update_fetch (dialog); + } + + g_list_free (rows); +} + +static gboolean +remove_remote (GitgRepositoryDialog *dialog, gchar const *name) +{ + return gitg_repository_commandv (dialog->priv->repository, + NULL, + "remote", + "rm", + name, + NULL); +} + +void +on_button_remove_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes); + + GList *rows = gtk_tree_selection_get_selected_rows (selection, &model); + GList *refs = NULL; + GList *item; + + for (item = rows; item; item = g_list_next (item)) + { + GtkTreeRowReference *ref; + GtkTreePath *path = (GtkTreePath *)item->data; + + ref = gtk_tree_row_reference_new (model, path); + refs = g_list_prepend (refs, ref); + + gtk_tree_path_free (path); + } + + refs = g_list_reverse (refs); + g_list_free (rows); + + for (item = refs; item; item = g_list_next (item)) + { + GtkTreeRowReference *ref = (GtkTreeRowReference *)item->data; + GtkTreePath *path = gtk_tree_row_reference_get_path (ref); + GtkTreeIter iter; + gchar *name; + + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, COLUMN_NAME, &name, -1); + + gboolean ret = remove_remote (dialog, name); + + if (ret) + { + gtk_list_store_remove (dialog->priv->list_store_remotes, &iter); + } + + gtk_tree_row_reference_free (ref); + gtk_tree_path_free (path); + } + + g_list_free (refs); +} + +void +on_button_add_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog) +{ + GtkTreeModel *model = GTK_TREE_MODEL (dialog->priv->list_store_remotes); + GtkTreeIter iter; + + gint num = 0; + + if (gtk_tree_model_get_iter_first (model, &iter)) + { + do + { + gchar *name; + gtk_tree_model_get (model, &iter, COLUMN_NAME, &name, -1); + + if (g_str_has_prefix (name, "remote")) + { + gint n = atoi (name + 6); + + if (n > num) + { + num = n; + } + } + + g_free (name); + } while (gtk_tree_model_iter_next (model, &iter)); + } + + gchar *name = g_strdup_printf ("remote%d", num + 1); + gchar const url[] = "git://example.com/repository.git"; + + if (gitg_repository_commandv (dialog->priv->repository, NULL, "remote", "add", name, url, NULL)) + { + GtkTreeIter iter; + GtkTreePath *path; + + add_remote (dialog, name, url, &iter); + + path = gtk_tree_model_get_path (GTK_TREE_MODEL (dialog->priv->list_store_remotes), &iter); + + gtk_tree_view_set_cursor (dialog->priv->tree_view_remotes, + path, + gtk_tree_view_get_column (dialog->priv->tree_view_remotes, COLUMN_NAME), + TRUE); + + gtk_tree_path_free (path); + } + + g_free (name); +} + +gboolean +on_entry_repository_user_name_focus_out_event (GtkEntry *entry, GdkEventFocus *focus, GitgRepositoryDialog *dialog) +{ + gchar const *text; + + text = gtk_entry_get_text (entry); + gitg_config_set_value (dialog->priv->config, "user.name", *text ? text : NULL); + + return FALSE; +} + +gboolean +on_entry_repository_user_email_focus_out_event (GtkEntry *entry, GdkEventFocus *focus, GitgRepositoryDialog *dialog) +{ + gchar const *text; + + text = gtk_entry_get_text (entry); + gitg_config_set_value (dialog->priv->config, "user.email", *text ? text : NULL); + + return FALSE; +} + +void +on_remote_name_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, GitgRepositoryDialog *dialog) +{ + if (!*new_text) + { + return; + } + + GtkTreePath *tp = gtk_tree_path_new_from_string (path); + GtkTreeIter iter; + + gtk_tree_model_get_iter (GTK_TREE_MODEL (dialog->priv->list_store_remotes), + &iter, + tp); + + gchar *oldname; + gchar *url; + + gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->list_store_remotes), + &iter, + COLUMN_NAME, &oldname, + COLUMN_URL, &url, + -1); + + if (gitg_repository_commandv (dialog->priv->repository, NULL, "remote", "add", new_text, url, NULL)) + { + remove_remote (dialog, oldname); + + gtk_list_store_set (dialog->priv->list_store_remotes, + &iter, + COLUMN_NAME, new_text, + -1); + + fetch_remote (dialog, &iter); + } + + g_free (oldname); + g_free (url); + + gtk_tree_path_free (tp); +} + +void +on_remote_url_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, GitgRepositoryDialog *dialog) +{ + if (!*new_text) + { + return; + } + + GtkTreePath *tp = gtk_tree_path_new_from_string (path); + GtkTreeIter iter; + + gtk_tree_model_get_iter (GTK_TREE_MODEL (dialog->priv->list_store_remotes), + &iter, + tp); + + gchar *name; + gchar *url; + + gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->list_store_remotes), + &iter, + COLUMN_NAME, &name, + COLUMN_URL, &url, + -1); + + if (g_strcmp0 (url, new_text) == 0) + { + g_free (name); + g_free (url); + + gtk_tree_path_free (tp); + + return; + } + + g_free (url); + + gchar *key = g_strconcat ("remote.", name, ".url", NULL); + g_free (name); + + if (gitg_config_set_value (dialog->priv->config, key, new_text)) + { + gtk_list_store_set (dialog->priv->list_store_remotes, + &iter, + COLUMN_URL, new_text, + -1); + + fetch_remote (dialog, &iter); + } + + g_free (key); + gtk_tree_path_free (tp); +} diff -Nru gitg-0.0.3/gitg/gitg-repository-dialog.h gitg-0.0.6/gitg/gitg-repository-dialog.h --- gitg-0.0.3/gitg/gitg-repository-dialog.h 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-repository-dialog.h 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,40 @@ +#ifndef __GITG_REPOSITORY_DIALOG_H__ +#define __GITG_REPOSITORY_DIALOG_H__ + +#include +#include "gitg-window.h" + +G_BEGIN_DECLS + +#define GITG_TYPE_REPOSITORY_DIALOG (gitg_repository_dialog_get_type ()) +#define GITG_REPOSITORY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REPOSITORY_DIALOG, GitgRepositoryDialog)) +#define GITG_REPOSITORY_DIALOG_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REPOSITORY_DIALOG, GitgRepositoryDialog const)) +#define GITG_REPOSITORY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_REPOSITORY_DIALOG, GitgRepositoryDialogClass)) +#define GITG_IS_REPOSITORY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REPOSITORY_DIALOG)) +#define GITG_IS_REPOSITORY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_REPOSITORY_DIALOG)) +#define GITG_REPOSITORY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_REPOSITORY_DIALOG, GitgRepositoryDialogClass)) + +typedef struct _GitgRepositoryDialog GitgRepositoryDialog; +typedef struct _GitgRepositoryDialogClass GitgRepositoryDialogClass; +typedef struct _GitgRepositoryDialogPrivate GitgRepositoryDialogPrivate; + +struct _GitgRepositoryDialog +{ + GtkDialog parent; + + GitgRepositoryDialogPrivate *priv; +}; + +struct _GitgRepositoryDialogClass +{ + GtkDialogClass parent_class; +}; + +GType gitg_repository_dialog_get_type (void) G_GNUC_CONST; +GitgRepositoryDialog *gitg_repository_dialog_present(GitgWindow *window); + +void gitg_repository_dialog_close (); + +G_END_DECLS + +#endif /* __GITG_REPOSITORY_DIALOG_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-repository.h gitg-0.0.6/gitg/gitg-repository.h --- gitg-0.0.3/gitg/gitg-repository.h 2009-04-23 21:58:20.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-repository.h 2010-01-24 12:17:16.000000000 +0000 @@ -51,15 +51,16 @@ struct _GitgRepository { GObject parent; - + GitgRepositoryPrivate *priv; }; struct _GitgRepositoryClass { GObjectClass parent_class; - - void (*load) (GitgRepository *); + + void (*load) (GitgRepository *repository); + void (*loaded) (GitgRepository *repository); }; GType gitg_repository_get_type (void) G_GNUC_CONST; @@ -68,6 +69,7 @@ GitgRunner *gitg_repository_get_loader(GitgRepository *repository); gboolean gitg_repository_load(GitgRepository *repository, int argc, gchar const **argv, GError **error); +gboolean gitg_repository_get_loaded(GitgRepository *repository); void gitg_repository_add(GitgRepository *repository, GitgRevision *revision, GtkTreeIter *iter); void gitg_repository_clear(GitgRepository *repository); @@ -79,6 +81,7 @@ GSList *gitg_repository_get_refs(GitgRepository *repository); GSList *gitg_repository_get_refs_for_hash(GitgRepository *repository, gchar const *hash); GitgRef *gitg_repository_get_current_ref(GitgRepository *repository); +GitgRef *gitg_repository_get_current_working_ref(GitgRepository *repository); gchar *gitg_repository_relative(GitgRepository *repository, GFile *file); @@ -106,6 +109,9 @@ void gitg_repository_reload(GitgRepository *repository); +gchar **gitg_repository_get_remotes (GitgRepository *repository); +gchar const **gitg_repository_get_current_selection (GitgRepository *repository); + G_END_DECLS #endif /* __GITG_REPOSITORY_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-repository.ui gitg-0.0.6/gitg/gitg-repository.ui --- gitg-0.0.3/gitg/gitg-repository.ui 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-repository.ui 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + 5 + Properties + 500 + 300 + normal + False + + + True + 2 + + + True + True + + + True + 12 + vertical + 6 + + + True + True + automatic + automatic + etched-in + + + True + True + list_store_remotes + True + + + Name + + + + + + + True + + + + 0 + + + + + + + URL + True + + + True + + + + 1 + + + + + + + + + 0 + + + + + True + + + Fetch + True + True + True + image_fetch_remote + + + + False + 0 + + + + + gtk-add + True + True + True + True + + + + False + False + end + 2 + + + + + gtk-remove + True + True + True + True + + + + False + False + end + 1 + + + + + False + 1 + + + + + + + True + Remotes + + + False + + + + + True + 12 + vertical + 6 + + + True + 0 + <b>User</b> + True + + + False + 0 + + + + + True + + + True + + + + False + False + 0 + + + + + True + 2 + 2 + 6 + 6 + + + True + 0 + Name: + + + GTK_SHRINK | GTK_FILL + + + + + True + 0 + E-mail: + + + 1 + 2 + GTK_SHRINK | GTK_FILL + + + + + True + True + + + + + 1 + 2 + + + + + True + True + + + + + 1 + 2 + 1 + 2 + + + + + 1 + + + + + False + 1 + + + + + 1 + + + + + True + Configuration + + + 1 + False + + + + + 1 + + + + + True + end + + + gtk-close + True + True + True + True + + + False + False + 0 + + + + + False + end + 0 + + + + + + button_close + + + + True + gtk-refresh + + diff -Nru gitg-0.0.3/gitg/gitg-revision.c gitg-0.0.6/gitg/gitg-revision.c --- gitg-0.0.3/gitg/gitg-revision.c 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-revision.c 2010-01-24 12:17:16.000000000 +0000 @@ -33,7 +33,7 @@ Hash *parents; guint num_parents; char sign; - + GSList *lanes; gint8 mylane; @@ -54,9 +54,9 @@ g_free(revision->author); g_free(revision->subject); g_free(revision->parents); - + free_lanes(revision); - + g_slice_free(GitgRevision, revision); } @@ -78,7 +78,7 @@ if (!g_atomic_int_dec_and_test(&revision->refcount)) return; - + gitg_revision_finalize(revision); } @@ -89,28 +89,28 @@ gint64 timestamp) { GitgRevision *rv = g_slice_new0 (GitgRevision); - + rv->refcount = 1; gitg_utils_sha1_to_hash(sha, rv->hash); rv->author = g_strdup(author); rv->subject = g_strdup(subject); rv->timestamp = timestamp; - + if (parents) { gchar **shas = g_strsplit(parents, " ", 0); gint num = g_strv_length(shas); rv->parents = g_new(Hash, num + 1); - + gint i; for (i = 0; i < num; ++i) gitg_utils_sha1_to_hash(shas[i], rv->parents[i]); - + g_strfreev(shas); rv->num_parents = num; } - + return rv; } @@ -160,13 +160,13 @@ gitg_revision_get_parents(GitgRevision *revision) { gchar **ret = g_new(gchar *, revision->num_parents + 1); - + int i; for (i = 0; i < revision->num_parents; ++i) { ret[i] = g_new(gchar, HASH_SHA_SIZE + 1); gitg_utils_hash_to_sha1(revision->parents[i], ret[i]); - + ret[i][HASH_SHA_SIZE] = '\0'; } @@ -186,7 +186,7 @@ { revision->lanes = g_slist_remove(revision->lanes, lane); gitg_lane_free(lane); - + return revision->lanes; } @@ -194,7 +194,7 @@ gitg_revision_insert_lane(GitgRevision *revision, GitgLane *lane, gint index) { revision->lanes = g_slist_insert(revision->lanes, lane, index); - + return revision->lanes; } @@ -202,16 +202,16 @@ update_lane_type(GitgRevision *revision) { GitgLane *lane = (GitgLane *)g_slist_nth_data(revision->lanes, revision->mylane); - + if (lane == NULL) return; - + lane->type &= ~(GITG_LANE_SIGN_LEFT | GITG_LANE_SIGN_RIGHT | GITG_LANE_SIGN_STASH | GITG_LANE_SIGN_STAGED | GITG_LANE_SIGN_UNSTAGED); - + switch (revision->sign) { case '<': @@ -237,7 +237,7 @@ { free_lanes(revision); revision->lanes = lanes; - + if (mylane >= 0) revision->mylane = mylane; @@ -290,3 +290,20 @@ { return (GitgLane *)g_slist_nth_data(revision->lanes, revision->mylane); } + +gchar * +gitg_revision_get_format_patch_name (GitgRevision *revision) +{ + gchar *ret = g_strdup (revision->subject); + gchar *ptr = ret; + + do + { + if (g_utf8_get_char (ptr) == ' ') + { + *ptr = '-'; + } + } while (*(ptr = g_utf8_next_char (ptr))); + + return ret; +} diff -Nru gitg-0.0.3/gitg/gitg-revision.h gitg-0.0.6/gitg/gitg-revision.h --- gitg-0.0.3/gitg/gitg-revision.h 2009-02-17 10:50:00.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-revision.h 2010-01-24 12:17:16.000000000 +0000 @@ -66,6 +66,8 @@ GitgRevision *gitg_revision_ref(GitgRevision *revision); void gitg_revision_unref(GitgRevision *revision); +gchar *gitg_revision_get_format_patch_name (GitgRevision *revision); + G_END_DECLS #endif /* __GITG_REVISION_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-revision-tree-store.c gitg-0.0.6/gitg/gitg-revision-tree-store.c --- gitg-0.0.3/gitg/gitg-revision-tree-store.c 2009-02-08 14:38:39.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-revision-tree-store.c 2010-01-24 12:17:16.000000000 +0000 @@ -38,10 +38,10 @@ drag_source_row_draggable(GtkTreeDragSource *drag_source, GtkTreePath *path) { GtkTreeIter iter; - + if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(drag_source), &iter, path)) return FALSE; - + // Test for 'empty' gchar *content_type; gtk_tree_model_get(GTK_TREE_MODEL(drag_source), &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1); @@ -58,11 +58,11 @@ if (!gtk_selection_data_targets_include_uri(selection_data)) return FALSE; - + GtkTreeIter iter; if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(drag_source), &iter, path)) return FALSE; - + g_message("data get"); return FALSE; } @@ -78,7 +78,7 @@ gitg_revision_tree_store_drag_source_iface_init(GtkTreeDragSourceIface *iface) { parent_drag_source_iface = *iface; - + iface->row_draggable = drag_source_row_draggable; iface->drag_data_get = drag_source_drag_data_get; iface->drag_data_delete = drag_source_drag_data_delete; @@ -88,7 +88,7 @@ gitg_revision_tree_store_finalize(GObject *object) { //GitgRevisionTreeStore *self = GITG_REVISION_TREE_STORE(object); - + G_OBJECT_CLASS(gitg_revision_tree_store_parent_class)->finalize(object); } @@ -96,9 +96,9 @@ gitg_revision_tree_store_class_init(GitgRevisionTreeStoreClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_revision_tree_store_finalize; - + //g_type_class_add_private(object_class, sizeof(GitgRevisionTreeStorePrivate)); } @@ -112,7 +112,7 @@ G_TYPE_STRING, G_TYPE_STRING }; - + gtk_tree_store_set_column_types(GTK_TREE_STORE(self), GITG_REVISION_TREE_STORE_N_COLUMNS, column_types); } diff -Nru gitg-0.0.3/gitg/gitg-revision-tree-store.h gitg-0.0.6/gitg/gitg-revision-tree-store.h --- gitg-0.0.3/gitg/gitg-revision-tree-store.h 2009-02-08 14:38:46.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-revision-tree-store.h 2010-01-24 12:17:16.000000000 +0000 @@ -48,7 +48,7 @@ struct _GitgRevisionTreeStore { GtkTreeStore parent; - + GitgRevisionTreeStorePrivate *priv; }; diff -Nru gitg-0.0.3/gitg/gitg-revision-tree-view.c gitg-0.0.6/gitg/gitg-revision-tree-view.c --- gitg-0.0.3/gitg/gitg-revision-tree-view.c 2009-02-08 14:38:54.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-revision-tree-view.c 2010-01-24 12:17:16.000000000 +0000 @@ -38,7 +38,7 @@ /* Properties */ enum { PROP_0, - + PROP_REPOSITORY, PROP_REVISION }; @@ -57,6 +57,8 @@ GitgRevision *revision; GitgRunner *loader; GtkTreePath *load_path; + + gboolean skipped_blank_line; }; static void gitg_revision_tree_view_buildable_iface_init(GtkBuildableIface *iface); @@ -72,21 +74,21 @@ gitg_revision_tree_view_finalize(GObject *object) { GitgRevisionTreeView *self = GITG_REVISION_TREE_VIEW(object); - + if (self->priv->revision) gitg_revision_unref(self->priv->revision); - + if (self->priv->repository) g_object_unref(self->priv->repository); - + if (self->priv->load_path) gtk_tree_path_free(self->priv->load_path); - + g_free(self->priv->drag_dir); - + if (self->priv->drag_files) g_strfreev(self->priv->drag_files); - + gitg_runner_cancel(self->priv->loader); g_object_unref(self->priv->loader); @@ -97,7 +99,7 @@ gitg_revision_tree_view_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GitgRevisionTreeView *self = GITG_REVISION_TREE_VIEW(object); - + switch (prop_id) { case PROP_REVISION: @@ -113,7 +115,7 @@ gitg_revision_tree_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgRevisionTreeView *self = GITG_REVISION_TREE_VIEW(object); - + switch (prop_id) { case PROP_REPOSITORY: @@ -123,17 +125,17 @@ self->priv->revision = NULL; g_object_notify(object, "revision"); } - + if (self->priv->repository) g_object_unref(self->priv->repository); - + self->priv->repository = g_value_dup_object(value); gitg_revision_tree_view_reload(self); break; case PROP_REVISION: if (self->priv->revision) gitg_revision_unref(self->priv->revision); - + self->priv->revision = g_value_dup_boxed(value); gitg_revision_tree_view_reload(self); break; @@ -147,20 +149,20 @@ loaded(GitgRevisionTreeView *view, GtkTreeIter *iter) { gint num = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(view->priv->store), iter); - + if (num != 1) return TRUE; - + gchar *content_type = NULL; GtkTreeIter child; - + if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(view->priv->store), &child, iter)) return FALSE; gtk_tree_model_get(GTK_TREE_MODEL(view->priv->store), &child, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1); gboolean ret = content_type != NULL; g_free(content_type); - + return ret; } @@ -169,7 +171,7 @@ { if (loaded(view, iter)) return; - + load_node(view, iter); } @@ -177,7 +179,7 @@ show_binary_information(GitgRevisionTreeView *tree) { GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tree->priv->contents)); - + gtk_text_buffer_set_text(buffer, _("Cannot display file content as text"), -1); gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buffer), NULL); } @@ -186,12 +188,12 @@ on_selection_changed(GtkTreeSelection *selection, GitgRevisionTreeView *tree) { GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tree->priv->contents)); - + GtkTreeModel *model; GtkTreeIter iter; - + gitg_runner_cancel(tree->priv->content_runner); - + gtk_text_buffer_set_text(buffer, "", -1); if (!tree->priv->revision) @@ -199,39 +201,43 @@ GList *rows = gtk_tree_selection_get_selected_rows(selection, &model); GtkTreePath *path = NULL; - + if (g_list_length(rows) == 1) path = gtk_tree_path_copy((GtkTreePath *)rows->data); - + g_list_foreach(rows, (GFunc)gtk_tree_path_free, NULL); g_list_free(rows); - + if (!path) return; - + + gchar *name; gchar *content_type; gtk_tree_model_get_iter(model, &iter, path); gtk_tree_path_free(path); - gtk_tree_model_get(model, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1); - + gtk_tree_model_get(model, &iter, + GITG_REVISION_TREE_STORE_NAME_COLUMN, &name, + GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1); + if (!content_type) return; - + if (!gitg_utils_can_display_content_type(content_type)) { show_binary_information(tree); } else { - GtkSourceLanguage *language = gitg_utils_get_language(content_type); + GtkSourceLanguage *language = gitg_utils_get_language(name, content_type); gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buffer), language); - + gchar *id = node_identity(tree, &iter); - gitg_repository_run_commandv(tree->priv->repository, tree->priv->content_runner, NULL, "show", id, NULL); - + gitg_repository_run_commandv(tree->priv->repository, tree->priv->content_runner, NULL, "show", "--encoding=UTF-8", id, NULL); + g_free(id); } - + + g_free(name); g_free(content_type); } @@ -240,13 +246,13 @@ { if (!parent) return NULL; - + gchar *name; gtk_tree_model_get(model, parent, GITG_REVISION_TREE_STORE_NAME_COLUMN, &name, -1); - + GtkTreeIter parent_iter; gchar *ret; - + if (gtk_tree_model_iter_parent(model, &parent_iter, parent)) { gchar *path = node_path(model, &parent_iter); @@ -258,7 +264,7 @@ { ret = name; } - + return ret; } @@ -268,9 +274,9 @@ GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view->priv->tree_view); GtkTreeModel *model; - GList *rows = gtk_tree_selection_get_selected_rows(selection, &model); + GList *rows = gtk_tree_selection_get_selected_rows(selection, &model); gint num = g_list_length(rows); - + if (num == 0) return; @@ -284,19 +290,19 @@ GtkTreePath *path = (GtkTreePath *)item->data; GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, path); - + *ptr++ = node_path(model, &iter); gtk_tree_path_free(path); } - + *ptr = NULL; g_list_free(rows); - - // Prepend temporary directory in uri list + + // Prepend temporary directory in uri list g_free(tree_view->priv->drag_dir); gchar const *tmp = g_get_tmp_dir(); tree_view->priv->drag_dir = g_build_filename(tmp, "gitg-export-XXXXXX", NULL); - + if (!mkdtemp(tree_view->priv->drag_dir)) { g_warning("Could not create temporary directory for export"); @@ -312,10 +318,10 @@ { gchar *tmp = g_build_filename(tree_view->priv->drag_dir, *ptr, NULL); g_free(*ptr); - + GFile *file = g_file_new_for_path(tmp); *ptr++ = g_file_get_uri(file); - + g_free(tmp); } } @@ -334,19 +340,19 @@ { if (path_currently_selected) return TRUE; - + // Test for (Empty) GtkTreeIter iter; - + if (!gtk_tree_model_get_iter(model, &iter, path)) return FALSE; - + gchar *content_type; gtk_tree_model_get(model, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1); - + if (!content_type) return FALSE; - + g_free(content_type); return TRUE; } @@ -358,7 +364,7 @@ { g_strfreev(tree_view->priv->drag_files); tree_view->priv->drag_files = NULL; - + g_free(tree_view->priv->drag_dir); tree_view->priv->drag_dir = NULL; } @@ -374,7 +380,7 @@ GitgRevisionTreeView *tree_view = GITG_REVISION_TREE_VIEW(buildable); tree_view->priv->tree_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "revision_tree")); tree_view->priv->contents = GTK_SOURCE_VIEW(gtk_builder_get_object(builder, "revision_tree_contents")); - + gtk_text_view_set_buffer(GTK_TEXT_VIEW(tree_view->priv->contents), GTK_TEXT_BUFFER(gtk_source_buffer_new(NULL))); gitg_utils_set_monospace_font(GTK_WIDGET(tree_view->priv->contents)); @@ -383,18 +389,18 @@ GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view->priv->tree_view); gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); gtk_tree_selection_set_select_function(selection, test_selection, NULL, NULL); - + // Setup drag source GtkTargetEntry targets[] = { {"text/uri-list", GTK_TARGET_OTHER_APP, 0} }; - + // Set tree view as a drag source gtk_drag_source_set(GTK_WIDGET(tree_view->priv->tree_view), GDK_BUTTON1_MASK, targets, 1, GDK_ACTION_DEFAULT | GDK_ACTION_COPY); - + // Connect signals g_signal_connect_after(tree_view->priv->tree_view, "row-expanded", G_CALLBACK(on_row_expanded), tree_view); - + g_signal_connect(tree_view->priv->tree_view, "drag-data-get", G_CALLBACK(on_drag_data_get), tree_view); g_signal_connect(tree_view->priv->tree_view, "drag-end", G_CALLBACK(on_drag_end), tree_view); g_signal_connect(selection, "changed", G_CALLBACK(on_selection_changed), tree_view); @@ -404,7 +410,7 @@ gitg_revision_tree_view_buildable_iface_init(GtkBuildableIface *iface) { parent_iface = *iface; - + iface->parser_finished = gitg_revision_tree_view_parser_finished; } @@ -412,7 +418,7 @@ gitg_revision_tree_view_class_init(GitgRevisionTreeViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_revision_tree_view_finalize; object_class->set_property = gitg_revision_tree_view_set_property; object_class->get_property = gitg_revision_tree_view_get_property; @@ -430,7 +436,7 @@ "The revision", GITG_TYPE_REVISION, G_PARAM_READWRITE)); - + g_type_class_add_private(object_class, sizeof(GitgRevisionTreeViewPrivate)); } @@ -448,22 +454,22 @@ { if (!tree->priv->load_path) return; - + GtkTreeIter parent; GtkTreeModel *model = GTK_TREE_MODEL(tree->priv->store); gtk_tree_model_get_iter(model, &parent, tree->priv->load_path); - + if (gtk_tree_model_iter_n_children(model, &parent) != 2) return; - + GtkTreeIter child; gtk_tree_model_iter_children(model, &child, &parent); - + do { gchar *content_type; gtk_tree_model_get(model, &child, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1); - + if (!content_type) { gtk_tree_store_remove(tree->priv->store, &child); @@ -478,7 +484,7 @@ { GtkTreeIter parent; GtkTreeIter iter; - + if (tree->priv->load_path) { gtk_tree_model_get_iter(GTK_TREE_MODEL(tree->priv->store), &parent, tree->priv->load_path); @@ -488,24 +494,24 @@ { gtk_tree_store_append(tree->priv->store, &iter, NULL); } - + int len = strlen(line); gboolean isdir = FALSE; - + if (line[len - 1] == '/') { isdir = TRUE; line[len - 1] = '\0'; } - + GIcon *icon; - + if (isdir) { GtkTreeIter empty; gtk_tree_store_append(tree->priv->store, &empty, &iter); gtk_tree_store_set(tree->priv->store, &empty, GITG_REVISION_TREE_STORE_NAME_COLUMN, _("(Empty)"), -1); - + gchar *content_type = get_content_type(line, TRUE); gtk_tree_store_set(tree->priv->store, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, content_type, -1); icon = g_content_type_get_icon(content_type); @@ -520,7 +526,7 @@ icon = g_content_type_get_icon(content_type); gtk_tree_store_set(tree->priv->store, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, content_type, -1); g_free(content_type); - + if (icon && G_IS_THEMED_ICON(icon)) g_themed_icon_append_name(G_THEMED_ICON(icon), "text-x-generic"); } @@ -528,34 +534,34 @@ if (G_IS_THEMED_ICON(icon)) { GtkIconTheme *theme = gtk_icon_theme_get_default(); - + gchar **names; g_object_get(icon, "names", &names, NULL); - + GtkIconInfo *info = gtk_icon_theme_choose_icon(theme, (gchar const **)names, 16, 0); - + if (info) { GError *error = NULL; GdkPixbuf *pixbuf = gtk_icon_info_load_icon(info, &error); - + if (!pixbuf) { g_warning("Error loading icon: %s", error->message); g_error_free(error); } - + gtk_tree_store_set(tree->priv->store, &iter, GITG_REVISION_TREE_STORE_ICON_COLUMN, pixbuf, -1); - + if (pixbuf) g_object_unref(pixbuf); - + gtk_icon_info_free(info); } - + g_strfreev(names); } - + if (icon) g_object_unref(icon); @@ -567,18 +573,17 @@ on_update(GitgRunner *runner, gchar **buffer, GitgRevisionTreeView *tree) { gchar *line; - gboolean skip = TRUE; - + while ((line = *buffer++)) { - if (skip) + if (!tree->priv->skipped_blank_line) { if (*line == '\0') - skip = FALSE; - + tree->priv->skipped_blank_line = TRUE; + continue; } - + append_node(tree, line); } } @@ -589,22 +594,22 @@ // First sort directories before files gboolean da = gtk_tree_model_iter_has_child(model, a) != 0; gboolean db = gtk_tree_model_iter_has_child(model, b) != 0; - + if (da != db) return da ? -1 : 1; - + // Then sort on name gchar *s1; gchar *s2; - + gtk_tree_model_get(model, a, GITG_REVISION_TREE_STORE_NAME_COLUMN, &s1, -1); gtk_tree_model_get(model, b, GITG_REVISION_TREE_STORE_NAME_COLUMN, &s2, -1); - + int ret = gitg_utils_sort_names(s1, s2); - + g_free(s1); g_free(s2); - + return ret; } @@ -614,19 +619,19 @@ gchar *line; GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tree->priv->contents)); GtkTextIter iter; - + gtk_text_buffer_get_end_iter(buf, &iter); - + while ((line = *buffer++)) { gtk_text_buffer_insert(buf, &iter, line, -1); gtk_text_buffer_insert(buf, &iter, "\n", -1); } - + if (gtk_source_buffer_get_language(GTK_SOURCE_BUFFER(buf)) == NULL) { gchar *content_type = gitg_utils_guess_content_type(buf); - + if (content_type && !gitg_utils_can_display_content_type(content_type)) { gitg_runner_cancel(runner); @@ -634,10 +639,10 @@ } else { - GtkSourceLanguage *language = gitg_utils_get_language(content_type); + GtkSourceLanguage *language = gitg_utils_get_language(NULL, content_type); gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buf), language); } - + g_free(content_type); } } @@ -647,13 +652,13 @@ { self->priv = GITG_REVISION_TREE_VIEW_GET_PRIVATE(self); self->priv->store = GTK_TREE_STORE(gitg_revision_tree_store_new()); - + gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(self->priv->store), 1, (GtkTreeIterCompareFunc)compare_func, self, NULL); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(self->priv->store), 1, GTK_SORT_ASCENDING); - + self->priv->loader = gitg_runner_new(1000); g_signal_connect(self->priv->loader, "update", G_CALLBACK(on_update), self); - + self->priv->content_runner = gitg_runner_new(5000); g_signal_connect(self->priv->content_runner, "update", G_CALLBACK(on_contents_update), self); } @@ -662,14 +667,14 @@ node_identity(GitgRevisionTreeView *tree, GtkTreeIter *parent) { gchar *sha = gitg_revision_get_sha1(tree->priv->revision); - + // Path consists of the SHA1 of the revision and the actual file path // from parent gchar *par = node_path(GTK_TREE_MODEL(tree->priv->store), parent); gchar *path = g_strconcat(sha, ":", par, NULL); g_free(sha); g_free(par); - + return path; } @@ -678,18 +683,19 @@ { if (gitg_runner_running(tree->priv->loader)) return; - + if (tree->priv->load_path) gtk_tree_path_free(tree->priv->load_path); - + gchar *id = node_identity(tree, parent); if (parent) - tree->priv->load_path = gtk_tree_model_get_path(GTK_TREE_MODEL(tree->priv->store), parent); + tree->priv->load_path = gtk_tree_model_get_path(GTK_TREE_MODEL(tree->priv->store), parent); else tree->priv->load_path = NULL; - gitg_repository_run_commandv(tree->priv->repository, tree->priv->loader, NULL, "show", id, NULL); + tree->priv->skipped_blank_line = FALSE; + gitg_repository_run_commandv(tree->priv->repository, tree->priv->loader, NULL, "show", "--encoding=UTF-8", id, NULL); g_free(id); } @@ -703,7 +709,7 @@ gitg_revision_tree_view_update(GitgRevisionTreeView *tree, GitgRepository *repository, GitgRevision *revision) { g_return_if_fail(GITG_IS_REVISION_TREE_VIEW(tree)); - + g_object_set(G_OBJECT(tree), "repository", repository, "revision", revision, NULL); gitg_revision_tree_view_reload(tree); } @@ -712,12 +718,12 @@ gitg_revision_tree_view_reload(GitgRevisionTreeView *tree) { g_return_if_fail(GITG_IS_REVISION_TREE_VIEW(tree)); - + gitg_runner_cancel(tree->priv->loader); gtk_tree_store_clear(tree->priv->store); - + if (!(tree->priv->repository && tree->priv->revision)) return; - + load_node(tree, NULL); } diff -Nru gitg-0.0.3/gitg/gitg-revision-tree-view.h gitg-0.0.6/gitg/gitg-revision-tree-view.h --- gitg-0.0.3/gitg/gitg-revision-tree-view.h 2009-02-08 14:39:03.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-revision-tree-view.h 2010-01-24 12:17:16.000000000 +0000 @@ -43,7 +43,7 @@ struct _GitgRevisionTreeView { GtkHPaned parent; - + GitgRevisionTreeViewPrivate *priv; }; diff -Nru gitg-0.0.3/gitg/gitg-revision-view.c gitg-0.0.6/gitg/gitg-revision-view.c --- gitg-0.0.3/gitg/gitg-revision-view.c 2009-04-21 23:41:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-revision-view.c 2010-01-24 12:17:16.000000000 +0000 @@ -64,10 +64,10 @@ GtkSourceView *diff; GtkTreeView *diff_files; GtkListStore *list_store_diff_files; - + GitgRunner *diff_runner; GitgRunner *diff_files_runner; - + GitgRepository *repository; GitgRevision *revision; GSList *cached_headers; @@ -107,16 +107,16 @@ diff_file_new(gchar const *from, gchar *to, gchar const *status, gchar const *filename) { DiffFile *f = g_slice_new(DiffFile); - + strncpy(f->index_from, from, HASH_SHA_SIZE); strncpy(f->index_to, to, HASH_SHA_SIZE); - + f->index_from[HASH_SHA_SIZE] = '\0'; f->index_to[HASH_SHA_SIZE] = '\0'; f->visible = FALSE; - + DiffFileStatus st; - + switch (*status) { case 'A': @@ -129,7 +129,7 @@ st = DIFF_FILE_STATUS_MODIFIED; break; } - + f->status = st; f->filename = g_strdup(filename); f->refcount = 1; @@ -158,10 +158,10 @@ diff_file_get_type() { static GType gtype = 0; - + if (!G_UNLIKELY(gtype)) gtype = g_boxed_type_register_static("DiffFile", (GBoxedCopyFunc)diff_file_copy, (GBoxedFreeFunc)diff_file_unref); - + return gtype; } @@ -170,7 +170,7 @@ { GtkLabel *label = GTK_LABEL(object); gchar const *text = gtk_label_get_text(label); - + gchar *newtext = g_strconcat("", text, "", NULL); gtk_label_set_markup(label, newtext); @@ -182,9 +182,9 @@ { DiffFile *f; gtk_tree_model_get(model, iter, 0, &f, -1); - + gchar const *id = NULL; - + switch (f->status) { case DIFF_FILE_STATUS_NEW: @@ -199,7 +199,7 @@ default: break; } - + g_object_set(G_OBJECT(renderer), "stock-id", id, NULL); diff_file_unref(f); } @@ -209,9 +209,9 @@ { DiffFile *f; gtk_tree_model_get(model, iter, 0, &f, -1); - + g_object_set(G_OBJECT(renderer), "text", f->filename, NULL); - + diff_file_unref(f); } @@ -220,13 +220,13 @@ { DiffFile *f; gtk_tree_model_get(model, iter, 0, &f, -1); - + if (!f) return FALSE; gboolean ret = f->visible; diff_file_unref(f); - + return ret; } @@ -235,24 +235,24 @@ { if (event->button != 1) return FALSE; - + if (event->window != gtk_tree_view_get_bin_window(treeview)) return FALSE; GtkTreePath *path; if (!gtk_tree_view_get_path_at_pos(treeview, event->x, event->y, &path, NULL, NULL, NULL)) return FALSE; - + GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); gboolean ret = FALSE; - + if (gtk_tree_selection_path_is_selected(selection, path) && gtk_tree_selection_count_selected_rows(selection) == 1) { /* deselect */ gtk_tree_selection_unselect_path(selection, path); ret = TRUE; } - + gtk_tree_path_free(path); return ret; } @@ -272,20 +272,20 @@ rvv->priv->parents = GTK_TABLE(gtk_builder_get_object(builder, "table_parents")); rvv->priv->diff = GTK_SOURCE_VIEW(gtk_builder_get_object(builder, "revision_diff")); rvv->priv->diff_files = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_revision_files")); - + GtkTreeSelection *selection = gtk_tree_view_get_selection(rvv->priv->diff_files); gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); g_signal_connect(selection, "changed", G_CALLBACK(on_diff_files_selection_changed), rvv); - + g_signal_connect(rvv->priv->diff_files, "button-press-event", G_CALLBACK(on_diff_files_button_press), rvv); - + rvv->priv->list_store_diff_files = gtk_list_store_new(1, diff_file_get_type()); GtkTreeModel *filter = gtk_tree_model_filter_new(GTK_TREE_MODEL(rvv->priv->list_store_diff_files), NULL); gtk_tree_view_set_model(rvv->priv->diff_files, filter); - + gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filter), diff_file_visible, NULL, NULL); - + gtk_tree_view_column_set_cell_data_func(GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "revision_files_column_icon")), GTK_CELL_RENDERER(gtk_builder_get_object(builder, "revision_files_cell_renderer_icon")), (GtkTreeCellDataFunc)revision_files_icon, @@ -297,16 +297,16 @@ (GtkTreeCellDataFunc)revision_files_name, rvv, NULL); - + GtkSourceLanguageManager *manager = gtk_source_language_manager_get_default(); GtkSourceLanguage *language = gtk_source_language_manager_get_language(manager, "gitgdiff"); GtkSourceBuffer *buffer = gtk_source_buffer_new_with_language(language); g_object_unref(language); - + GtkSourceStyleSchemeManager *schememanager = gtk_source_style_scheme_manager_get_default(); GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_get_scheme(schememanager, "gitg"); gtk_source_buffer_set_style_scheme(buffer, scheme); - + gitg_utils_set_monospace_font(GTK_WIDGET(rvv->priv->diff)); gtk_text_view_set_buffer(GTK_TEXT_VIEW(rvv->priv->diff), GTK_TEXT_BUFFER(buffer)); @@ -317,11 +317,11 @@ "label_date_lbl", "label_parent_lbl" }; - + int i; for (i = 0; i < sizeof(lbls) / sizeof(gchar *); ++i) update_markup(gtk_builder_get_object(builder, lbls[i])); - + g_signal_connect(rvv->priv->diff, "header-added", G_CALLBACK(on_header_added), rvv); } @@ -329,7 +329,7 @@ gitg_revision_view_buildable_iface_init(GtkBuildableIface *iface) { parent_iface = *iface; - + iface->parser_finished = gitg_revision_view_parser_finished; } @@ -351,15 +351,18 @@ gitg_revision_view_finalize(GObject *object) { GitgRevisionView *self = GITG_REVISION_VIEW(object); - + gitg_runner_cancel(self->priv->diff_runner); g_object_unref(self->priv->diff_runner); - + gitg_runner_cancel(self->priv->diff_files_runner); g_object_unref(self->priv->diff_files_runner); - - g_object_unref(self->priv->repository); - + + if (self->priv->repository) + { + g_object_unref(self->priv->repository); + } + free_cached_headers(self); G_OBJECT_CLASS(gitg_revision_view_parent_class)->finalize(object); @@ -385,14 +388,14 @@ gitg_revision_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgRevisionView *self = GITG_REVISION_VIEW(object); - + switch (prop_id) { case PROP_REPOSITORY: { if (self->priv->repository) g_object_unref(self->priv->repository); - + self->priv->repository = g_value_dup_object(value); } break; @@ -407,7 +410,7 @@ gitg_revision_view_class_init(GitgRevisionViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_revision_view_finalize; object_class->set_property = gitg_revision_view_set_property; @@ -429,7 +432,7 @@ g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); - + g_type_class_add_private(object_class, sizeof(GitgRevisionViewPrivate)); } @@ -459,20 +462,20 @@ visible_from_cached_headers(GitgRevisionView *view, DiffFile *f) { GSList *item; - + for (item = view->priv->cached_headers; item; item = g_slist_next(item)) { CachedHeader *header = (CachedHeader *)item->data; gchar *from; gchar *to; - + gitg_diff_iter_get_index(&header->iter, &from, &to); if (gitg_diff_iter_get_index(&header->iter, &from, &to) && match_indices(f, from, to)) { f->visible = TRUE; f->iter = header->iter; - + return; } } @@ -483,7 +486,7 @@ { GtkTreeIter iter; gtk_list_store_append(view->priv->list_store_diff_files, &iter); - + /* see if it is in the cached headers */ visible_from_cached_headers(view, f); gtk_list_store_set(view->priv->list_store_diff_files, &iter, 0, f, -1); @@ -493,25 +496,33 @@ on_diff_files_update(GitgRunner *runner, gchar **buffer, GitgRevisionView *self) { gchar **line; - + while (*(line = buffer++)) { if (**line == '\0') continue; - - gchar **parts = g_strsplit(*line, " ", 5); - - if (g_strv_length(parts) == 5) + + // Count parents + gint parents = 0; + gchar *ptr = *line; + + while (*(ptr++) == ':') + ++parents; + + gint numparts = 3 + 2 * parents; + gchar **parts = g_strsplit(ptr, " ", numparts); + + if (g_strv_length(parts) == numparts) { - gchar **files = g_strsplit(parts[4], "\t", -1); - DiffFile *f = diff_file_new(parts[2], parts[3], files[0], files[1]); - + gchar **files = g_strsplit(parts[numparts - 1], "\t", -1); + + DiffFile *f = diff_file_new(parts[parents + 1], parts[numparts - 2], files[0], files[1]); + add_diff_file(self, f); diff_file_unref(f); g_strfreev(files); } - else g_strfreev(parts); } @@ -529,19 +540,19 @@ on_diff_end_loading(GitgRunner *runner, gboolean cancelled, GitgRevisionView *self) { gdk_window_set_cursor(GTK_WIDGET(self->priv->diff)->window, NULL); - + if (cancelled) return; gchar sign = gitg_revision_get_sign(self->priv->revision); - + if (sign == 't' || sign == 'u') { gchar *head = gitg_repository_parse_head(self->priv->repository); const gchar *cached = NULL; - + if (sign == 't') - cached == "--cached"; + cached = "--cached"; gitg_repository_run_commandv(self->priv->repository, self->priv->diff_files_runner, NULL, "diff-index", "--raw", "-M", "--abbrev=40", head, cached, NULL); @@ -551,7 +562,7 @@ { gchar *sha = gitg_revision_get_sha1(self->priv->revision); gitg_repository_run_commandv(self->priv->repository, self->priv->diff_files_runner, NULL, - "show", "--raw", "-M", "--pretty=format:", "--abbrev=40", sha, NULL); + "show", "--encoding=UTF-8", "--raw", "-M", "--pretty=format:", "--abbrev=40", sha, NULL); g_free(sha); } } @@ -562,9 +573,9 @@ gchar *line; GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->priv->diff)); GtkTextIter iter; - + gtk_text_buffer_get_end_iter(buf, &iter); - + while ((line = *buffer++)) { gtk_text_buffer_insert(buf, &iter, line, -1); @@ -576,15 +587,15 @@ gitg_revision_view_init(GitgRevisionView *self) { self->priv = GITG_REVISION_VIEW_GET_PRIVATE(self); - + self->priv->diff_runner = gitg_runner_new(2000); - + g_signal_connect(self->priv->diff_runner, "begin-loading", G_CALLBACK(on_diff_begin_loading), self); g_signal_connect(self->priv->diff_runner, "update", G_CALLBACK(on_diff_update), self); g_signal_connect(self->priv->diff_runner, "end-loading", G_CALLBACK(on_diff_end_loading), self); - + self->priv->diff_files_runner = gitg_runner_new(2000); - + g_signal_connect(self->priv->diff_files_runner, "begin-loading", G_CALLBACK(on_diff_files_begin_loading), self); g_signal_connect(self->priv->diff_files_runner, "update", G_CALLBACK(on_diff_files_update), self); g_signal_connect(self->priv->diff_files_runner, "end-loading", G_CALLBACK(on_diff_files_end_loading), self); @@ -597,9 +608,9 @@ { if (event->button != 1) return FALSE; - + GitgRevisionView *rvv = GITG_REVISION_VIEW(userdata); - + gchar *hash = (gchar *)g_object_get_data(G_OBJECT(ev), HASH_KEY); g_signal_emit(rvv, signals[PARENT_ACTIVATED], 0, hash); @@ -611,17 +622,17 @@ { GtkWidget *ev = gtk_event_box_new(); GtkWidget *lbl = gtk_label_new(NULL); - + gchar *markup = g_strconcat("", hash, "", NULL); gtk_label_set_markup(GTK_LABEL(lbl), markup); g_free(markup); gtk_misc_set_alignment(GTK_MISC(lbl), 0.0, 0.5); gtk_container_add(GTK_CONTAINER(ev), lbl); - + gtk_widget_show(ev); gtk_widget_show(lbl); - + g_object_set_data_full(G_OBJECT(ev), HASH_KEY, (gpointer)gitg_utils_sha1_to_hash_new(hash), (GDestroyNotify)g_free); g_signal_connect(ev, "button-release-event", G_CALLBACK(on_parent_clicked), self); @@ -633,82 +644,93 @@ { GList *children = gtk_container_get_children(GTK_CONTAINER(self->priv->parents)); GList *item; - + for (item = children; item; item = item->next) gtk_container_remove(GTK_CONTAINER(self->priv->parents), GTK_WIDGET(item->data)); - + g_list_free(children); - + if (!revision) return; - + gchar **parents = gitg_revision_get_parents(revision); gint num = g_strv_length(parents); gint i; - + gtk_table_resize(self->priv->parents, num ? num : num + 1, 2); GdkCursor *cursor = gdk_cursor_new(GDK_HAND1); Hash hash; - + for (i = 0; i < num; ++i) { GtkWidget *widget = make_parent_label(self, parents[i]); gtk_table_attach(self->priv->parents, widget, 0, 1, i, i + 1, GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 0, 0); - + gtk_widget_realize(widget); gdk_window_set_cursor(widget->window, cursor); - + /* find subject */ gitg_utils_sha1_to_hash(parents[i], hash); - + GitgRevision *revision = gitg_repository_lookup(self->priv->repository, hash); - + if (revision) { GtkWidget *subject = gtk_label_new(NULL); gchar *escaped = g_markup_escape_text(gitg_revision_get_subject(revision), -1); gchar *text = g_strdup_printf("(%s)", escaped); - + gtk_label_set_markup(GTK_LABEL(subject), text); - + g_free(escaped); g_free(text); - + gtk_widget_show(subject); gtk_misc_set_alignment(GTK_MISC(subject), 0.0, 0.5); gtk_label_set_ellipsize(GTK_LABEL(subject), PANGO_ELLIPSIZE_MIDDLE); gtk_label_set_single_line_mode(GTK_LABEL(subject), TRUE); - + gtk_table_attach(self->priv->parents, subject, 1, 2, i, i + 1, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_SHRINK, 0, 0); } } - gdk_cursor_unref(cursor); - g_strfreev(parents); + gdk_cursor_unref(cursor); + g_strfreev(parents); } static void update_diff(GitgRevisionView *self, GitgRepository *repository) -{ +{ + GtkTreeSelection *selection; + // First cancel a possibly still running diff gitg_runner_cancel(self->priv->diff_runner); gitg_runner_cancel(self->priv->diff_files_runner); - + free_cached_headers(self); - + // Clear the buffer GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->priv->diff)); gtk_text_buffer_set_text(buffer, "", 0); - + + selection = gtk_tree_view_get_selection(self->priv->diff_files); + g_signal_handlers_block_by_func(selection, + G_CALLBACK(on_diff_files_selection_changed), + self); + gtk_list_store_clear(self->priv->list_store_diff_files); - + + g_signal_handlers_unblock_by_func(selection, + G_CALLBACK(on_diff_files_selection_changed), + self); + if (!self->priv->revision) return; gchar sign = gitg_revision_get_sign(self->priv->revision); - + switch (sign) { case 't': @@ -756,7 +778,7 @@ gchar *date = gitg_utils_timestamp_to_str(gitg_revision_get_timestamp(revision)); gtk_label_set_text(self->priv->date, date); g_free(date); - + gchar *sha = gitg_revision_get_sha1(revision); gtk_label_set_text(self->priv->sha, sha); @@ -772,10 +794,10 @@ gtk_label_set_text(self->priv->date, ""); gtk_label_set_text(self->priv->sha, ""); } - + // Update parents update_parents(self, revision); - + // Update diff self->priv->revision = revision; update_diff(self, repository); @@ -792,10 +814,10 @@ g_object_unref(view->priv->repository); view->priv->repository = NULL; } - + if (repository) view->priv->repository = g_object_ref(repository); - + g_object_notify(G_OBJECT(view), "repository"); } @@ -804,25 +826,25 @@ { gchar *from; gchar *to; - + if (!gitg_diff_iter_get_index(iter, &from, &to)) return FALSE; - + GtkTreeModel *model = GTK_TREE_MODEL(view->priv->list_store_diff_files); - + if (!gtk_tree_model_get_iter_first(model, it)) return FALSE; - + do { gtk_tree_model_get(model, it, 0, f, -1); - + if (match_indices(*f, from, to)) return TRUE; - + diff_file_unref(*f); } while (gtk_tree_model_iter_next(model, it)); - + return FALSE; } @@ -831,7 +853,7 @@ { GtkTreeIter it; DiffFile *f; - + if (find_diff_file(self, iter, &it, &f)) { if (!f->visible) @@ -840,10 +862,10 @@ f->iter = *iter; diff_file_unref(f); - + GtkTreeModel *model = GTK_TREE_MODEL(self->priv->list_store_diff_files); GtkTreePath *path = gtk_tree_model_get_path(model, &it); - + gtk_tree_model_row_changed(model, path, &it); gtk_tree_path_free(path); } @@ -868,10 +890,10 @@ foreach_selection_changed(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ForeachSelectionData *data) { gboolean visible = data->numselected == 0 || gtk_tree_selection_path_is_selected(data->selection, path); - + DiffFile *f = NULL; gtk_tree_model_get(model, iter, 0, &f, -1); - + if (f->visible) { gitg_diff_iter_set_visible(&f->iter, visible); diff -Nru gitg-0.0.3/gitg/gitg-revision-view.h gitg-0.0.6/gitg/gitg-revision-view.h --- gitg-0.0.3/gitg/gitg-revision-view.h 2009-03-01 07:57:43.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-revision-view.h 2010-01-24 12:17:16.000000000 +0000 @@ -43,13 +43,13 @@ struct _GitgRevisionView { GtkVBox parent; - + GitgRevisionViewPrivate *priv; }; struct _GitgRevisionViewClass { GtkVBoxClass parent_class; - + void (* parent_activated) (GitgRevisionView *revision_view, gchar *hash); }; diff -Nru gitg-0.0.3/gitg/gitg-runner.c gitg-0.0.6/gitg/gitg-runner.c --- gitg-0.0.3/gitg/gitg-runner.c 2009-04-05 16:24:14.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-runner.c 2010-01-24 12:17:16.000000000 +0000 @@ -26,6 +26,8 @@ #include #include #include "gitg-debug.h" +#include +#include #include #include @@ -59,12 +61,13 @@ GOutputStream *output_stream; GCancellable *cancellable; gboolean synchronized; - + guint buffer_size; gchar *buffer; gchar *read_buffer; gchar **lines; - + gchar **environment; + gint exit_status; }; @@ -82,7 +85,7 @@ AsyncData *data = g_slice_new(AsyncData); data->runner = runner; data->cancellable = g_object_ref(cancellable); - + return data; } @@ -107,10 +110,13 @@ static void runner_io_exit(GPid pid, gint status, GitgRunner *runner) { - g_spawn_close_pid(pid); - runner->priv->pid = 0; - - runner->priv->exit_status = status; + g_spawn_close_pid(pid); + + if (runner->priv->pid) + { + runner->priv->pid = 0; + runner->priv->exit_status = status; + } } static void @@ -120,7 +126,7 @@ while (runner->priv->lines[i]) g_free(runner->priv->lines[i++]); - + runner->priv->lines[0] = NULL; } @@ -128,20 +134,21 @@ gitg_runner_finalize(GObject *object) { GitgRunner *runner = GITG_RUNNER(object); - + /* Cancel possible running */ gitg_runner_cancel(runner); /* Free potential stored lines */ free_lines(runner); - + /* Remove buffer slice */ g_slice_free1(sizeof(gchar) * (runner->priv->buffer_size + 1), runner->priv->read_buffer); g_slice_free1(sizeof(gchar *) * (runner->priv->buffer_size + 1), runner->priv->lines); - + /* Remove line buffer */ g_free(runner->priv->buffer); - + g_strfreev (runner->priv->environment); + g_object_unref(runner->priv->cancellable); G_OBJECT_CLASS(gitg_runner_parent_class)->finalize(object); @@ -169,10 +176,10 @@ static void set_buffer_size(GitgRunner *runner, guint buffer_size) { - runner->priv->buffer_size = buffer_size; + runner->priv->buffer_size = buffer_size; runner->priv->lines = g_slice_alloc(sizeof(gchar *) * (runner->priv->buffer_size + 1)); runner->priv->lines[0] = NULL; - + runner->priv->read_buffer = g_slice_alloc(sizeof(gchar) * (runner->priv->buffer_size + 1)); } @@ -180,7 +187,7 @@ gitg_runner_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GitgRunner *runner = GITG_RUNNER(object); - + switch (prop_id) { case PROP_BUFFER_SIZE: @@ -199,7 +206,7 @@ gitg_runner_class_init(GitgRunnerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_runner_finalize; object_class->get_property = gitg_runner_get_property; @@ -213,14 +220,14 @@ G_MAXUINT, 1, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - + g_object_class_install_property (object_class, PROP_SYNCHRONIZED, g_param_spec_boolean ("synchronized", "SYNCHRONIZED", "Whether the command is ran synchronized", FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - + runner_signals[BEGIN_LOADING] = g_signal_new ("begin-loading", G_OBJECT_CLASS_TYPE (object_class), @@ -230,7 +237,7 @@ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - + runner_signals[UPDATE] = g_signal_new ("update", G_OBJECT_CLASS_TYPE (object_class), @@ -241,7 +248,7 @@ G_TYPE_NONE, 1, G_TYPE_POINTER); - + runner_signals[END_LOADING] = g_signal_new ("end-loading", G_OBJECT_CLASS_TYPE (object_class), @@ -260,7 +267,7 @@ gitg_runner_init(GitgRunner *self) { self->priv = GITG_RUNNER_GET_PRIVATE(self); - + self->priv->cancellable = g_cancellable_new(); } @@ -268,7 +275,7 @@ gitg_runner_new(guint buffer_size) { g_assert(buffer_size > 0); - + return GITG_RUNNER(g_object_new(GITG_TYPE_RUNNER, "buffer_size", buffer_size, "synchronized", FALSE, @@ -294,7 +301,7 @@ if (*ptr++ == find) return ptr - 1; } - + return NULL; } @@ -302,17 +309,17 @@ parse_lines(GitgRunner *runner, gchar *buffer, gssize size) { gchar *ptr = buffer; - gchar *newline; + gchar *newline = NULL; gint i = 0; free_lines(runner); - + while ((newline = gitg_strnchr(ptr, size, '\n'))) { gssize linesize = newline - ptr; size -= linesize + 1; *newline = '\0'; - + if (runner->priv->buffer) { gchar *buffered = g_strconcat(runner->priv->buffer, ptr, NULL); @@ -326,11 +333,9 @@ { runner->priv->lines[i++] = gitg_utils_convert_utf8(ptr, linesize); } - + ptr += linesize + 1; } - - runner->priv->lines[i] = NULL; if (size) { @@ -345,6 +350,8 @@ runner->priv->buffer = tmp; } + runner->priv->lines[i] = NULL; + g_signal_emit(runner, runner_signals[UPDATE], 0, runner->priv->lines); } @@ -357,14 +364,14 @@ g_object_unref(runner->priv->output_stream); runner->priv->output_stream = NULL; } - + if (runner->priv->input_stream) { g_input_stream_close (runner->priv->input_stream, NULL, NULL); g_object_unref(runner->priv->input_stream); runner->priv->input_stream = NULL; } - + g_free(runner->priv->buffer); runner->priv->buffer = NULL; } @@ -382,10 +389,10 @@ g_signal_emit(runner, runner_signals[END_LOADING], 0, FALSE); return FALSE; } - + g_output_stream_close(runner->priv->output_stream, NULL, NULL); } - + gsize read = runner->priv->buffer_size; while (read == runner->priv->buffer_size) @@ -398,23 +405,26 @@ g_signal_emit(runner, runner_signals[END_LOADING], 0, TRUE); return FALSE; } - + runner->priv->read_buffer[read] = '\0'; parse_lines(runner, runner->priv->read_buffer, read); } - gint status; + gchar *b[] = {runner->priv->buffer, NULL}; + g_signal_emit(runner, runner_signals[UPDATE], 0, b); + + gint status = 0; waitpid(runner->priv->pid, &status, 0); runner_io_exit(runner->priv->pid, status, runner); close_streams(runner); - + g_signal_emit(runner, runner_signals[END_LOADING], 0, FALSE); - + if (status != 0 && error) g_set_error(error, GITG_RUNNER_ERROR, GITG_RUNNER_ERROR_EXIT, "Did not exit without error code"); - - return status == 0; + + return status == EXIT_SUCCESS; } static void @@ -434,14 +444,14 @@ read_output_ready(GInputStream *stream, GAsyncResult *result, AsyncData *data) { GError *error = NULL; - + gssize read = g_input_stream_read_finish(stream, result, &error); if (g_cancellable_is_cancelled(data->cancellable)) { g_input_stream_close (stream, NULL, NULL); async_data_free(data); - + if (error) g_error_free(error); return; @@ -451,32 +461,33 @@ { g_input_stream_close (stream, NULL, NULL); async_failed(data); - + if (error) g_error_free(error); return; } - + if (read == 0) { /* End */ gchar *b[] = {data->runner->priv->buffer, NULL}; - g_signal_emit(data->runner, runner_signals[UPDATE], 0, b); + g_signal_emit(data->runner, runner_signals[UPDATE], 0, b); - gint status; + gint status = 0; waitpid(data->runner->priv->pid, &status, 0); + runner_io_exit(data->runner->priv->pid, status, data->runner); close_streams(data->runner); g_signal_emit(data->runner, runner_signals[END_LOADING], 0, FALSE); - + async_data_free(data); } else { data->runner->priv->read_buffer[read] = '\0'; parse_lines(data->runner, data->runner->priv->read_buffer, read); - + if (g_cancellable_is_cancelled(data->cancellable)) { g_input_stream_close (stream, NULL, NULL); @@ -499,15 +510,15 @@ { GError *error = NULL; g_output_stream_write_finish(stream, result, &error); - + if (g_cancellable_is_cancelled(data->cancellable)) { if (error) g_error_free(error); - + async_data_free(data); } - + if (error) { async_failed(data); @@ -523,16 +534,16 @@ gitg_runner_run_streams(GitgRunner *runner, GInputStream *input_stream, GOutputStream *output_stream, gchar const *input, GError **error) { gitg_runner_cancel(runner); - + if (output_stream) runner->priv->output_stream = g_object_ref(output_stream); - + if (input_stream) runner->priv->input_stream = g_object_ref(input_stream); - + /* Emit begin-loading signal */ g_signal_emit(runner, runner_signals[BEGIN_LOADING], 0); - + if (runner->priv->synchronized) { return run_sync(runner, input, error); @@ -540,7 +551,7 @@ else { AsyncData *data = async_data_new(runner, runner->priv->cancellable); - + if (input) { g_output_stream_write_async(runner->priv->output_stream, input, -1, G_PRIORITY_DEFAULT, runner->priv->cancellable, (GAsyncReadyCallback)write_input_ready, data); @@ -563,29 +574,41 @@ gitg_runner_cancel(runner); - gboolean ret = g_spawn_async_with_pipes(wd, (gchar **)argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD | (gitg_debug_enabled(GITG_DEBUG_RUNNER) ? 0 : G_SPAWN_STDERR_TO_DEV_NULL), NULL, NULL, &(runner->priv->pid), input ? &stdin : NULL, &stdout, NULL, error); + gboolean ret = g_spawn_async_with_pipes(wd, + (gchar **)argv, + runner->priv->environment, + G_SPAWN_SEARCH_PATH | + G_SPAWN_DO_NOT_REAP_CHILD | + (gitg_debug_enabled(GITG_DEBUG_RUNNER) ? 0 : G_SPAWN_STDERR_TO_DEV_NULL), + NULL, + NULL, + &(runner->priv->pid), + input ? &stdin : NULL, + &stdout, + NULL, + error); if (!ret) { runner->priv->pid = 0; return FALSE; } - + GInputStream *input_stream = NULL; GOutputStream *output_stream = NULL; if (input) output_stream = G_OUTPUT_STREAM(g_unix_output_stream_new(stdin, TRUE)); - - input_stream = G_INPUT_STREAM(g_unix_input_stream_new(stdout, TRUE)); + + input_stream = G_INPUT_STREAM(g_unix_input_stream_new(stdout, TRUE)); ret = gitg_runner_run_streams(runner, input_stream, output_stream, input, error); - + if (output_stream) g_object_unref(output_stream); - + if (input_stream) g_object_unref(input_stream); - + return ret; } @@ -614,6 +637,11 @@ return runner->priv->buffer_size; } +static void +dummy_cb(GPid pid, gint status, gpointer data) +{ +} + void gitg_runner_cancel(GitgRunner *runner) { @@ -623,11 +651,18 @@ { g_cancellable_cancel(runner->priv->cancellable); g_object_unref(runner->priv->cancellable); - + runner->priv->cancellable = g_cancellable_new(); - runner_io_exit(runner->priv->pid, 1, runner); - close_streams(runner); + if (runner->priv->pid) + { + g_child_watch_add(runner->priv->pid, dummy_cb, NULL); + kill(runner->priv->pid, SIGTERM); + + runner_io_exit(runner->priv->pid, EXIT_FAILURE, runner); + } + + close_streams(runner); g_signal_emit(runner, runner_signals[END_LOADING], 0, TRUE); } } @@ -635,7 +670,7 @@ gboolean gitg_runner_running(GitgRunner *runner) { - g_return_val_if_fail(GITG_IS_RUNNER(runner), FALSE); + g_return_val_if_fail(GITG_IS_RUNNER(runner), FALSE); return runner->priv->input_stream != NULL; } @@ -643,6 +678,64 @@ gitg_runner_get_exit_status(GitgRunner *runner) { g_return_val_if_fail(GITG_IS_RUNNER(runner), 1); - + return runner->priv->exit_status; } + +void +gitg_runner_set_environment (GitgRunner *runner, gchar const **environment) +{ + g_return_if_fail (GITG_IS_RUNNER (runner)); + + g_strfreev (runner->priv->environment); + + if (environment == NULL) + { + runner->priv->environment = NULL; + } + else + { + gint len = g_strv_length ((gchar **)environment); + + runner->priv->environment = g_new (gchar *, len + 1); + gint i; + + for (i = 0; i < len; ++i) + { + runner->priv->environment[i] = g_strdup (environment[i]); + } + + runner->priv->environment[len] = NULL; + } +} + +void +gitg_runner_add_environment (GitgRunner *runner, gchar const *key, gchar const *value) +{ + g_return_if_fail (GITG_IS_RUNNER (runner)); + g_return_if_fail (key != NULL); + g_return_if_fail (value != NULL); + + if (runner->priv->environment == NULL) + { + gchar **all = g_listenv (); + + gint i = 0; + runner->priv->environment = g_malloc (sizeof(gchar *) * (g_strv_length (all) + 1)); + + while (all && all[i]) + { + runner->priv->environment[i] = g_strconcat (all[i], "=", g_getenv (all[i]), NULL); + ++i; + } + + runner->priv->environment[i] = NULL; + } + + gint len = g_strv_length (runner->priv->environment); + runner->priv->environment = g_realloc (runner->priv->environment, + sizeof(gchar *) * (len + 2)); + + runner->priv->environment[len] = g_strconcat (key, "=", value, NULL); + runner->priv->environment[len + 1] = NULL; +} diff -Nru gitg-0.0.3/gitg/gitg-runner.h gitg-0.0.6/gitg/gitg-runner.h --- gitg-0.0.3/gitg/gitg-runner.h 2009-04-05 16:23:06.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-runner.h 2010-01-24 12:17:16.000000000 +0000 @@ -50,13 +50,13 @@ struct _GitgRunner { GObject parent; - + GitgRunnerPrivate *priv; }; struct _GitgRunnerClass { GObjectClass parent_class; - + /* signals */ void (* begin_loading) (GitgRunner *runner); void (* update) (GitgRunner *runner, gchar **buffer); @@ -79,6 +79,9 @@ gint gitg_runner_get_exit_status(GitgRunner *runner); void gitg_runner_cancel(GitgRunner *runner); +void gitg_runner_set_environment (GitgRunner *runner, gchar const **environment); +void gitg_runner_add_environment(GitgRunner *runner, gchar const *key, gchar const *value); + GQuark gitg_runner_error_quark(); G_END_DECLS diff -Nru gitg-0.0.3/gitg/gitg-settings.c gitg-0.0.6/gitg/gitg-settings.c --- gitg-0.0.3/gitg/gitg-settings.c 2009-03-01 07:57:43.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-settings.c 2010-01-24 12:17:16.000000000 +0000 @@ -38,9 +38,9 @@ gitg_settings_finalize(GObject *object) { GitgSettings *settings = GITG_SETTINGS(object); - + gitg_settings_save(settings); - + g_free(settings->priv->filename); g_key_file_free(settings->priv->file); @@ -51,7 +51,7 @@ gitg_settings_class_init(GitgSettingsClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - + object_class->finalize = gitg_settings_finalize; g_type_class_add_private(object_class, sizeof(GitgSettingsPrivate)); @@ -61,10 +61,10 @@ gitg_settings_init(GitgSettings *self) { self->priv = GITG_SETTINGS_GET_PRIVATE(self); - + self->priv->file = g_key_file_new(); self->priv->filename = g_build_filename(g_get_user_config_dir(), "gitg", "settings", NULL); - + g_key_file_load_from_file(self->priv->file, self->priv->filename, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, NULL); } @@ -72,10 +72,10 @@ gitg_settings_get_default() { static GitgSettings *instance = NULL; - + if (G_UNLIKELY(instance == NULL)) instance = GITG_SETTINGS(g_object_new(GITG_TYPE_SETTINGS, NULL)); - + return instance; } @@ -83,14 +83,14 @@ gitg_settings_save(GitgSettings *settings) { g_return_if_fail(GITG_IS_SETTINGS(settings)); - + gchar *d = g_path_get_dirname(settings->priv->filename); g_mkdir_with_parents(d, 0755); g_free(d); - + gsize length; gchar *data = g_key_file_to_data(settings->priv->file, &length, NULL); - + if (data) { g_file_set_contents(settings->priv->filename, data, length, NULL); @@ -104,15 +104,15 @@ g_return_val_if_fail(GITG_IS_SETTINGS(settings), def); GError *error = NULL; - + gint ret = g_key_file_get_integer(settings->priv->file, KEY_GROUP, key, &error); - + if (error) { ret = def; g_error_free(error); } - + return ret; } @@ -122,15 +122,15 @@ g_return_val_if_fail(GITG_IS_SETTINGS(settings), def); GError *error = NULL; - + gdouble ret = g_key_file_get_double(settings->priv->file, KEY_GROUP, key, &error); - + if (error) { ret = def; g_error_free(error); } - + return ret; } @@ -141,15 +141,15 @@ g_return_val_if_fail(GITG_IS_SETTINGS(settings), g_strdup(def)); GError *error = NULL; - + gchar *ret = g_key_file_get_string(settings->priv->file, KEY_GROUP, key, &error); - + if (error) { ret = g_strdup(def); g_error_free(error); } - + return ret; } @@ -165,7 +165,7 @@ gitg_settings_set_double(GitgSettings *settings, gchar const *key, gdouble value) { g_return_if_fail(GITG_IS_SETTINGS(settings)); - + g_key_file_set_double(settings->priv->file, KEY_GROUP, key, value); } @@ -173,7 +173,7 @@ gitg_settings_set_string(GitgSettings *settings, gchar const *key, gchar const *value) { g_return_if_fail(GITG_IS_SETTINGS(settings)); - + g_key_file_set_string(settings->priv->file, KEY_GROUP, key, value); } diff -Nru gitg-0.0.3/gitg/gitg-settings.h gitg-0.0.6/gitg/gitg-settings.h --- gitg-0.0.3/gitg/gitg-settings.h 2009-02-08 14:39:41.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-settings.h 2010-01-24 12:17:16.000000000 +0000 @@ -47,8 +47,11 @@ #define gitg_settings_set_vpaned_main_position(settings, value) gitg_settings_set_integer(settings, "vpaned-main-position", value) #define gitg_settings_get_vpaned_main_position(settings, def) gitg_settings_get_integer(settings, "vpaned-main-position", def) -#define gitg_settings_set_hpaned_commit_position(settings, value) gitg_settings_set_integer(settings, "hpaned-commit-position", value) -#define gitg_settings_get_hpaned_commit_position(settings, def) gitg_settings_get_integer(settings, "hpaned-commit-position", def) +#define gitg_settings_set_hpaned_commit1_position(settings, value) gitg_settings_set_integer(settings, "hpaned-commit1-position", value) +#define gitg_settings_get_hpaned_commit1_position(settings, def) gitg_settings_get_integer(settings, "hpaned-commit1-position", def) + +#define gitg_settings_set_hpaned_commit2_position(settings, value) gitg_settings_set_integer(settings, "hpaned-commit2-position", value) +#define gitg_settings_get_hpaned_commit2_position(settings, def) gitg_settings_get_integer(settings, "hpaned-commit2-position", def) #define gitg_settings_set_vpaned_commit_position(settings, value) gitg_settings_set_integer(settings, "vpaned-commit-position", value) #define gitg_settings_get_vpaned_commit_position(settings, def) gitg_settings_get_integer(settings, "vpaned-commit-position", def) @@ -62,7 +65,7 @@ struct _GitgSettings { GObject parent; - + GitgSettingsPrivate *priv; }; diff -Nru gitg-0.0.3/gitg/gitg-spinner.c gitg-0.0.6/gitg/gitg-spinner.c --- gitg-0.0.3/gitg/gitg-spinner.c 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-spinner.c 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,794 @@ +/* + * gitg-spinner.c + * This file is part of gitg + * + * Copyright (C) 2009 - Jesse van den kieboom + * Copyright (C) 2005 - Paolo Maggi + * Copyright (C) 2002-2004 Marco Pesenti Gritti + * Copyright (C) 2004 Christian Persch + * Copyright (C) 2000 - Eazel, 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 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. + */ + +/* + * This widget was originally written by Andy Hertzfeld for + * Nautilus. It was then modified by Marco Pesenti Gritti and Christian Persch + * for Epiphany. + * + * Modified by the gitg Team, 2005. See the AUTHORS file for a + * list of people on the gitg Team. + * See the ChangeLog files for a list of changes. + * + * Modified by the gitg team, 2009. + * + * $Id$ + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gitg-spinner.h" + +#include + +/* Spinner cache implementation */ + +#define GITG_TYPE_SPINNER_CACHE (gitg_spinner_cache_get_type()) +#define GITG_SPINNER_CACHE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), GITG_TYPE_SPINNER_CACHE, GitgSpinnerCache)) +#define GITG_SPINNER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GITG_TYPE_SPINNER_CACHE, GitgSpinnerCacheClass)) +#define GITG_IS_SPINNER_CACHE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), GITG_TYPE_SPINNER_CACHE)) +#define GITG_IS_SPINNER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GITG_TYPE_SPINNER_CACHE)) +#define GITG_SPINNER_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GITG_TYPE_SPINNER_CACHE, GitgSpinnerCacheClass)) + +typedef struct _GitgSpinnerCache GitgSpinnerCache; +typedef struct _GitgSpinnerCacheClass GitgSpinnerCacheClass; +typedef struct _GitgSpinnerCachePrivate GitgSpinnerCachePrivate; + +struct _GitgSpinnerCacheClass +{ + GObjectClass parent_class; +}; + +struct _GitgSpinnerCache +{ + GObject parent_object; + + /*< private >*/ + GitgSpinnerCachePrivate *priv; +}; + +#define GITG_SPINNER_CACHE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), GITG_TYPE_SPINNER_CACHE, GitgSpinnerCachePrivate)) + +struct _GitgSpinnerCachePrivate +{ + /* Hash table of GdkScreen -> GitgSpinnerCacheData */ + GHashTable *hash; +}; + +typedef struct +{ + guint ref_count; + GtkIconSize size; + gint width; + gint height; + GdkPixbuf **animation_pixbufs; + guint n_animation_pixbufs; +} GitgSpinnerImages; + +#define LAST_ICON_SIZE GTK_ICON_SIZE_DIALOG + 1 +#define SPINNER_ICON_NAME "process-working" +#define SPINNER_FALLBACK_ICON_NAME "gnome-spinner" +#define GITG_SPINNER_IMAGES_INVALID ((GitgSpinnerImages *) 0x1) + +typedef struct +{ + GdkScreen *screen; + GtkIconTheme *icon_theme; + GitgSpinnerImages *images[LAST_ICON_SIZE]; +} GitgSpinnerCacheData; + +static void gitg_spinner_cache_class_init (GitgSpinnerCacheClass *klass); +static void gitg_spinner_cache_init (GitgSpinnerCache *cache); + +static GObjectClass *gitg_spinner_cache_parent_class; + +static GType +gitg_spinner_cache_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) + { + const GTypeInfo our_info = + { + sizeof (GitgSpinnerCacheClass), + NULL, + NULL, + (GClassInitFunc) gitg_spinner_cache_class_init, + NULL, + NULL, + sizeof (GitgSpinnerCache), + 0, + (GInstanceInitFunc) gitg_spinner_cache_init + }; + + type = g_type_register_static (G_TYPE_OBJECT, + "GitgSpinnerCache", + &our_info, 0); + } + + return type; +} + +static GitgSpinnerImages * +gitg_spinner_images_ref (GitgSpinnerImages *images) +{ + g_return_val_if_fail (images != NULL, NULL); + + images->ref_count++; + + return images; +} + +static void +gitg_spinner_images_unref (GitgSpinnerImages *images) +{ + g_return_if_fail (images != NULL); + + images->ref_count--; + + if (images->ref_count == 0) + { + guint i; + + /* LOG ("Freeing spinner images %p for size %d", images, images->size); */ + + for (i = 0; i < images->n_animation_pixbufs; ++i) + { + g_object_unref (images->animation_pixbufs[i]); + } + + g_free (images->animation_pixbufs); + g_free (images); + } +} + +static void +gitg_spinner_cache_data_unload (GitgSpinnerCacheData *data) +{ + GtkIconSize size; + GitgSpinnerImages *images; + + g_return_if_fail (data != NULL); + + /* LOG ("GitgSpinnerDataCache unload for screen %p", data->screen); */ + + for (size = GTK_ICON_SIZE_INVALID; size < LAST_ICON_SIZE; ++size) + { + images = data->images[size]; + data->images[size] = NULL; + + if (images != NULL && images != GITG_SPINNER_IMAGES_INVALID) + { + gitg_spinner_images_unref (images); + } + } +} + +static GdkPixbuf * +extract_frame (GdkPixbuf *grid_pixbuf, + int x, + int y, + int size) +{ + GdkPixbuf *pixbuf; + + if (x + size > gdk_pixbuf_get_width (grid_pixbuf) || + y + size > gdk_pixbuf_get_height (grid_pixbuf)) + { + return NULL; + } + + pixbuf = gdk_pixbuf_new_subpixbuf (grid_pixbuf, + x, y, + size, size); + g_return_val_if_fail (pixbuf != NULL, NULL); + + return pixbuf; +} + +static GdkPixbuf * +scale_to_size (GdkPixbuf *pixbuf, + int dw, + int dh) +{ + GdkPixbuf *result; + int pw, ph; + + g_return_val_if_fail (pixbuf != NULL, NULL); + + pw = gdk_pixbuf_get_width (pixbuf); + ph = gdk_pixbuf_get_height (pixbuf); + + if (pw != dw || ph != dh) + { + result = gdk_pixbuf_scale_simple (pixbuf, dw, dh, + GDK_INTERP_BILINEAR); + g_object_unref (pixbuf); + return result; + } + + return pixbuf; +} + +static GitgSpinnerImages * +gitg_spinner_images_load (GdkScreen *screen, + GtkIconTheme *icon_theme, + GtkIconSize icon_size) +{ + GitgSpinnerImages *images; + GdkPixbuf *icon_pixbuf, *pixbuf; + GtkIconInfo *icon_info = NULL; + int grid_width, grid_height, x, y, requested_size, size, isw, ish, n; + const char *icon; + GSList *list = NULL, *l; + + /* LOG ("GitgSpinnerCacheData loading for screen %p at size %d", screen, icon_size); */ + + /* START_PROFILER ("loading spinner animation") */ + + if (screen == NULL) + screen = gdk_screen_get_default (); + + if (!gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen), + icon_size, &isw, &ish)) + goto loser; + + requested_size = MAX (ish, isw); + + /* Load the animation. The 'rest icon' is the 0th frame */ + icon_info = gtk_icon_theme_lookup_icon (icon_theme, + SPINNER_ICON_NAME, + requested_size, 0); + + if (icon_info == NULL) + { + g_warning ("Throbber animation not found"); + + /* If the icon naming spec compliant name wasn't found, try the old name */ + icon_info = gtk_icon_theme_lookup_icon (icon_theme, + SPINNER_FALLBACK_ICON_NAME, + requested_size, 0); + if (icon_info == NULL) + { + g_warning ("Throbber fallback animation not found either"); + goto loser; + } + } + + g_assert (icon_info != NULL); + + size = gtk_icon_info_get_base_size (icon_info); + icon = gtk_icon_info_get_filename (icon_info); + + if (icon == NULL) + goto loser; + + icon_pixbuf = gdk_pixbuf_new_from_file (icon, NULL); + gtk_icon_info_free (icon_info); + icon_info = NULL; + + if (icon_pixbuf == NULL) + { + g_warning ("Could not load the spinner file"); + goto loser; + } + + grid_width = gdk_pixbuf_get_width (icon_pixbuf); + grid_height = gdk_pixbuf_get_height (icon_pixbuf); + + n = 0; + for (y = 0; y < grid_height; y += size) + { + for (x = 0; x < grid_width ; x += size) + { + pixbuf = extract_frame (icon_pixbuf, x, y, size); + + if (pixbuf) + { + list = g_slist_prepend (list, pixbuf); + ++n; + } + else + { + g_warning ("Cannot extract frame (%d, %d) from the grid\n", x, y); + } + } + } + + g_object_unref (icon_pixbuf); + + if (list == NULL) + goto loser; + + /* g_assert (n > 0); */ + + if (size > requested_size) + { + for (l = list; l != NULL; l = l->next) + { + l->data = scale_to_size (l->data, isw, ish); + } + } + + /* Now we've successfully got all the data */ + images = g_new (GitgSpinnerImages, 1); + images->ref_count = 1; + + images->size = icon_size; + images->width = images->height = requested_size; + + images->n_animation_pixbufs = n; + images->animation_pixbufs = g_new (GdkPixbuf *, n); + + for (l = list; l != NULL; l = l->next) + { + g_assert (l->data != NULL); + images->animation_pixbufs[--n] = l->data; + } + g_assert (n == 0); + + g_slist_free (list); + + /* STOP_PROFILER ("loading spinner animation") */ + return images; + +loser: + if (icon_info) + { + gtk_icon_info_free (icon_info); + } + + g_slist_foreach (list, (GFunc) g_object_unref, NULL); + + /* STOP_PROFILER ("loading spinner animation") */ + + return NULL; +} + +static GitgSpinnerCacheData * +gitg_spinner_cache_data_new (GdkScreen *screen) +{ + GitgSpinnerCacheData *data; + + data = g_new0 (GitgSpinnerCacheData, 1); + + data->screen = screen; + data->icon_theme = gtk_icon_theme_get_for_screen (screen); + + g_signal_connect_swapped (data->icon_theme, + "changed", + G_CALLBACK (gitg_spinner_cache_data_unload), + data); + + return data; +} + +static void +gitg_spinner_cache_data_free (GitgSpinnerCacheData *data) +{ + g_return_if_fail (data != NULL); + g_return_if_fail (data->icon_theme != NULL); + + g_signal_handlers_disconnect_by_func (data->icon_theme, + G_CALLBACK (gitg_spinner_cache_data_unload), + data); + + gitg_spinner_cache_data_unload (data); + + g_free (data); +} + +static GitgSpinnerImages * +gitg_spinner_cache_get_images (GitgSpinnerCache *cache, + GdkScreen *screen, + GtkIconSize icon_size) +{ + GitgSpinnerCachePrivate *priv = cache->priv; + GitgSpinnerCacheData *data; + GitgSpinnerImages *images; + + g_return_val_if_fail (icon_size >= 0 && icon_size < LAST_ICON_SIZE, NULL); + + data = g_hash_table_lookup (priv->hash, screen); + + if (data == NULL) + { + data = gitg_spinner_cache_data_new (screen); + + /* FIXME: think about what happens when the screen's display is closed later on */ + g_hash_table_insert (priv->hash, screen, data); + } + + images = data->images[icon_size]; + + if (images == GITG_SPINNER_IMAGES_INVALID) + { + /* Load failed, but don't try endlessly again! */ + return NULL; + } + + if (images != NULL) + { + /* Return cached data */ + return gitg_spinner_images_ref (images); + } + + images = gitg_spinner_images_load (screen, data->icon_theme, icon_size); + + if (images == NULL) + { + /* Mark as failed-to-load */ + data->images[icon_size] = GITG_SPINNER_IMAGES_INVALID; + + return NULL; + } + + data->images[icon_size] = images; + + return gitg_spinner_images_ref (images); +} + +static void +gitg_spinner_cache_init (GitgSpinnerCache *cache) +{ + GitgSpinnerCachePrivate *priv; + + priv = cache->priv = GITG_SPINNER_CACHE_GET_PRIVATE (cache); + + /* LOG ("GitgSpinnerCache initialising"); */ + + priv->hash = g_hash_table_new_full (g_direct_hash, + g_direct_equal, + NULL, + (GDestroyNotify) gitg_spinner_cache_data_free); +} + +static void +gitg_spinner_cache_finalize (GObject *object) +{ + GitgSpinnerCache *cache = GITG_SPINNER_CACHE (object); + GitgSpinnerCachePrivate *priv = cache->priv; + + g_hash_table_destroy (priv->hash); + + /* LOG ("GitgSpinnerCache finalised"); */ + + G_OBJECT_CLASS (gitg_spinner_cache_parent_class)->finalize (object); +} + +static void +gitg_spinner_cache_class_init (GitgSpinnerCacheClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + gitg_spinner_cache_parent_class = g_type_class_peek_parent (klass); + + object_class->finalize = gitg_spinner_cache_finalize; + + g_type_class_add_private (object_class, sizeof (GitgSpinnerCachePrivate)); +} + +static GitgSpinnerCache *spinner_cache = NULL; + +static GitgSpinnerCache * +gitg_spinner_cache_ref (void) +{ + if (spinner_cache == NULL) + { + GitgSpinnerCache **cache_ptr; + + spinner_cache = g_object_new (GITG_TYPE_SPINNER_CACHE, NULL); + cache_ptr = &spinner_cache; + g_object_add_weak_pointer (G_OBJECT (spinner_cache), + (gpointer *) cache_ptr); + + return spinner_cache; + } + + return g_object_ref (spinner_cache); +} + +/* Spinner implementation */ + +#define SPINNER_TIMEOUT 50 /* ms */ + +#define GITG_SPINNER_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), GITG_TYPE_SPINNER, GitgSpinnerPrivate)) + +struct _GitgSpinnerPrivate +{ + GdkScreen *screen; + GitgSpinnerCache *cache; + GtkIconSize size; + GitgSpinnerImages *images; + guint current_image; + guint timeout; + guint timer_task; + guint spinning : 1; + guint need_load : 1; +}; + +enum +{ + FRAME, + NUM_SIGNALS +}; + +static guint spinner_signals[NUM_SIGNALS] = {0,}; + +static void gitg_spinner_class_init (GitgSpinnerClass *class); +static void gitg_spinner_init (GitgSpinner *spinner); + +static GObjectClass *parent_class; + +GType +gitg_spinner_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) + { + const GTypeInfo our_info = + { + sizeof (GitgSpinnerClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) gitg_spinner_class_init, + NULL, + NULL, /* class_data */ + sizeof (GitgSpinner), + 0, /* n_preallocs */ + (GInstanceInitFunc) gitg_spinner_init + }; + + type = g_type_register_static (G_TYPE_OBJECT, + "GitgSpinner", + &our_info, 0); + } + + return type; +} + +static gboolean +gitg_spinner_load_images (GitgSpinner *spinner) +{ + GitgSpinnerPrivate *priv = spinner->priv; + + if (priv->need_load) + { + priv->images = gitg_spinner_cache_get_images (priv->cache, priv->screen, priv->size); + + priv->current_image = 0; /* 'rest' icon */ + priv->need_load = FALSE; + } + + return priv->images != NULL; +} + +static void +gitg_spinner_unload_images (GitgSpinner *spinner) +{ + GitgSpinnerPrivate *priv = spinner->priv; + + if (priv->images != NULL) + { + gitg_spinner_images_unref (priv->images); + priv->images = NULL; + } + + priv->current_image = 0; + priv->need_load = TRUE; +} + +static void +gitg_spinner_init (GitgSpinner *spinner) +{ + spinner->priv = GITG_SPINNER_GET_PRIVATE (spinner); + + spinner->priv->cache = gitg_spinner_cache_ref (); + spinner->priv->size = GTK_ICON_SIZE_MENU; + spinner->priv->timeout = SPINNER_TIMEOUT; + spinner->priv->need_load = TRUE; +} + +static gboolean +bump_spinner_frame_cb (GitgSpinner *spinner) +{ + GitgSpinnerPrivate *priv = spinner->priv; + + /* This can happen when we've unloaded the images on a theme + * change, but haven't been in the queued size request yet. + * Just skip this update. + */ + if (priv->images == NULL) + { + if (!gitg_spinner_load_images (spinner)) + { + return FALSE; + } + } + + priv->current_image++; + + if (priv->current_image >= priv->images->n_animation_pixbufs) + { + /* the 0th frame is the 'rest' icon */ + priv->current_image = MIN (1, priv->images->n_animation_pixbufs); + } + + g_signal_emit (spinner, spinner_signals[FRAME], 0, priv->images->animation_pixbufs[priv->current_image]); + + /* run again */ + return TRUE; +} + +/** + * gitg_spinner_start: + * @spinner: a #GitgSpinner + * + * Start the spinner animation. + **/ +void +gitg_spinner_start (GitgSpinner *spinner) +{ + GitgSpinnerPrivate *priv = spinner->priv; + + priv->spinning = TRUE; + + if (priv->timer_task == 0 && gitg_spinner_load_images (spinner)) + { + /* the 0th frame is the 'rest' icon */ + priv->current_image = MIN (0, priv->images->n_animation_pixbufs); + + priv->timer_task = g_timeout_add_full (G_PRIORITY_LOW, + priv->timeout, + (GSourceFunc) bump_spinner_frame_cb, + spinner, + NULL); + + bump_spinner_frame_cb (spinner); + } +} + +static void +gitg_spinner_remove_update_callback (GitgSpinner *spinner) +{ + GitgSpinnerPrivate *priv = spinner->priv; + + if (priv->timer_task != 0) + { + g_source_remove (priv->timer_task); + priv->timer_task = 0; + } +} + +/** + * gitg_spinner_stop: + * @spinner: a #GitgSpinner + * + * Stop the spinner animation. + **/ +void +gitg_spinner_stop (GitgSpinner *spinner) +{ + GitgSpinnerPrivate *priv = spinner->priv; + + priv->spinning = FALSE; + priv->current_image = 0; + + if (priv->timer_task != 0) + { + gitg_spinner_remove_update_callback (spinner); + } +} + +void +gitg_spinner_set_screen (GitgSpinner *spinner, GdkScreen *screen) +{ + g_return_if_fail (GITG_IS_SPINNER (spinner)); + g_return_if_fail (GDK_IS_SCREEN (screen)); + + if (spinner->priv->screen != screen) + { + gitg_spinner_unload_images (spinner); + + if (spinner->priv->screen) + { + g_object_unref (spinner->priv->screen); + } + + spinner->priv->screen = g_object_ref (screen); + } +} + +static void +gitg_spinner_dispose (GObject *object) +{ + //GitgSpinner *spinner = GITG_SPINNER (object); + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +static void +gitg_spinner_finalize (GObject *object) +{ + GitgSpinner *spinner = GITG_SPINNER (object); + + gitg_spinner_remove_update_callback (spinner); + gitg_spinner_unload_images (spinner); + + g_object_unref (spinner->priv->cache); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gitg_spinner_class_init (GitgSpinnerClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + parent_class = g_type_class_peek_parent (class); + + object_class->dispose = gitg_spinner_dispose; + object_class->finalize = gitg_spinner_finalize; + + spinner_signals[FRAME] = + g_signal_new ("frame", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GitgSpinnerClass, frame), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + GDK_TYPE_PIXBUF); + + g_type_class_add_private (object_class, sizeof (GitgSpinnerPrivate)); +} + +GitgSpinner * +gitg_spinner_new (GtkIconSize size) +{ + GitgSpinner *spinner = g_object_new (GITG_TYPE_SPINNER, NULL); + + spinner->priv->size = size; + return spinner; +} + +GdkPixbuf * +gitg_spinner_get_pixbuf (GitgSpinner *spinner) +{ + g_return_val_if_fail (GITG_IS_SPINNER (spinner), NULL); + + if (spinner->priv->timer_task == 0) + { + return NULL; + } + + return g_object_ref (spinner->priv->images->animation_pixbufs[spinner->priv->current_image]); +} diff -Nru gitg-0.0.3/gitg/gitg-spinner.h gitg-0.0.6/gitg/gitg-spinner.h --- gitg-0.0.3/gitg/gitg-spinner.h 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-spinner.h 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,99 @@ +/* + * gitg-spinner.h + * This file is part of gitg + * + * Copyright (C) 2009 - Jesse van den Kieboom + * Copyright (C) 2005 - Paolo Maggi + * Copyright (C) 2000 - Eazel, 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 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. + */ + +/* + * This widget was originally written by Andy Hertzfeld for + * Nautilus. + * + * Modified by the gitg Team, 2005. See the AUTHORS file for a + * list of people on the gitg Team. + * See the ChangeLog files for a list of changes. + * + * Modified by the gitg Team, 2009 + * + * $Id$ + */ + +#ifndef __GITG_SPINNER_H__ +#define __GITG_SPINNER_H__ + +#include + +G_BEGIN_DECLS + +/* + * Type checking and casting macros + */ +#define GITG_TYPE_SPINNER (gitg_spinner_get_type ()) +#define GITG_SPINNER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GITG_TYPE_SPINNER, GitgSpinner)) +#define GITG_SPINNER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GITG_TYPE_SPINNER, GitgSpinnerClass)) +#define GITG_IS_SPINNER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GITG_TYPE_SPINNER)) +#define GITG_IS_SPINNER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GITG_TYPE_SPINNER)) +#define GITG_SPINNER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GITG_TYPE_SPINNER, GitgSpinnerClass)) + + +/* Private structure type */ +typedef struct _GitgSpinnerPrivate GitgSpinnerPrivate; + +/* + * Main object structure + */ +typedef struct _GitgSpinner GitgSpinner; + +struct _GitgSpinner +{ + GObject parent; + + /*< private >*/ + GitgSpinnerPrivate *priv; +}; + +/* + * Class definition + */ +typedef struct _GitgSpinnerClass GitgSpinnerClass; + +struct _GitgSpinnerClass +{ + GObjectClass parent_class; + + void (*frame)(GitgSpinner *spinner, GdkPixbuf *pixbuf); +}; + +/* + * Public methods + */ +GType gitg_spinner_get_type (void) G_GNUC_CONST; + +GitgSpinner *gitg_spinner_new (GtkIconSize size); +void gitg_spinner_set_screen (GitgSpinner *spinner, + GdkScreen *screen); +void gitg_spinner_start (GitgSpinner *spinner); +void gitg_spinner_stop (GitgSpinner *spinner); + +GdkPixbuf *gitg_spinner_get_pixbuf (GitgSpinner *spinner); + +G_END_DECLS + +#endif /* __GITG_SPINNER_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-tag.ui gitg-0.0.6/gitg/gitg-tag.ui --- gitg-0.0.3/gitg/gitg-tag.ui 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-tag.ui 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,158 @@ + + + + + + 5 + Properties + center-always + 400 + 200 + True + normal + False + + + True + 2 + + + True + 3 + 2 + 6 + 6 + + + True + 0 + Name: + + + GTK_SHRINK | GTK_FILL + GTK_SHRINK + + + + + True + 0 + 0 + Message: + + + 1 + 2 + GTK_SHRINK | GTK_FILL + GTK_SHRINK | GTK_FILL + + + + + True + True + + + + 1 + 2 + GTK_FILL + + + + + True + True + automatic + automatic + etched-in + + + True + True + + + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + Create signed tag object + True + True + False + True + + + 2 + 2 + 3 + + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + True + + + False + False + 0 + + + + + Create tag + True + True + True + True + True + True + True + image_tag + + + False + False + 1 + + + + + False + end + 0 + + + + + + button_cancel + button_tag + + + + True + gtk-apply + + diff -Nru gitg-0.0.3/gitg/gitg-ui.xml gitg-0.0.6/gitg/gitg-ui.xml --- gitg-0.0.3/gitg/gitg-ui.xml 2009-04-21 23:43:56.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-ui.xml 2010-01-23 21:03:30.000000000 +0000 @@ -1,11 +1,5 @@ - - - True - gtk-apply - 4 - @@ -25,6 +19,11 @@ + + _Repository + + + _Help @@ -94,6 +93,16 @@ + + + + gtk-properties + + + + + + @@ -145,6 +154,9 @@ + + + @@ -159,803 +171,6 @@ - - 1 - 10 - 1 - 1 - 1 - 3 - - - gitg - 800 - 800 - False - - - - - True - - - True - - - False - - - - - True - True - - - True - - - True - True - 350 - - - True - - - True - 3 - - - Branch: - - - False - - - - - - - - 0 - - - - - False - - - - - False - 3 - - - - - True - True - automatic - automatic - etched-in - - - True - True - True - True - 1 - True - - - Subject - 400 - fixed - True - True - - - - 1 - - - - - - - Author - 200 - fixed - True - - - - 2 - - - - - - - Date - 200 - fixed - True - - - - 3 - - - - - - - - - 1 - - - - - True - False - - - - - True - True - - - True - 3 - - - True - 5 - 2 - 6 - 2 - - - True - 1 - 2 - 3 - 2 - - - 1 - 2 - 4 - 5 - - - - - True - 0 - True - True - - - 1 - 2 - 3 - 4 - - - - - True - 0 - True - True - - - 1 - 2 - 2 - 3 - - - - - True - 0 - True - True - - - 1 - 2 - 1 - 2 - - - - - True - 0 - True - True - - - 1 - 2 - fill - - - - - True - 1 - 0 - Parent: - - - 4 - 5 - fill - fill - - - - - True - 1 - Subject: - - - 3 - 4 - fill - fill - - - - - True - 1 - Date: - - - 2 - 3 - fill - fill - - - - - True - 1 - Author: - - - 1 - 2 - fill - fill - - - - - True - 1 - SHA: - True - - - fill - fill - - - - - False - 3 - - - - - True - - - False - False - 1 - - - - - True - 200 - - - True - True - automatic - automatic - etched-in - - - True - True - False - - - Icon - False - 20 - fixed - - - - - - - - Filename - False - - - - - - - - - - - - True - True - automatic - automatic - etched-in - - - 4 - False - False - True - True - - - - - - - 2 - - - - - - - True - Details - - - False - - - - - True - True - 200 - - - True - True - automatic - automatic - etched-in - - - True - True - False - - - Filename - - - - 0 - - - - - - 1 - - - - - - - - - False - True - - - - - True - True - automatic - automatic - etched-in - - - False - True - - - - - True - True - - - - - - - True - Tree - - - 1 - False - - - - - False - True - - - - - - - - - True - History - - - False - - - - - True - True - 200 - - - True - 3 - - - True - 0 - 1 - _Unstaged - True - tree_view_unstaged - - - False - 0 - - - - - True - True - automatic - automatic - etched-in - - - True - True - False - - - - False - 20 - fixed - - - - - - - - Unstaged - True - - - - 0 - - - - - - - - - 1 - - - - - True - 0 - _Staged - True - tree_view_staged - - - False - 2 - - - - - True - True - automatic - automatic - etched-in - - - True - True - False - - - - False - 20 - fixed - - - - - - - - - True - - - - 0 - - - - - - - - - 3 - - - - - True - True - - - - - True - True - 450 - - - True - 3 - - - True - 3 - - - True - 0 - 1 - _Changes - True - source_view_changes - - - False - 0 - - - - - right - 0 - adjustment_context - 200 - False - False - - - False - True - end - - - - - Context: - - - False - end - - - - - False - - - - - True - True - automatic - automatic - etched-in - - - 4 - False - False - True - - - - - 1 - - - - - False - True - - - - - True - 3 - - - True - 0 - 1 - Co_mmit message - True - text_view_comment - - - False - 0 - - - - - True - True - automatic - automatic - etched-in - - - True - True - word-char - - - - - 1 - - - - - True - 3 - - - Commit - True - True - True - image_commit - - - 0 - end - false - - - - - true - Add signed-off-by - - - start - false - - - - - False - 2 - - - - - True - True - - - - - True - True - - - - - - - True - Commit - - - 1 - False - - - - - True - 1 - - - - - True - 2 - - - False - 2 - - - - - diff -Nru gitg-0.0.3/gitg/gitg-utils.c gitg-0.0.6/gitg/gitg-utils.c --- gitg-0.0.3/gitg/gitg-utils.c 2009-04-05 16:50:22.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-utils.c 2010-01-24 12:17:16.000000000 +0000 @@ -35,16 +35,21 @@ return c - 'a' + 10; if (c >= 'A') return c - 'A' + 10; - + return c - '0'; } void -gitg_utils_sha1_to_hash(gchar const *sha, gchar *hash) +gitg_utils_partial_sha1_to_hash(gchar const *sha, gint length, gchar *hash) { + if (length % 2 == 1) + { + --length; + } + int i; - for (i = 0; i < HASH_BINARY_SIZE; ++i) + for (i = 0; i < length / 2; ++i) { gchar h = atoh(*(sha++)) << 4; hash[i] = h | atoh(*(sha++)); @@ -52,6 +57,12 @@ } void +gitg_utils_sha1_to_hash(gchar const *sha, gchar *hash) +{ + gitg_utils_partial_sha1_to_hash (sha, HASH_SHA_SIZE, hash); +} + +void gitg_utils_hash_to_sha1(gchar const *hash, gchar *sha) { char const *repr = "0123456789abcdef"; @@ -70,17 +81,38 @@ { gchar *ret = g_new(gchar, HASH_SHA_SIZE + 1); gitg_utils_hash_to_sha1(hash, ret); - + ret[HASH_SHA_SIZE] = '\0'; return ret; } gchar * +gitg_utils_partial_sha1_to_hash_new (gchar const *sha, gint length, gint *retlen) +{ + if (length == -1) + { + length = strlen (sha); + } + + if (length % 2 != 0) + { + --length; + } + + *retlen = length / 2; + gchar *ret = g_new (gchar, *retlen); + + gitg_utils_partial_sha1_to_hash (sha, length, ret); + + return ret; +} + +gchar * gitg_utils_sha1_to_hash_new(gchar const *sha1) { gchar *ret = g_new(gchar, HASH_BINARY_SIZE); gitg_utils_sha1_to_hash(sha1, ret); - + return ret; } @@ -90,20 +122,20 @@ while (strcmp(path, ".") != 0 && strcmp(path, "/") != 0) { gchar *res = g_build_filename(path, ".git", NULL); - + if (g_file_test(res, G_FILE_TEST_IS_DIR)) { g_free(res); return path; } - + gchar *tmp = g_path_get_dirname(path); g_free(path); path = tmp; - + g_free(res); } - + return NULL; } @@ -112,12 +144,12 @@ { gchar const *find = G_DIR_SEPARATOR_S ".git"; gchar *dir; - + if (strstr(path, find) == path + strlen(path) - strlen(find)) dir = g_strndup(path, strlen(path) - strlen(find)); else dir = g_strdup(path); - + return find_dot_git(dir); } @@ -125,7 +157,7 @@ gitg_utils_dot_git_path(gchar const *path) { gchar const *find = G_DIR_SEPARATOR_S ".git"; - + if (strstr(path, find) == path + strlen(path) - strlen(find)) return g_strdup(path); else @@ -136,16 +168,16 @@ append_escape(GString *gstr, gchar const *item) { gchar *escape = g_shell_quote(item); - + g_string_append_printf(gstr, " %s", escape); } gboolean gitg_utils_export_files(GitgRepository *repository, GitgRevision *revision, gchar const *todir, gchar * const *paths) -{ +{ GString *gstr = g_string_new("sh -c \"git --git-dir"); - + // Append the git path gchar *gitpath = gitg_utils_dot_git_path(gitg_repository_get_path(repository)); append_escape(gstr, gitpath); @@ -155,7 +187,7 @@ gchar *sha = gitg_revision_get_sha1(revision); g_string_append_printf(gstr, " archive --format=tar %s", sha); g_free(sha); - + // Append the files while (*paths) { @@ -166,12 +198,12 @@ g_string_append(gstr, " | tar -xC"); append_escape(gstr, todir); g_string_append(gstr, "\""); - + GError *error = NULL; gint status; gboolean ret = g_spawn_command_line_sync(gstr->str, NULL, NULL, &status, &error); - + if (!ret) { g_warning("Export failed:\n%s\n%s", gstr->str, error->message); @@ -188,20 +220,20 @@ gchar *res; gsize read, written; GString *str = g_string_new(""); - + while ((res = g_convert(text, size, "UTF-8", "ASCII", &read, &written, NULL)) == NULL) { res = g_convert(text, read, "UTF-8", "ASCII", NULL, NULL, NULL); str = g_string_append(str, res); - + str = g_string_append(str, fallback); text = text + read + 1; size = size - read; } - + str = g_string_append(str, res); g_free(res); - + res = str->str; g_string_free(str, FALSE); return res; @@ -214,10 +246,10 @@ "ISO-8859-15", "ASCII" }; - + if (g_utf8_validate(str, size, NULL)) return g_strndup(str, size == -1 ? strlen(str) : size); - + int i; for (i = 0; i < sizeof(encodings) / sizeof(gchar *); ++i) { @@ -225,11 +257,11 @@ gsize written; gchar *ret = g_convert(str, size, "UTF-8", encodings[i], &read, &written, NULL); - + if (ret) return ret; } - + return convert_fallback(str, size, "?"); } @@ -240,7 +272,7 @@ const signed char *p = v; guint32 h = *p; int i; - + for (i = 1; i < HASH_BINARY_SIZE; ++i) h = (h << 5) - h + p[i]; @@ -257,10 +289,10 @@ gitg_utils_null_length(gconstpointer *ptr) { gint ret = 0; - + while (*ptr++) ++ret; - + return ret; } @@ -268,10 +300,10 @@ gitg_utils_get_content_type(GFile *file) { GFileInfo *info = g_file_query_info(file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, NULL); - + if (!info || !g_file_info_has_attribute(info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)) return NULL; - + gchar *content_type = g_strdup(g_file_info_get_content_type(info)); g_object_unref(info); @@ -286,45 +318,13 @@ } GtkSourceLanguage * -gitg_utils_get_language(gchar const *content_type) +gitg_utils_get_language(gchar const *filename, gchar const *content_type) { if (!gitg_utils_can_display_content_type(content_type)) return NULL; - - gchar *mime = g_content_type_get_mime_type(content_type); - GtkSourceLanguageManager *manager = gtk_source_language_manager_get_default(); - - gchar const * const *ids = gtk_source_language_manager_get_language_ids(manager); - gchar const *ptr; - GtkSourceLanguage *ret; - - while ((ptr = *ids++)) - { - ret = gtk_source_language_manager_get_language(manager, ptr); - gchar **mime_types = gtk_source_language_get_mime_types(ret); - gchar **types = mime_types; - gchar *m; - - if (types) - { - while ((m = *types++)) - { - if (strcmp(mime, m) == 0) - { - g_free(mime); - g_strfreev(mime_types); - return ret; - } - } - - g_strfreev(mime_types); - } - ret = NULL; - } - - g_free(mime); - return NULL; + GtkSourceLanguageManager *manager = gtk_source_language_manager_get_default(); + return gtk_source_language_manager_guess_language(manager, filename, content_type); } gint @@ -332,18 +332,18 @@ { if (s1 == NULL) return -1; - + if (s2 == NULL) return 1; gchar *c1 = s1 ? g_utf8_casefold(s1, -1) : NULL; gchar *c2 = s2 ? g_utf8_casefold(s2, -1) : NULL; - + gint ret = g_utf8_collate(c1, c2); - + g_free(c1); g_free(c2); - + return ret; } @@ -352,16 +352,16 @@ { GtkTextIter start; GtkTextIter end; - + gtk_text_buffer_get_start_iter(buffer, &start); end = start; - + gtk_text_iter_forward_chars(&end, 256); gchar *data = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); gchar *content_type = g_content_type_guess(NULL, (guchar *)data, strlen(data), NULL); g_free(data); - + return content_type; } @@ -404,7 +404,7 @@ GtkTreeModel *model; GtkTreeSelection *selection; GtkTreeIter iter; - + model = gtk_tree_view_get_model (tree); g_return_if_fail (model != NULL); @@ -417,16 +417,16 @@ GdkRectangle rect; gdk_window_get_origin (GTK_WIDGET (tree)->window, x, y); - + path = gtk_tree_model_get_path (model, &iter); gtk_tree_view_get_cell_area (tree, path, gtk_tree_view_get_column (tree, 0), /* FIXME 0 for RTL ? */ &rect); gtk_tree_path_free (path); - + *x += rect.x; *y += rect.y + rect.height; - + if (gtk_widget_get_direction (GTK_WIDGET (tree)) == GTK_TEXT_DIR_RTL) { GtkRequisition requisition; @@ -448,9 +448,9 @@ { GConfClient *client = gconf_client_get_default(); gchar *name = gconf_client_get_string(client, "/desktop/gnome/interface/monospace_font_name", NULL); - + g_object_unref(client); - + return name; } @@ -458,18 +458,18 @@ gitg_utils_set_monospace_font(GtkWidget *widget) { gchar *name = gitg_utils_get_monospace_font_name(); - + if (name) { PangoFontDescription *description = pango_font_description_from_string(name); - + if (description) { gtk_widget_modify_font(widget, description); pango_font_description_free(description); } } - + g_free(name); } @@ -478,18 +478,18 @@ { GtkBuilder *b = gtk_builder_new(); GError *error = NULL; - + gchar *path = gitg_dirs_get_data_filename("ui", filename, NULL); - + if (!gtk_builder_add_from_file(b, path, &error)) { g_critical("Could not open UI file: %s (%s)", path, error->message); g_error_free(error); - + g_free(path); exit(1); } - + g_free(path); return b; } @@ -501,7 +501,108 @@ struct tm *tms = localtime(&t); gchar buf[255]; - + strftime(buf, 254, "%c", tms); return gitg_utils_convert_utf8(buf, -1); } + +GtkCellRenderer * +gitg_utils_find_cell_at_pos (GtkTreeView *tree_view, GtkTreeViewColumn *column, GtkTreePath *path, gint x) +{ + GList *cells; + GList *item; + GtkTreeIter iter; + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + + gtk_tree_model_get_iter (model, &iter, path); + + gtk_tree_view_column_cell_set_cell_data (column, model, &iter, FALSE, FALSE); + + cells = gtk_tree_view_column_get_cell_renderers (column); + GtkCellRenderer *ret = NULL; + + for (item = cells; item; item = g_list_next (item)) + { + GtkCellRenderer *renderer = GTK_CELL_RENDERER (item->data); + gint start; + gint width; + + if (!gtk_tree_view_column_cell_get_position (column, renderer, &start, &width)) + { + continue; + } + + gtk_cell_renderer_get_size (renderer, GTK_WIDGET (tree_view), NULL, NULL, NULL, &width, 0); + + if (x >= start && x <= start + width) + { + ret = renderer; + break; + } + } + + g_list_free (cells); + return ret; +} + +typedef struct +{ + gint position; + gboolean reversed; +} PanedRestoreInfo; + +static void +free_paned_restore_info (PanedRestoreInfo *info) +{ + g_slice_free (PanedRestoreInfo, info); +} + +static void +paned_set_position (GtkPaned *paned, gint position, gboolean reversed) +{ + if (position == -1) + { + return; + } + + if (!reversed) + { + gtk_paned_set_position (paned, position); + } + else + { + gtk_paned_set_position (paned, GTK_WIDGET (paned)->allocation.width - position); + } +} + +static void +on_paned_mapped (GtkPaned *paned, PanedRestoreInfo *info) +{ + paned_set_position (paned, info->position, info->reversed); + + g_signal_handlers_disconnect_by_func (paned, on_paned_mapped, info); +} + +void +gitg_utils_restore_pane_position (GtkPaned *paned, gint position, gboolean reversed) +{ + g_return_if_fail (GTK_IS_PANED (paned)); + + if (GTK_WIDGET_MAPPED (paned)) + { + paned_set_position (paned, position, reversed); + + return; + } + + PanedRestoreInfo *info = g_slice_new (PanedRestoreInfo); + info->position = position; + info->reversed = reversed; + + g_signal_connect_data (paned, + "map", + G_CALLBACK (on_paned_mapped), + info, + (GClosureNotify)free_paned_restore_info, + G_CONNECT_AFTER); +} diff -Nru gitg-0.0.3/gitg/gitg-utils.h gitg-0.0.6/gitg/gitg-utils.h --- gitg-0.0.3/gitg/gitg-utils.h 2009-04-05 16:49:50.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-utils.h 2010-01-24 12:17:16.000000000 +0000 @@ -33,9 +33,13 @@ void gitg_utils_sha1_to_hash(gchar const *sha, gchar *hash); void gitg_utils_hash_to_sha1(gchar const *hash, gchar *sha); +void gitg_utils_partial_sha1_to_hash (gchar const *sha, gint length, gchar *hash); + gchar *gitg_utils_sha1_to_hash_new(gchar const *sha); gchar *gitg_utils_hash_to_sha1_new(gchar const *hash); +gchar *gitg_utils_partial_sha1_to_hash_new (gchar const *sha, gint length, gint *retlen); + gchar *gitg_utils_find_git(gchar const *path); gchar *gitg_utils_dot_git_path(gchar const *path); @@ -49,7 +53,7 @@ gint gitg_utils_null_length(gconstpointer *ptr); gchar *gitg_utils_get_content_type(GFile *file); -GtkSourceLanguage *gitg_utils_get_language(gchar const *content_type); +GtkSourceLanguage *gitg_utils_get_language(gchar const *filename, gchar const *content_type); gboolean gitg_utils_can_display_content_type(gchar const *content_type); gchar *gitg_utils_guess_content_type(GtkTextBuffer *buffer); @@ -64,5 +68,8 @@ gchar *gitg_utils_timestamp_to_str(guint64 timestamp); GtkBuilder *gitg_utils_new_builder(gchar const *filename); +GtkCellRenderer *gitg_utils_find_cell_at_pos (GtkTreeView *tree_view, GtkTreeViewColumn *column, GtkTreePath *path, gint x); + +void gitg_utils_restore_pane_position (GtkPaned *paned, gint position, gboolean reversed); #endif /* __GITG_UTILS_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-window.c gitg-0.0.6/gitg/gitg-window.c --- gitg-0.0.3/gitg/gitg-window.c 2009-04-23 22:09:55.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-window.c 2010-01-24 12:17:16.000000000 +0000 @@ -16,7 +16,7 @@ * * 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, + * Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ @@ -25,7 +25,6 @@ #include #include -#include "sexy-icon-entry.h" #include "config.h" #include "gitg-dirs.h" @@ -39,14 +38,31 @@ #include "gitg-commit-view.h" #include "gitg-settings.h" #include "gitg-preferences-dialog.h" +#include "gitg-repository-dialog.h" +#include "gitg-dnd.h" +#include "gitg-branch-actions.h" +#include "gitg-preferences.h" +#include "gitg-config.h" + +#define DYNAMIC_ACTION_DATA_KEY "GitgDynamicActionDataKey" +#define DYNAMIC_ACTION_DATA_REMOTE_KEY "GitgDynamicActionDataRemoteKey" +#define DYNAMIC_ACTION_DATA_BRANCH_KEY "GitgDynamicActionDataBranchKey" #define GITG_WINDOW_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GITG_TYPE_WINDOW, GitgWindowPrivate)) +enum +{ + COLUMN_BRANCHES_NAME, + COLUMN_BRANCHES_REF, + COLUMN_BRANCHES_ICON, + COLUMN_BRANCHES_SELECTION +}; + struct _GitgWindowPrivate { GitgRepository *repository; - GtkListStore *branches_store; + GtkTreeStore *branches_store; /* Widget placeholders */ GtkNotebook *notebook_main; @@ -57,20 +73,32 @@ GitgCommitView *commit_view; GtkWidget *search_popup; GtkComboBox *combo_branches; - + + GtkUIManager *menus_ui_manager; + GtkWidget *vpaned_main; - GtkWidget *hpaned_commit; + GtkWidget *hpaned_commit1; + GtkWidget *hpaned_commit2; GtkWidget *vpaned_commit; - + GtkActionGroup *edit_group; GtkWidget *open_dialog; - gchar *current_branch; + GitgCellRendererPath *renderer_path; - + GTimer *load_timer; GdkCursor *hand; - + gboolean destroy_has_run; + guint merge_rebase_uid; + GtkActionGroup *merge_rebase_action_group; + + guint cherry_pick_uid; + GtkActionGroup *cherry_pick_action_group; + GitgRef *popup_refs[2]; + + GList *branch_actions; + Hash select_on_load; }; static gboolean on_tree_view_motion(GtkTreeView *treeview, GdkEventMotion *event, GitgWindow *window); @@ -85,14 +113,48 @@ static GtkWindowClass *parent_class = NULL; static void +on_branch_action_runner_end (GitgRunner *runner, gboolean cancelled, GitgWindow *window) +{ + window->priv->branch_actions = g_list_remove (window->priv->branch_actions, runner); + g_object_unref (runner); +} + +gboolean +gitg_window_add_branch_action (GitgWindow *window, GitgRunner *runner) +{ + if (runner != NULL && gitg_runner_running (runner)) + { + window->priv->branch_actions = g_list_prepend (window->priv->branch_actions, runner); + + g_signal_connect (runner, "end-loading", G_CALLBACK (on_branch_action_runner_end), window); + } + else if (runner) + { + g_object_unref (runner); + runner = NULL; + } + + return runner != NULL; +} + +static void gitg_window_finalize(GObject *object) { GitgWindow *self = GITG_WINDOW(object); - - g_free(self->priv->current_branch); + g_timer_destroy(self->priv->load_timer); gdk_cursor_unref(self->priv->hand); - + + GList *copy = g_list_copy (self->priv->branch_actions); + GList *item; + + for (item = copy; item; item = g_list_next (item)) + { + gitg_runner_cancel (GITG_RUNNER (item->data)); + } + + g_list_free (copy); + G_OBJECT_CLASS(gitg_window_parent_class)->finalize(object); } @@ -102,16 +164,35 @@ GtkTreeModel *model; GtkTreeIter iter; GitgRevision *revision = NULL; - + if (gtk_tree_selection_get_selected(selection, &model, &iter)) - gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &revision, -1); - + { + gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, 0, &revision, -1); + } + gitg_revision_view_update(window->priv->revision_view, window->priv->repository, revision); gitg_revision_tree_view_update(window->priv->revision_tree_view, window->priv->repository, revision); + + if (revision) + { + if (gitg_repository_get_loaded (window->priv->repository)) + { + memcpy (window->priv->select_on_load, gitg_revision_get_hash (revision), HASH_BINARY_SIZE); + } + + gitg_revision_unref (revision); + } + else + { + if (gitg_repository_get_loaded (window->priv->repository)) + { + memset (window->priv->select_on_load, 0, HASH_BINARY_SIZE); + } + } } static void -on_search_icon_pressed(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, int button, GitgWindow *window) +on_search_icon_release(GtkEntry *entry, GtkEntryIconPosition icon_pos, int button, GitgWindow *window) { gtk_menu_popup(GTK_MENU(window->priv->search_popup), NULL, NULL, NULL, NULL, button, gtk_get_current_event_time()); } @@ -154,14 +235,14 @@ { GitgRevision *rv; gtk_tree_model_get(model, iter, 0, &rv, -1); - + gchar *sha = gitg_revision_get_sha1(rv); - + gboolean ret = strncmp(sha, key, strlen(key)) != 0; - + g_free(sha); gitg_revision_unref(rv); - + return ret; } @@ -173,17 +254,17 @@ gchar *cmp; gtk_tree_model_get(model, iter, column, &cmp, -1); - + gchar *s1 = g_utf8_casefold(key, -1); gchar *s2 = g_utf8_casefold(cmp, -1); - + gboolean ret = strstr(s2, s1) == NULL; - + g_free(s1); g_free(s2); g_free(cmp); - + return ret; } @@ -197,32 +278,25 @@ build_search_entry(GitgWindow *window, GtkBuilder *builder) { GtkWidget *box = GTK_WIDGET(gtk_builder_get_object(builder, "hbox_top")); - GtkWidget *entry = sexy_icon_entry_new(); - - GtkImage *image = GTK_IMAGE(gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU)); - sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_PRIMARY, image); - + GtkWidget *entry = gtk_entry_new (); + + gtk_entry_set_icon_from_stock(GTK_ENTRY(entry), GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_FIND); + gtk_tree_view_set_search_entry(window->priv->tree_view, GTK_ENTRY(entry)); gtk_widget_show(entry); gtk_box_pack_end(GTK_BOX(box), entry, FALSE, FALSE, 0); - - GtkBuilder *b = gitg_utils_new_builder( "gitg-menus.xml"); - - GtkUIManager *manager = GTK_UI_MANAGER(gtk_builder_get_object(b, "uiman")); - window->priv->search_popup = GTK_WIDGET(g_object_ref(gtk_ui_manager_get_widget(manager, "/ui/search_popup"))); - - gtk_builder_connect_signals(b, window); - g_object_unref(b); - - g_signal_connect(entry, "icon-pressed", G_CALLBACK(on_search_icon_pressed), window); + + window->priv->search_popup = GTK_WIDGET(g_object_ref(gtk_ui_manager_get_widget(window->priv->menus_ui_manager, "/ui/search_popup"))); + + g_signal_connect(entry, "icon-release", G_CALLBACK(on_search_icon_release), window); gtk_tree_view_set_search_column(window->priv->tree_view, 1); - + gtk_tree_view_set_search_equal_func(window->priv->tree_view, search_equal_func, window, NULL); - + GtkAccelGroup *group = gtk_accel_group_new(); - - GClosure *closure = g_cclosure_new(G_CALLBACK(focus_search), entry, NULL); - gtk_accel_group_connect(group, GDK_f, GDK_CONTROL_MASK, 0, closure); + + GClosure *closure = g_cclosure_new(G_CALLBACK(focus_search), entry, NULL); + gtk_accel_group_connect(group, GDK_f, GDK_CONTROL_MASK, 0, closure); gtk_window_add_accel_group(GTK_WINDOW(window), group); } @@ -230,16 +304,16 @@ goto_hash(GitgWindow *window, gchar const *hash) { GtkTreeIter iter; - + if (!gitg_repository_find_by_hash(window->priv->repository, hash, &iter)) return; - + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(window->priv->tree_view), &iter); GtkTreePath *path; - + path = gtk_tree_model_get_path(GTK_TREE_MODEL(window->priv->repository), &iter); - - gtk_tree_view_scroll_to_cell(window->priv->tree_view, path, NULL, FALSE, 0, 0); + + gtk_tree_view_scroll_to_cell(window->priv->tree_view, path, NULL, TRUE, 0.5, 0); gtk_tree_path_free(path); } @@ -253,23 +327,20 @@ on_renderer_path(GtkTreeViewColumn *column, GitgCellRendererPath *renderer, GtkTreeModel *model, GtkTreeIter *iter, GitgWindow *window) { GitgRevision *rv; - + gtk_tree_model_get(model, iter, 0, &rv, -1); GtkTreeIter iter1 = *iter; - + GitgRevision *next_revision = NULL; - + if (gtk_tree_model_iter_next(model, &iter1)) gtk_tree_model_get(model, &iter1, 0, &next_revision, -1); - + GSList *labels; const gchar *lbl = NULL; + switch (gitg_revision_get_sign(rv)) { - - case 's': - lbl = "stash"; - break; case 't': lbl = "staged"; break; @@ -279,7 +350,7 @@ default: break; } - + if (lbl != NULL) { g_object_set(renderer, "style", PANGO_STYLE_ITALIC, NULL); @@ -291,9 +362,9 @@ labels = gitg_repository_get_refs_for_hash(GITG_REPOSITORY(model), gitg_revision_get_hash(rv)); } - g_object_set(renderer, - "revision", rv, - "next_revision", next_revision, + g_object_set(renderer, + "revision", rv, + "next_revision", next_revision, "labels", labels, NULL); @@ -304,53 +375,68 @@ static gboolean branches_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { - gchar *t; - - gtk_tree_model_get(model, iter, 0, &t, -1); - gboolean ret = t == NULL; - - g_free(t); + gchar *name; + GitgRef *ref; + + gtk_tree_model_get(model, + iter, + COLUMN_BRANCHES_NAME, &name, + COLUMN_BRANCHES_REF, &ref, + -1); + + gboolean ret = (name == NULL && ref == NULL); + + g_free(name); + gitg_ref_free(ref); + return ret; } static void -on_branches_combo_changed(GtkComboBox *combo, GitgWindow *window) +on_branches_combo_changed (GtkComboBox *combo, GitgWindow *window) { if (gtk_combo_box_get_active(combo) < 2) return; - + gchar *name; GtkTreeIter iter; - GtkTreeIter next; - + gchar **selection; + gtk_combo_box_get_active_iter(combo, &iter); - next = iter; - - if (!gtk_tree_model_iter_next(gtk_combo_box_get_model(combo), &next)) - name = g_strdup("--all"); - else - gtk_tree_model_get(gtk_combo_box_get_model(combo), &iter, 0, &name, -1); - gitg_repository_load(window->priv->repository, 1, (gchar const **)&name, NULL); - g_free(name); + gtk_tree_model_get (gtk_combo_box_get_model(combo), + &iter, + COLUMN_BRANCHES_SELECTION, &selection, + -1); + + if (selection != NULL) + { + gitg_repository_load (window->priv->repository, 1, (gchar const **)selection, NULL); + g_strfreev (selection); + } } static void build_branches_combo(GitgWindow *window, GtkBuilder *builder) { GtkComboBox *combo = GTK_COMBO_BOX(gtk_builder_get_object(builder, "combo_box_branches")); - window->priv->branches_store = gtk_list_store_new(1, G_TYPE_STRING); + window->priv->branches_store = gtk_tree_store_new(4, G_TYPE_STRING, GITG_TYPE_REF, G_TYPE_STRING, G_TYPE_STRV); window->priv->combo_branches = combo; GtkTreeIter iter; - gtk_list_store_append(window->priv->branches_store, &iter); - gtk_list_store_set(window->priv->branches_store, &iter, 0, _("Select branch"), -1); - + gtk_tree_store_append(window->priv->branches_store, &iter, NULL); + gtk_tree_store_set(window->priv->branches_store, + &iter, + COLUMN_BRANCHES_NAME, _("Select branch"), + COLUMN_BRANCHES_REF, NULL, + COLUMN_BRANCHES_SELECTION, NULL, + -1); + gtk_combo_box_set_model(combo, GTK_TREE_MODEL(window->priv->branches_store)); gtk_combo_box_set_active(combo, 0); - + gtk_combo_box_set_row_separator_func(combo, branches_separator_func, window, NULL); - + g_signal_connect(combo, "changed", G_CALLBACK(on_branches_combo_changed), window); } @@ -362,26 +448,186 @@ gint dh; gtk_window_get_default_size(GTK_WINDOW(window), &dw, &dh); - - gtk_window_set_default_size(GTK_WINDOW(window), - gitg_settings_get_window_width(settings, dw), + + gtk_window_set_default_size(GTK_WINDOW(window), + gitg_settings_get_window_width(settings, dw), gitg_settings_get_window_height(settings, dh)); - gint orig = gtk_paned_get_position(GTK_PANED(window->priv->vpaned_main)); - gtk_paned_set_position(GTK_PANED(window->priv->vpaned_main), - gitg_settings_get_vpaned_main_position(settings, orig)); - - orig = gtk_paned_get_position(GTK_PANED(window->priv->vpaned_commit)); - gtk_paned_set_position(GTK_PANED(window->priv->vpaned_commit), - gitg_settings_get_vpaned_commit_position(settings, orig)); - - orig = gtk_paned_get_position(GTK_PANED(window->priv->hpaned_commit)); - gtk_paned_set_position(GTK_PANED(window->priv->hpaned_commit), - gitg_settings_get_hpaned_commit_position(settings, orig)); - - orig = gtk_paned_get_position(GTK_PANED(window->priv->revision_tree_view)); - gtk_paned_set_position(GTK_PANED(window->priv->revision_tree_view), - gitg_settings_get_revision_tree_view_position(settings, orig)); + gitg_utils_restore_pane_position (GTK_PANED(window->priv->vpaned_main), + gitg_settings_get_vpaned_main_position(settings, -1), + FALSE); + + gitg_utils_restore_pane_position (GTK_PANED(window->priv->vpaned_commit), + gitg_settings_get_vpaned_commit_position(settings, -1), + FALSE); + + gitg_utils_restore_pane_position (GTK_PANED(window->priv->hpaned_commit1), + gitg_settings_get_hpaned_commit1_position(settings, 200), + FALSE); + + gitg_utils_restore_pane_position (GTK_PANED(window->priv->hpaned_commit2), + gitg_settings_get_hpaned_commit2_position(settings, 200), + TRUE); + + gitg_utils_restore_pane_position (GTK_PANED(window->priv->revision_tree_view), + gitg_settings_get_revision_tree_view_position(settings, -1), + FALSE); +} + +static void +update_dnd_status (GitgWindow *window, GitgRef *source, GitgRef *dest) +{ + if (!dest) + { + gtk_statusbar_push (window->priv->statusbar, 0, ""); + } + else + { + gchar *message = NULL; + GitgRefType source_type = gitg_ref_get_ref_type (source); + GitgRefType dest_type = gitg_ref_get_ref_type (dest); + + if (source_type == GITG_REF_TYPE_BRANCH && + dest_type== GITG_REF_TYPE_REMOTE) + { + message = g_strdup_printf (_("Push local branch <%s> to remote branch <%s>"), + gitg_ref_get_shortname (source), + gitg_ref_get_shortname (dest)); + } + else if (source_type == GITG_REF_TYPE_BRANCH && + dest_type == GITG_REF_TYPE_BRANCH) + { + message = g_strdup_printf (_("Merge/rebase local branch <%s> with/on local branch <%s>"), + gitg_ref_get_shortname (source), + gitg_ref_get_shortname (dest)); + } + else if (source_type == GITG_REF_TYPE_REMOTE && + dest_type == GITG_REF_TYPE_BRANCH) + { + message = g_strdup_printf (_("Merge/rebase local branch <%s> with/on remote branch <%s>"), + gitg_ref_get_shortname (dest), + gitg_ref_get_shortname (source)); + } + else if (source_type == GITG_REF_TYPE_STASH && + dest_type == GITG_REF_TYPE_BRANCH) + { + message = g_strdup_printf (_("Apply stash to local branch <%s>"), + gitg_ref_get_shortname (dest)); + } + + if (message) + { + gtk_statusbar_push (window->priv->statusbar, 0, message); + } + + g_free (message); + } +} + +static gboolean +on_refs_dnd (GitgRef *source, GitgRef *dest, gboolean dropped, GitgWindow *window) +{ + if (!dropped) + { + update_dnd_status (window, source, dest); + return FALSE; + } + + gboolean ret = FALSE; + GitgRefType source_type = gitg_ref_get_ref_type (source); + GitgRefType dest_type = gitg_ref_get_ref_type (dest); + + if (source_type == GITG_REF_TYPE_BRANCH && + dest_type == GITG_REF_TYPE_REMOTE) + { + ret = gitg_window_add_branch_action (window, gitg_branch_actions_push (window, source, dest)); + } + else if (source_type == GITG_REF_TYPE_STASH) + { + if (dest_type == GITG_REF_TYPE_BRANCH) + { + ret = gitg_branch_actions_apply_stash (window, source, dest); + } + } + else if (dest_type == GITG_REF_TYPE_BRANCH) + { + GtkWidget *popup = gtk_ui_manager_get_widget (window->priv->menus_ui_manager, + "/ui/dnd_popup"); + + window->priv->popup_refs[0] = source; + window->priv->popup_refs[1] = dest; + + gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time()); + } + + gtk_statusbar_push (window->priv->statusbar, 0, ""); + return ret; +} + +static void +update_revision_dnd_status (GitgWindow *window, GitgRevision *source, GitgRef *dest) +{ + if (!dest) + { + gtk_statusbar_push (window->priv->statusbar, 0, ""); + } + else + { + gchar *message = g_strdup_printf (_("Cherry-pick revision on <%s>"), + gitg_ref_get_shortname (dest)); + + gtk_statusbar_push (window->priv->statusbar, 0, message); + g_free (message); + } +} + +static gboolean +on_revision_dnd (GitgRevision *source, + GitgRef *dest, + gboolean dropped, + GitgWindow *window) +{ + if (!dropped) + { + update_revision_dnd_status (window, source, dest); + return FALSE; + } + + if (gitg_ref_get_ref_type (dest) != GITG_REF_TYPE_BRANCH) + { + return FALSE; + } + + return gitg_window_add_branch_action (window, + gitg_branch_actions_cherry_pick (window, source, dest)); +} + +static void +init_tree_view (GitgWindow *window, GtkBuilder *builder) +{ + GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "rv_column_subject")); + + window->priv->renderer_path = GITG_CELL_RENDERER_PATH(gtk_builder_get_object(builder, "rv_renderer_subject")); + + gtk_tree_view_column_set_cell_data_func(col, GTK_CELL_RENDERER(window->priv->renderer_path), (GtkTreeCellDataFunc)on_renderer_path, window, NULL); + + gitg_dnd_enable (window->priv->tree_view, + (GitgDndCallback)on_refs_dnd, + (GitgDndRevisionCallback)on_revision_dnd, + window); +} + +static void +on_main_layout_vertical_cb (GitgWindow *window) +{ + GitgPreferences *preferences = gitg_preferences_get_default (); + gboolean vertical; + + g_object_get (preferences, "main-layout-vertical", &vertical, NULL); + g_object_set (window->priv->vpaned_main, + "orientation", + vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, + NULL); } static void @@ -392,55 +638,84 @@ // Store widgets GitgWindow *window = GITG_WINDOW(buildable); - + + // Insert menu from second ui file + GtkBuilder *b = gitg_utils_new_builder("gitg-ui.xml"); + GtkUIManager *uiman = GTK_UI_MANAGER (gtk_builder_get_object(b, "uiman")); + + GtkRecentChooser *chooser = GTK_RECENT_CHOOSER(gtk_builder_get_object(b, "RecentOpenAction")); + GtkRecentFilter *filter = gtk_recent_filter_new(); + gtk_recent_filter_add_group(filter, "gitg"); + + gtk_recent_chooser_add_filter(chooser, filter); + gtk_recent_chooser_set_show_tips(chooser, TRUE); + + GtkWidget *menu = gtk_ui_manager_get_widget (uiman, "/ui/menubar_main"); + GtkWidget *vbox = GTK_WIDGET(gtk_builder_get_object(builder, "vbox_main")); + + gtk_box_pack_start(GTK_BOX(vbox), menu, FALSE, FALSE, 0); + gtk_box_reorder_child(GTK_BOX(vbox), menu, 0); + + gtk_window_add_accel_group (GTK_WINDOW (window), gtk_ui_manager_get_accel_group (uiman)); + + window->priv->edit_group = GTK_ACTION_GROUP(gtk_builder_get_object(b, "action_group_menu_edit")); + + gtk_builder_connect_signals(b, window); + g_object_unref(b); + window->priv->vpaned_main = GTK_WIDGET(gtk_builder_get_object(builder, "vpaned_main")); - window->priv->hpaned_commit = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned_commit")); + window->priv->hpaned_commit1 = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned_commit1")); + window->priv->hpaned_commit2 = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned_commit2")); window->priv->vpaned_commit = GTK_WIDGET(gtk_builder_get_object(builder, "vpaned_commit")); - + window->priv->notebook_main = GTK_NOTEBOOK(gtk_builder_get_object(builder, "notebook_main")); window->priv->tree_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_rv")); window->priv->statusbar = GTK_STATUSBAR(gtk_builder_get_object(builder, "statusbar")); window->priv->revision_view = GITG_REVISION_VIEW(gtk_builder_get_object(builder, "revision_view")); window->priv->revision_tree_view = GITG_REVISION_TREE_VIEW(gtk_builder_get_object(builder, "revision_tree_view")); - window->priv->commit_view = GITG_COMMIT_VIEW(gtk_builder_get_object(builder, "hpaned_commit")); + window->priv->commit_view = GITG_COMMIT_VIEW(gtk_builder_get_object(builder, "vpaned_commit")); restore_state(window); - window->priv->edit_group = GTK_ACTION_GROUP(gtk_builder_get_object(builder, "action_group_menu_edit")); - - GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "rv_column_subject")); - - window->priv->renderer_path = GITG_CELL_RENDERER_PATH(gtk_builder_get_object(builder, "rv_renderer_subject")); - gtk_tree_view_column_set_cell_data_func(col, GTK_CELL_RENDERER(window->priv->renderer_path), (GtkTreeCellDataFunc)on_renderer_path, window, NULL); - - GtkRecentFilter *filter = gtk_recent_filter_new(); - gtk_recent_filter_add_group(filter, "gitg"); - - GtkRecentChooser *chooser = GTK_RECENT_CHOOSER(gtk_builder_get_object(builder, "RecentOpenAction")); - gtk_recent_chooser_add_filter(chooser, filter); + init_tree_view (window, builder); // Intialize branches build_branches_combo(window, builder); + // Get menus ui + b = gitg_utils_new_builder("gitg-menus.xml"); + window->priv->menus_ui_manager = GTK_UI_MANAGER(g_object_ref(gtk_builder_get_object(b, "uiman"))); + + gtk_builder_connect_signals (b, window); + g_object_unref (b); + // Create search entry build_search_entry(window, builder); - + gtk_builder_connect_signals(builder, window); // Connect signals GtkTreeSelection *selection = gtk_tree_view_get_selection(window->priv->tree_view); g_signal_connect(selection, "changed", G_CALLBACK(on_selection_changed), window); g_signal_connect(window->priv->revision_view, "parent-activated", G_CALLBACK(on_parent_activated), window); - + g_signal_connect(window->priv->tree_view, "motion-notify-event", G_CALLBACK(on_tree_view_motion), window); g_signal_connect(window->priv->tree_view, "button-release-event", G_CALLBACK(on_tree_view_button_release), window); + + GitgPreferences *preferences = gitg_preferences_get_default (); + g_signal_connect_swapped (preferences, + "notify::main-layout-vertical", + G_CALLBACK (on_main_layout_vertical_cb), + window); + + on_main_layout_vertical_cb (window); } static void gitg_window_buildable_iface_init(GtkBuildableIface *iface) { parent_iface = *iface; - + iface->parser_finished = gitg_window_parser_finished; } @@ -449,31 +724,66 @@ { GitgSettings *settings = gitg_settings_get_default(); GtkAllocation *allocation = &(GTK_WIDGET(window)->allocation); - + gitg_settings_set_window_width(settings, allocation->width); gitg_settings_set_window_height(settings, allocation->height); - gitg_settings_set_vpaned_main_position(settings, gtk_paned_get_position(GTK_PANED(window->priv->vpaned_main))); - gitg_settings_set_vpaned_commit_position(settings, gtk_paned_get_position(GTK_PANED(window->priv->vpaned_commit))); - gitg_settings_set_hpaned_commit_position(settings, gtk_paned_get_position(GTK_PANED(window->priv->hpaned_commit))); + if (GTK_WIDGET_MAPPED (window->priv->vpaned_main)) + { + gitg_settings_set_vpaned_main_position (settings, + gtk_paned_get_position(GTK_PANED(window->priv->vpaned_main))); + } + + if (GTK_WIDGET_MAPPED (window->priv->vpaned_commit)) + { + gitg_settings_set_vpaned_commit_position (settings, + gtk_paned_get_position(GTK_PANED(window->priv->vpaned_commit))); + } + + if (GTK_WIDGET_MAPPED (window->priv->hpaned_commit1)) + { + gitg_settings_set_hpaned_commit1_position (settings, + gtk_paned_get_position(GTK_PANED(window->priv->hpaned_commit1))); + } + + if (GTK_WIDGET_MAPPED (window->priv->hpaned_commit2)) + { + gitg_settings_set_hpaned_commit2_position (settings, + GTK_WIDGET (window->priv->hpaned_commit2)->allocation.width - + gtk_paned_get_position(GTK_PANED(window->priv->hpaned_commit2))); + } + gitg_settings_set_revision_tree_view_position(settings, gtk_paned_get_position(GTK_PANED(window->priv->revision_tree_view))); gitg_settings_save(settings); } +static gboolean +gitg_window_delete_event (GtkWidget *widget, GdkEventAny *event) +{ + save_state(GITG_WINDOW (widget)); + + if (GTK_WIDGET_CLASS (parent_class)->delete_event) + { + GTK_WIDGET_CLASS (parent_class)->delete_event (widget, event); + } + else + { + gtk_widget_destroy (widget); + } +} + static void gitg_window_destroy(GtkObject *object) { GitgWindow *window = GITG_WINDOW(object); - + if (!window->priv->destroy_has_run) { - save_state(window); - gtk_tree_view_set_model(window->priv->tree_view, NULL); window->priv->destroy_has_run = TRUE; } - + if (GTK_OBJECT_CLASS(parent_class)->destroy) GTK_OBJECT_CLASS(parent_class)->destroy(object); } @@ -503,14 +813,15 @@ GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - + parent_class = g_type_class_peek_parent(klass); - + object_class->finalize = gitg_window_finalize; gtkobject_class->destroy = gitg_window_destroy; - + widget_class->delete_event = gitg_window_delete_event; + widget_class->window_state_event = gitg_window_window_state_event; - + g_type_class_add_private(object_class, sizeof(GitgWindowPrivate)); } @@ -518,33 +829,29 @@ gitg_window_init(GitgWindow *self) { self->priv = GITG_WINDOW_GET_PRIVATE(self); - + self->priv->load_timer = g_timer_new(); self->priv->hand = gdk_cursor_new(GDK_HAND1); } static void -on_begin_loading(GitgRunner *loader, GitgWindow *window) -{ - GdkCursor *cursor = gdk_cursor_new(GDK_WATCH); - gdk_window_set_cursor(GTK_WIDGET(window->priv->tree_view)->window, cursor); - gdk_cursor_unref(cursor); - - gtk_statusbar_push(window->priv->statusbar, 0, _("Begin loading repository")); - - g_timer_reset(window->priv->load_timer); - g_timer_start(window->priv->load_timer); -} - -static void -on_end_loading(GitgRunner *loader, gboolean cancelled, GitgWindow *window) +on_repository_loaded (GitgRepository *repository, GitgWindow *window) { - gchar *msg = g_strdup_printf(_("Loaded %d revisions in %.2fs"), gtk_tree_model_iter_n_children(GTK_TREE_MODEL(window->priv->repository), NULL), g_timer_elapsed(window->priv->load_timer, NULL)); + gchar *msg = g_strdup_printf(_("Loaded %d revisions in %.2fs"), + gtk_tree_model_iter_n_children(GTK_TREE_MODEL(window->priv->repository), NULL), + g_timer_elapsed(window->priv->load_timer, NULL)); gtk_statusbar_push(window->priv->statusbar, 0, msg); - + g_free(msg); gdk_window_set_cursor(GTK_WIDGET(window->priv->tree_view)->window, NULL); + + Hash hash = {0,}; + + if (memcmp (window->priv->select_on_load, hash, HASH_BINARY_SIZE) != 0) + { + goto_hash (window, window->priv->select_on_load); + } } static void @@ -560,31 +867,73 @@ handle_no_gitdir(GitgWindow *window) { GtkWidget *dlg = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not find git repository")); - + gtk_dialog_run(GTK_DIALOG(dlg)); gtk_widget_destroy(dlg); } -static gboolean +void +gitg_window_set_select_on_load (GitgWindow *window, + gchar const *selection) +{ + if (!selection || !window->priv->repository) + { + return; + } + + gchar *resolved = gitg_repository_parse_ref (window->priv->repository, selection); + + if (resolved && strlen (resolved) == HASH_SHA_SIZE) + { + gitg_utils_sha1_to_hash (resolved, window->priv->select_on_load); + } + + g_free (resolved); +} + +static gboolean create_repository(GitgWindow *window, gchar const *path, gboolean usewd) { gboolean ret = TRUE; + gchar *selection = NULL; if (path) { - gchar realp[PATH_MAX]; - - if (realpath(path, realp)) + GFile *file = g_file_new_for_commandline_arg(path); + + if (g_file_has_uri_scheme (file, "gitg")) + { + /* Extract path and sha information */ + gchar *uri = g_file_get_uri (file); + gchar *fd = strrchr (uri, ':'); + gint pos = fd ? fd - uri : 0; + + if (pos > 5 && strlen (uri) - pos - 1 <= 40) + { + /* It has a sha */ + *fd = '\0'; + selection = g_strdup (fd + 1); + } + + g_object_unref (file); + + file = g_file_new_for_path (uri + 7); + g_free (uri); + } + + if (g_file_is_native(file) && g_file_query_exists(file, NULL)) { - window->priv->repository = gitg_repository_new(realp); - + gchar *p = g_file_get_path(file); + window->priv->repository = gitg_repository_new(p); + g_free(p); + if (!gitg_repository_get_path(window->priv->repository)) { // Try current directory path = NULL; g_object_unref(window->priv->repository); window->priv->repository = NULL; - + ret = FALSE; } } @@ -593,61 +942,95 @@ ret = FALSE; path = NULL; } + + g_object_unref(file); } - + if (!path && usewd) { gchar *curdir = g_get_current_dir(); window->priv->repository = gitg_repository_new(curdir); g_free(curdir); + + if (!gitg_repository_get_path (window->priv->repository)) + { + g_object_unref (window->priv->repository); + window->priv->repository = NULL; + + ret = FALSE; + path = NULL; + } } - - return ret; + + if (ret && selection) + { + gitg_window_set_select_on_load (window, selection); + g_free (selection); + } + + return ret; } static int -sort_by_ref_type(GitgRef const *a, GitgRef const *b) +sort_by_ref_type(GitgRef *a, GitgRef *b) { - if (a->type == b->type) + if (gitg_ref_get_ref_type(a) == gitg_ref_get_ref_type(b)) { - if (g_ascii_strcasecmp(a->shortname, "master") == 0) + if (g_ascii_strcasecmp(gitg_ref_get_shortname(a), "master") == 0) + { return -1; - else if (g_ascii_strcasecmp(b->shortname, "master") == 0) + } + else if (g_ascii_strcasecmp(gitg_ref_get_shortname(b), "master") == 0) + { return 1; + } else - return g_ascii_strcasecmp(a->shortname, b->shortname); + { + return g_ascii_strcasecmp(gitg_ref_get_shortname(a), gitg_ref_get_shortname(b)); + } } else { - return a->type - b->type; + return gitg_ref_get_ref_type(a) - gitg_ref_get_ref_type(b); } } static void -clear_branches_combo(GitgWindow *window, gboolean keepselection) +clear_branches_combo(GitgWindow *window) { - if (keepselection) + GtkTreeIter iter; + + if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(window->priv->branches_store), &iter, NULL, 1)) { - GtkTreeIter iter; - gtk_combo_box_get_active_iter(GTK_COMBO_BOX(window->priv->combo_branches), &iter); - - g_free(window->priv->current_branch); - gtk_tree_model_get(GTK_TREE_MODEL(window->priv->branches_store), &iter, 0, &window->priv->current_branch, -1); + while (gtk_tree_store_remove(window->priv->branches_store, &iter)) + ; } - else + + gtk_combo_box_set_active(window->priv->combo_branches, 0); +} + +static gboolean +equal_selection (gchar const **s1, + gchar const **s2) +{ + if (!s1 || !s2) { - g_free(window->priv->current_branch); - window->priv->current_branch = NULL; + return s1 == s2; } - - GtkTreeIter iter; - if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(window->priv->branches_store), &iter, NULL, 1)) + + gint i = 0; + + while (s1[i] && s2[i]) { - while (gtk_list_store_remove(window->priv->branches_store, &iter)) - ; + if (strcmp (s1[i], s2[i]) != 0) + { + return FALSE; + } + + ++i; } - gtk_combo_box_set_active(window->priv->combo_branches, 0); + return !s1[i] && !s2[i]; } static void @@ -657,59 +1040,243 @@ return; guint children = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(window->priv->branches_store), NULL); - + if (children > 1) return; GSList *refs = gitg_repository_get_refs(window->priv->repository); - + refs = g_slist_sort(refs, (GCompareFunc)sort_by_ref_type); GSList *item; + GitgRefType prevtype = GITG_REF_TYPE_NONE; GtkTreeIter iter; + GtkTreeIter parent; + GitgRef *parentref = NULL; + GtkTreeStore *store = window->priv->branches_store; + + GitgRef *current_ref = gitg_repository_get_current_ref (window->priv->repository); + GitgRef *working_ref = gitg_repository_get_current_working_ref (window->priv->repository); + + gchar const **current_selection = gitg_repository_get_current_selection (window->priv->repository); + + GtkTreeRowReference *active_from_current_ref = NULL; + GtkTreeRowReference *active_from_selection = NULL; for (item = refs; item; item = item->next) { GitgRef *ref = (GitgRef *)item->data; - - if (!(ref->type == GITG_REF_TYPE_REMOTE || - ref->type == GITG_REF_TYPE_BRANCH)) + + if (!(gitg_ref_get_ref_type(ref) == GITG_REF_TYPE_REMOTE || + gitg_ref_get_ref_type(ref) == GITG_REF_TYPE_BRANCH)) continue; - if (ref->type != prevtype) + if (gitg_ref_get_ref_type(ref) != prevtype) + { + /* Insert separator */ + gtk_tree_store_append(store, &iter, NULL); + gtk_tree_store_set(store, + &iter, + COLUMN_BRANCHES_NAME, NULL, + COLUMN_BRANCHES_REF, NULL, + COLUMN_BRANCHES_SELECTION, NULL, + -1); + + prevtype = gitg_ref_get_ref_type(ref); + } + + if (gitg_ref_get_prefix(ref)) + { + if (!parentref || !gitg_ref_equal_prefix(parentref, ref)) + { + parentref = ref; + + /* Add parent item */ + gtk_tree_store_append(store, &parent, NULL); + gtk_tree_store_set(store, + &parent, + COLUMN_BRANCHES_NAME, gitg_ref_get_prefix(ref), + COLUMN_BRANCHES_REF, NULL, + -1); + + if (gitg_ref_get_ref_type(ref) == GITG_REF_TYPE_REMOTE) + { + /* Add remote icon */ + gtk_tree_store_set(store, + &parent, + COLUMN_BRANCHES_ICON, g_strdup(GTK_STOCK_NETWORK), + -1); + } + } + + gtk_tree_store_append (store, &iter, &parent); + } + else + { + gtk_tree_store_append (store, &iter, NULL); + } + + gchar const *selection[] = { + gitg_ref_get_name (ref), + NULL + }; + + gtk_tree_store_set (store, + &iter, + COLUMN_BRANCHES_NAME, gitg_ref_get_shortname(ref), + COLUMN_BRANCHES_REF, ref, + COLUMN_BRANCHES_SELECTION, selection, + -1); + + if (!active_from_current_ref && gitg_ref_equal (current_ref, ref)) + { + GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), + &iter); + + active_from_current_ref = gtk_tree_row_reference_new (GTK_TREE_MODEL (store), + path); + gtk_tree_path_free (path); + } + + if (!active_from_selection && + (current_selection && equal_selection (selection, current_selection)) || + (!current_selection && gitg_ref_equal (ref, working_ref))) { - gtk_list_store_append(window->priv->branches_store, &iter); - gtk_list_store_set(window->priv->branches_store, &iter, 0, NULL, -1); - - prevtype = ref->type; - } - - gtk_list_store_append(window->priv->branches_store, &iter); - gtk_list_store_set(window->priv->branches_store, &iter, 0, ref->shortname, -1); - - if (g_strcmp0(window->priv->current_branch, ref->shortname) == 0) - gtk_combo_box_set_active_iter(window->priv->combo_branches, &iter); - } - - gtk_list_store_append(window->priv->branches_store, &iter); - gtk_list_store_set(window->priv->branches_store, &iter, 0, NULL, -1); - - gtk_list_store_append(window->priv->branches_store, &iter); - gtk_list_store_set(window->priv->branches_store, &iter, 0, _("All branches"), -1); - - if (!window->priv->current_branch) - gtk_combo_box_set_active(window->priv->combo_branches, 0); - + GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), + &iter); + + active_from_selection = gtk_tree_row_reference_new (GTK_TREE_MODEL (store), + path); + gtk_tree_path_free (path); + } + } + + /* Separator */ + gtk_tree_store_append(store, &iter, NULL); + gtk_tree_store_set(store, + &iter, + COLUMN_BRANCHES_NAME, NULL, + COLUMN_BRANCHES_REF, NULL, + COLUMN_BRANCHES_SELECTION, NULL, + -1); + + gchar const *selection[] = { + "--branches", + NULL + }; + + gtk_tree_store_append(store, &iter, NULL); + gtk_tree_store_set(store, + &iter, + COLUMN_BRANCHES_NAME, _("Local branches"), + COLUMN_BRANCHES_REF, NULL, + COLUMN_BRANCHES_SELECTION, selection, + -1); + + if (!active_from_selection && + current_selection && equal_selection (selection, current_selection)) + { + GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), + &iter); + + active_from_selection = gtk_tree_row_reference_new (GTK_TREE_MODEL (store), + path); + gtk_tree_path_free (path); + } + + selection[0] = "--all"; + + gtk_tree_store_append(store, &iter, NULL); + gtk_tree_store_set(store, + &iter, + COLUMN_BRANCHES_NAME, _("All branches"), + COLUMN_BRANCHES_REF, NULL, + COLUMN_BRANCHES_SELECTION, selection, + -1); + + if (!active_from_selection && + current_selection && equal_selection (selection, current_selection)) + { + GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), + &iter); + + active_from_selection = gtk_tree_row_reference_new (GTK_TREE_MODEL (store), + path); + gtk_tree_path_free (path); + } + + if (active_from_selection != NULL || active_from_current_ref != NULL) + { + GtkTreePath *path; + GtkTreeIter active; + + path = gtk_tree_row_reference_get_path (active_from_selection ? active_from_selection : active_from_current_ref); + + gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &active, path); + gtk_combo_box_set_active_iter (window->priv->combo_branches, &active); + } + g_slist_foreach(refs, (GFunc)gitg_ref_free, NULL); g_slist_free(refs); + + if (active_from_selection) + { + gtk_tree_row_reference_free (active_from_selection); + } + + if (active_from_current_ref) + { + gtk_tree_row_reference_free (active_from_current_ref); + } +} + +static void +update_window_title (GitgWindow *window) +{ + if (!window->priv->repository) + { + gtk_window_set_title (GTK_WINDOW (window), _("gitg")); + return; + } + + GitgRef *ref = gitg_repository_get_current_working_ref (window->priv->repository); + gchar *refname = NULL; + + if (ref) + { + refname = g_strconcat (" (", gitg_ref_get_shortname (ref), ")", NULL); + } + + gchar *basename = g_path_get_basename(gitg_repository_get_path(window->priv->repository)); + gchar *title = g_strconcat(_("gitg"), " - ", basename, refname, NULL); + + gtk_window_set_title(GTK_WINDOW(window), title); + + g_free(basename); + g_free(title); + g_free (refname); } static void on_repository_load(GitgRepository *repository, GitgWindow *window) { + GdkCursor *cursor = gdk_cursor_new(GDK_WATCH); + gdk_window_set_cursor(GTK_WIDGET(window->priv->tree_view)->window, cursor); + gdk_cursor_unref(cursor); + + gtk_statusbar_push(window->priv->statusbar, 0, _("Begin loading repository")); + + g_timer_reset(window->priv->load_timer); + g_timer_start(window->priv->load_timer); + g_signal_handlers_block_by_func(window->priv->combo_branches, on_branches_combo_changed, window); + + clear_branches_combo(window); fill_branches_combo(window); + g_signal_handlers_unblock_by_func(window->priv->combo_branches, on_branches_combo_changed, window); + + update_window_title (window); } static void @@ -720,7 +1287,7 @@ gchar *groups[] = {"gitg", NULL}; gchar const *path = gitg_repository_get_path(window->priv->repository); gchar *basename = g_path_get_basename(path); - + data.display_name = basename; data.app_name = "gitg"; data.mime_type = "inode/directory"; @@ -730,43 +1297,49 @@ GFile *file = g_file_new_for_path(gitg_repository_get_path(window->priv->repository)); gchar *uri = g_file_get_uri(file); gtk_recent_manager_add_full(manager, uri, &data); - + g_free(basename); g_free(uri); g_object_unref(file); } static void -load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv, gboolean usewd) +load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv, gboolean usewd, gchar const *selection) { if (window->priv->repository) { gtk_tree_view_set_model(window->priv->tree_view, NULL); + g_signal_handlers_disconnect_by_func(window->priv->repository, G_CALLBACK(on_repository_load), window); + g_signal_handlers_disconnect_by_func(window->priv->repository, G_CALLBACK(on_repository_loaded), window); g_object_unref(window->priv->repository); window->priv->repository = NULL; + + gitg_repository_dialog_close (); + + memset (window->priv->select_on_load, 0, HASH_BINARY_SIZE); } - + gboolean haspath = create_repository(window, path, usewd); - + if (window->priv->repository && gitg_repository_get_path(window->priv->repository)) { gtk_tree_view_set_model(window->priv->tree_view, GTK_TREE_MODEL(window->priv->repository)); GitgRunner *loader = gitg_repository_get_loader(window->priv->repository); - - g_signal_connect(loader, "begin-loading", G_CALLBACK(on_begin_loading), window); - g_signal_connect(loader, "end-loading", G_CALLBACK(on_end_loading), window); + + gitg_window_set_select_on_load (window, selection); + g_signal_connect(loader, "update", G_CALLBACK(on_update), window); - + g_object_unref(loader); - + gchar const **ar = argv; if (!haspath && path) { ar = (gchar const **)g_new(gchar *, ++argc); - + int i; for (i = 0; i < argc - 1; ++i) ar[i] = argv[i]; @@ -774,56 +1347,71 @@ ar[argc - 1] = path; } - g_signal_connect(window->priv->repository, "load", G_CALLBACK(on_repository_load), window); - clear_branches_combo(window, FALSE); + g_signal_connect (window->priv->repository, + "load", + G_CALLBACK (on_repository_load), + window); + + g_signal_connect (window->priv->repository, + "loaded", + G_CALLBACK (on_repository_loaded), + window); + + clear_branches_combo(window); + gitg_repository_load(window->priv->repository, argc, ar, NULL); - - if (!haspath && argc) + + if (!haspath && path) + { g_free(ar); + } gitg_commit_view_set_repository(window->priv->commit_view, window->priv->repository); gitg_revision_view_set_repository(window->priv->revision_view, window->priv->repository); - - gchar *basename = g_path_get_basename(gitg_repository_get_path(window->priv->repository)); - gchar *title = g_strdup_printf("%s - %s", _("gitg"), basename); - gtk_window_set_title(GTK_WINDOW(window), title); - - g_free(basename); - g_free(title); - + add_recent_item(window); gtk_widget_set_sensitive(GTK_WIDGET(window->priv->notebook_main), TRUE); } else { - clear_branches_combo(window, FALSE); + clear_branches_combo(window); gitg_commit_view_set_repository(window->priv->commit_view, window->priv->repository); gitg_revision_view_set_repository(window->priv->revision_view, window->priv->repository); - if (path || argc > 1) + if (path || argc > 1 || usewd) + { handle_no_gitdir(window); + } - gtk_window_set_title(GTK_WINDOW(window), _("gitg")); + update_window_title (window); gtk_widget_set_sensitive(GTK_WIDGET(window->priv->notebook_main), FALSE); } } void -gitg_window_load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv) +gitg_window_load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv, gchar const *selection) { g_return_if_fail(GITG_IS_WINDOW(window)); - - load_repository(window, path, argc, argv, TRUE); + + load_repository(window, path, argc, argv, TRUE, selection); } void gitg_window_show_commit(GitgWindow *window) { g_return_if_fail(GITG_IS_WINDOW(window)); - + gtk_notebook_set_current_page(window->priv->notebook_main, 1); } +GitgRepository * +gitg_window_get_repository(GitgWindow *window) +{ + g_return_val_if_fail(GITG_IS_WINDOW(window), NULL); + + return window->priv->repository; +} + void on_file_quit(GtkAction *action, GitgWindow *window) { @@ -838,16 +1426,16 @@ gtk_widget_destroy(GTK_WIDGET(dialog)); return; } - + gchar *uri = gtk_file_chooser_get_uri(dialog); GFile *file = g_file_new_for_uri(uri); gchar *path = g_file_get_path(file); - + g_free(uri); - g_object_unref(file); + g_object_unref(file); gtk_widget_destroy(GTK_WIDGET(dialog)); - - load_repository(window, path, 0, NULL, FALSE); + + load_repository(window, path, 0, NULL, FALSE, NULL); g_free(path); } @@ -859,7 +1447,7 @@ gtk_window_present(GTK_WINDOW(window->priv->open_dialog)); return; } - + window->priv->open_dialog = gtk_file_chooser_dialog_new(_("Open git repository"), GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, @@ -872,7 +1460,7 @@ gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(window->priv->open_dialog), TRUE); g_object_add_weak_pointer(G_OBJECT(window->priv->open_dialog), (gpointer *)&(window->priv->open_dialog)); gtk_window_present(GTK_WINDOW(window->priv->open_dialog)); - + g_signal_connect(window->priv->open_dialog, "response", G_CALLBACK(on_open_dialog_response), window); } @@ -905,10 +1493,6 @@ { if (window->priv->repository && gitg_repository_get_path(window->priv->repository) != NULL) { - g_signal_handlers_block_by_func(window->priv->combo_branches, on_branches_combo_changed, window); - clear_branches_combo(window, TRUE); - g_signal_handlers_unblock_by_func(window->priv->combo_branches, on_branches_combo_changed, window); - gitg_repository_reload(window->priv->repository); } } @@ -922,7 +1506,7 @@ gboolean cancopy = g_signal_lookup("copy-clipboard", G_OBJECT_TYPE(widget)) != 0; gboolean selection = FALSE; gboolean editable = FALSE; - + if (GTK_IS_EDITABLE(widget)) { selection = gtk_editable_get_selection_bounds(GTK_EDITABLE(widget), NULL, NULL); @@ -939,7 +1523,7 @@ on_window_state_event(GtkWidget *widget, GdkEventWindowState *event, GitgWindow *window) { GitgSettings *settings = gitg_settings_get_default(); - + gitg_settings_set_window_state(settings, event->new_window_state); return FALSE; @@ -950,9 +1534,9 @@ { GFile *file = g_file_new_for_uri(gtk_recent_chooser_get_current_uri(chooser)); gchar *path = g_file_get_path(file); - - load_repository(window, path, 0, NULL, FALSE); - + + load_repository(window, path, 0, NULL, FALSE, NULL); + g_free(path); g_object_unref(file); } @@ -969,12 +1553,12 @@ { gchar *uri; gchar *escaped; - + escaped = g_uri_escape_string(link, NULL, FALSE); uri = g_strdup_printf("mailto:%s", escaped); - + gtk_show_uri(NULL, uri, GDK_CURRENT_TIME, NULL); - + g_free(uri); g_free(escaped); } @@ -984,7 +1568,7 @@ on_help_about(GtkAction *action, GitgWindow *window) { static gchar const copyright[] = "Copyright \xc2\xa9 2009 Jesse van den Kieboom"; - static gchar const *authors[] = {"Jesse van den Kieboom ", NULL}; + static gchar const *authors[] = {"Jesse van den Kieboom ", NULL}; static gchar const *comments = N_("gitg is a git repository viewer for gtk+/GNOME"); static gchar const *license = N_("This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -1008,7 +1592,7 @@ gchar *path = gitg_dirs_get_data_filename("icons", "gitg.svg", NULL); GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, NULL); g_free(path); - + if (!pixbuf) { path = gitg_dirs_get_data_filename("icons", "gitg128x128.png", NULL); @@ -1025,7 +1609,7 @@ "logo", pixbuf, "license", _(license), NULL); - + if (pixbuf) g_object_unref(pixbuf); } @@ -1037,14 +1621,14 @@ GtkTreeIter iter; guint width; GitgRevision *revision; - + gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, 0, &revision, -1); - + /* Determine lane at cell_x */ g_object_get(window->priv->renderer_path, "lane-width", &width, NULL); guint laneidx = cell_x / width; - + GSList *lanes = gitg_revision_get_lanes(revision); GitgLane *lane = (GitgLane *)g_slist_nth_data(lanes, laneidx); gboolean ret; @@ -1060,7 +1644,7 @@ { ret = FALSE; } - + gitg_revision_unref(revision); return ret; } @@ -1086,7 +1670,7 @@ { if (path) gtk_tree_path_free(path); - + return FALSE; } @@ -1094,18 +1678,18 @@ is actually placed */ gboolean ret = find_lane_boundary(window, path, cell_x, hash); gtk_tree_path_free(path); - + return ret; } -static gboolean +static gboolean on_tree_view_motion(GtkTreeView *treeview, GdkEventMotion *event, GitgWindow *window) { - if (is_boundary_from_event(window, (GdkEventAny *)event, event->x, event->y, NULL)) + if (is_boundary_from_event(window, (GdkEventAny *)event, event->x, event->y, NULL)) gdk_window_set_cursor(GTK_WIDGET(treeview)->window, window->priv->hand); else gdk_window_set_cursor(GTK_WIDGET(treeview)->window, NULL); - + return FALSE; } @@ -1116,10 +1700,10 @@ return FALSE; gchar const *hash; - + if (!is_boundary_from_event(window, (GdkEventAny *)event, event->x, event->y, &hash)) return FALSE; - + goto_hash(window, hash); return TRUE; } @@ -1129,3 +1713,976 @@ { gitg_preferences_dialog_present(GTK_WINDOW(window)); } + +void +on_repository_properties(GtkAction *action, GitgWindow *window) +{ + gitg_repository_dialog_present (window); +} + +static void +on_push_activated (GtkAction *action, GitgWindow *window) +{ + gchar const *remote = g_object_get_data (G_OBJECT (action), + DYNAMIC_ACTION_DATA_REMOTE_KEY); + gchar const *branch = g_object_get_data (G_OBJECT (action), + DYNAMIC_ACTION_DATA_BRANCH_KEY); + + gitg_window_add_branch_action (window, + gitg_branch_actions_push_remote (window, window->priv->popup_refs[0], remote, branch)); +} + +static void +on_rebase_activated (GtkAction *action, GitgWindow *window) +{ + GitgRef *dest = g_object_get_data (G_OBJECT (action), + DYNAMIC_ACTION_DATA_KEY); + + gitg_window_add_branch_action (window, + gitg_branch_actions_rebase (window, + window->priv->popup_refs[0], + dest)); +} + +static void +on_merge_activated (GtkAction *action, GitgWindow *window) +{ + GitgRef *dest = g_object_get_data (G_OBJECT (action), + DYNAMIC_ACTION_DATA_KEY); + + gitg_window_add_branch_action (window, + gitg_branch_actions_merge (window, + dest, + window->priv->popup_refs[0])); +} + +static void +on_stash_activated (GtkAction *action, GitgWindow *window) +{ + GitgRef *dest = g_object_get_data (G_OBJECT (action), + DYNAMIC_ACTION_DATA_KEY); + + gitg_branch_actions_apply_stash (window, window->priv->popup_refs[0], dest); +} + +static void +get_tracked_ref (GitgWindow *window, GitgRef *branch, gchar **retremote, gchar **retbranch) +{ + GitgConfig *config = gitg_config_new (window->priv->repository); + gchar *merge; + gchar *var; + gchar *ret; + + var = g_strconcat ("branch.", gitg_ref_get_shortname (branch), ".remote", NULL); + *retremote = gitg_config_get_value (config, var); + g_free (var); + + if (!*retremote || !**retremote) + { + g_free (*retremote); + *retremote = NULL; + + g_object_unref (config); + + return; + } + + var = g_strconcat ("branch.", gitg_ref_get_shortname (branch), ".merge", NULL); + merge = gitg_config_get_value (config, var); + g_free (var); + + g_object_unref (config); + + if (merge && g_str_has_prefix (merge, "refs/heads")) + { + *retbranch = g_strdup (merge + 11); + } + + g_free (merge); +} + +static void +add_push_action (GitgWindow *window, GtkActionGroup *group, gchar const *name, gchar const *remote, gchar const *branch) +{ + gchar *acname = g_strconcat ("Push", remote, branch, "Action", NULL); + GtkAction *pushac = gtk_action_new (acname, name, NULL, NULL); + + gtk_action_group_add_action (group, pushac); + + gchar *nm = g_strconcat ("Push", remote, branch, NULL); + gtk_ui_manager_add_ui (window->priv->menus_ui_manager, + window->priv->merge_rebase_uid, + "/ui/ref_popup/Push/Placeholder", + nm, + acname, + GTK_UI_MANAGER_MENUITEM, + FALSE); + + g_object_set_data_full (G_OBJECT (pushac), + DYNAMIC_ACTION_DATA_REMOTE_KEY, + g_strdup (remote), + (GDestroyNotify)g_free); + + g_object_set_data_full (G_OBJECT (pushac), + DYNAMIC_ACTION_DATA_BRANCH_KEY, + g_strdup (branch), + (GDestroyNotify)g_free); + + g_signal_connect (pushac, + "activate", + G_CALLBACK (on_push_activated), + window); +} + +static gboolean +repository_has_ref (GitgWindow *window, gchar const *remote, GitgRef *ref) +{ + GSList *refs = gitg_repository_get_refs (window->priv->repository); + gchar *combined = g_strconcat (remote, "/", gitg_ref_get_shortname (ref), NULL); + + while (refs) + { + GitgRef *r = (GitgRef *)refs->data; + + if (gitg_ref_get_ref_type (r) == GITG_REF_TYPE_REMOTE && + strcmp (gitg_ref_get_shortname (r), combined) == 0) + { + g_free (combined); + return TRUE; + } + + refs = g_slist_next (refs); + } + + g_free (combined); + return FALSE; +} + +static void +update_merge_rebase (GitgWindow *window, GitgRef *ref) +{ + if (window->priv->merge_rebase_uid != 0) + { + gtk_ui_manager_remove_ui (window->priv->menus_ui_manager, + window->priv->merge_rebase_uid); + } + + GtkActionGroup *ac = window->priv->merge_rebase_action_group; + + if (ac) + { + GList *actions = gtk_action_group_list_actions (ac); + GList *item; + + for (item = actions; item; item = g_list_next (item)) + { + gtk_action_group_remove_action (ac, (GtkAction *)item->data); + } + + g_list_free (actions); + } + + if (gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_BRANCH && + gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_STASH) + { + return; + } + + if (window->priv->merge_rebase_uid == 0) + { + window->priv->merge_rebase_uid = gtk_ui_manager_new_merge_id (window->priv->menus_ui_manager); + } + + if (ac == NULL) + { + ac = gtk_action_group_new ("GitgMergeRebaseActions"); + window->priv->merge_rebase_action_group = ac; + gtk_ui_manager_insert_action_group (window->priv->menus_ui_manager, + ac, + 0); + } + + GSList *refs = gitg_repository_get_refs (window->priv->repository); + GSList *item; + + for (item = refs; item; item = g_slist_next (item)) + { + GitgRef *r = GITG_REF (item->data); + + if (gitg_ref_get_ref_type (r) == GITG_REF_TYPE_BRANCH && !gitg_ref_equal (r, ref)) + { + gchar const *rname = gitg_ref_get_shortname (r); + + if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH) + { + gchar *rebase = g_strconcat ("Rebase", rname, "Action", NULL); + gchar *merge = g_strconcat ("Merge", rname, "Action", NULL); + + GtkAction *rebaseac = gtk_action_new (rebase, rname, NULL, NULL); + GtkAction *mergeac = gtk_action_new (merge, rname, NULL, NULL); + + g_object_set_data_full (G_OBJECT (rebaseac), + DYNAMIC_ACTION_DATA_KEY, + gitg_ref_copy (r), + (GDestroyNotify)gitg_ref_free); + g_object_set_data_full (G_OBJECT (mergeac), + DYNAMIC_ACTION_DATA_KEY, + gitg_ref_copy (r), + (GDestroyNotify)gitg_ref_free); + + g_signal_connect (rebaseac, + "activate", + G_CALLBACK (on_rebase_activated), + window); + g_signal_connect (mergeac, + "activate", + G_CALLBACK (on_merge_activated), + window); + + gtk_action_group_add_action (ac, rebaseac); + gtk_action_group_add_action (ac, mergeac); + + gchar *name = g_strconcat ("Rebase", rname, NULL); + + gtk_ui_manager_add_ui (window->priv->menus_ui_manager, + window->priv->merge_rebase_uid, + "/ui/ref_popup/Rebase/Placeholder", + name, + rebase, + GTK_UI_MANAGER_MENUITEM, + FALSE); + g_free (name); + + name = g_strconcat ("Merge", rname, NULL); + + gtk_ui_manager_add_ui (window->priv->menus_ui_manager, + window->priv->merge_rebase_uid, + "/ui/ref_popup/Merge/Placeholder", + name, + merge, + GTK_UI_MANAGER_MENUITEM, + FALSE); + g_free (name); + + g_object_unref (rebaseac); + g_object_unref (mergeac); + + g_free (rebase); + g_free (merge); + } + else + { + gchar *stash = g_strconcat ("Stash", rname, "Action", NULL); + + GtkAction *stashac = gtk_action_new (stash, rname, NULL, NULL); + + g_object_set_data_full (G_OBJECT (stashac), + DYNAMIC_ACTION_DATA_KEY, + gitg_ref_copy (r), + (GDestroyNotify)gitg_ref_free); + + g_signal_connect (stashac, + "activate", + G_CALLBACK (on_stash_activated), + window); + + gtk_action_group_add_action (ac, stashac); + + gchar *name = g_strconcat ("Stash", rname, NULL); + + gtk_ui_manager_add_ui (window->priv->menus_ui_manager, + window->priv->merge_rebase_uid, + "/ui/ref_popup/Stash/Placeholder", + name, + stash, + GTK_UI_MANAGER_MENUITEM, + FALSE); + g_free (name); + + g_object_unref (stashac); + } + } + } + + g_slist_foreach (refs, (GFunc)gitg_ref_free, NULL); + g_slist_free (refs); + + if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH) + { + /* Get the tracked remote of this ref (if any) */ + gchar *remote = NULL; + gchar *branch = NULL; + gchar *tracked = NULL; + + gchar **remotes = gitg_repository_get_remotes (window->priv->repository); + gchar **ptr = remotes; + + get_tracked_ref (window, ref, &remote, &branch); + + if (remote) + { + tracked = g_strconcat (remote, "/", branch, NULL); + add_push_action (window, ac, tracked, remote, branch); + } + + while (*ptr) + { + if (!tracked || !g_str_has_prefix (tracked, *ptr)) + { + gchar *name; + + if (repository_has_ref (window, *ptr, ref)) + { + name = g_strconcat (*ptr, "/", gitg_ref_get_shortname (ref), NULL); + } + else + { + name = g_strconcat (*ptr, "/", gitg_ref_get_shortname (ref), " (", _("new"), ")", NULL); + } + + add_push_action (window, ac, name, *ptr, gitg_ref_get_shortname (ref)); + + g_free (name); + } + + ++ptr; + } + + g_free (tracked); + g_strfreev (remotes); + + g_free (remote); + g_free (branch); + } + + gtk_ui_manager_ensure_update (window->priv->menus_ui_manager); +} + +static gboolean +has_local_ref (GitgWindow *window, + gchar const *name) +{ + GSList *refs = gitg_repository_get_refs (window->priv->repository); + GSList *item; + gboolean ret = FALSE; + + for (item = refs; item; item = g_slist_next (item)) + { + GitgRef *ref = GITG_REF (item->data); + + if (gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_BRANCH) + { + continue; + } + + gchar const *nm = gitg_ref_get_shortname (ref); + + if (g_strcmp0 (name, nm) == 0) + { + ret = TRUE; + break; + } + } + + g_slist_foreach (refs, (GFunc)gitg_ref_free, NULL); + g_slist_free (refs); + + return ret; +} + +static gboolean +popup_ref (GitgWindow *window, GdkEventButton *event) +{ + gint cell_x; + gint cell_y; + GtkTreePath *path; + GtkTreeViewColumn *column; + + GtkTreeView *tree_view = window->priv->tree_view; + + if (!gtk_tree_view_get_path_at_pos (tree_view, + (gint)event->x, + (gint)event->y, + &path, + &column, + &cell_x, + &cell_y)) + { + return FALSE; + } + + GtkCellRenderer *cell = gitg_utils_find_cell_at_pos (tree_view, column, path, cell_x); + + if (!cell || !GITG_IS_CELL_RENDERER_PATH (cell)) + { + return FALSE; + } + + GitgRef *ref = gitg_cell_renderer_path_get_ref_at_pos (GTK_WIDGET (tree_view), + GITG_CELL_RENDERER_PATH (cell), + cell_x, + NULL); + gtk_tree_path_free (path); + + if (!ref || (gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_BRANCH && + gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_REMOTE && + gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_STASH && + gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_TAG)) + { + return FALSE; + } + + GtkWidget *popup = gtk_ui_manager_get_widget (window->priv->menus_ui_manager, + "/ui/ref_popup"); + + GtkAction *checkout = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/ref_popup/CheckoutAction"); + GtkAction *remove = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/ref_popup/RemoveAction"); + GtkAction *rename = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/ref_popup/RenameAction"); + + if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_REMOTE) + { + gchar *local = gitg_ref_get_local_name (ref); + + if (!has_local_ref (window, local)) + { + gchar *label = g_strdup_printf (_("New local branch <%s>"), local); + + g_object_set (checkout, "label", label, NULL); + gtk_action_set_visible (checkout, TRUE); + g_free (label); + } + else + { + gtk_action_set_visible (checkout, FALSE); + } + + g_free (local); + g_object_set (remove, "label", _("Remove remote branch"), NULL); + gtk_action_set_visible (rename, FALSE); + } + else if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH) + { + g_object_set (checkout, "label", _("Checkout working copy"), NULL); + g_object_set (remove, "label", _("Remove local branch"), NULL); + gtk_action_set_visible (rename, TRUE); + g_object_set (rename, "label", _("Rename local branch"), NULL); + + GitgRef *working = gitg_repository_get_current_working_ref (window->priv->repository); + + gtk_action_set_visible (checkout, !gitg_ref_equal (working, ref)); + } + else if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_STASH) + { + g_object_set (remove, "label", _("Remove stash"), NULL); + gtk_action_set_visible (rename, FALSE); + gtk_action_set_visible (checkout, FALSE); + } + else if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_TAG) + { + g_object_set (remove, "label", _("Remove tag"), NULL); + gtk_action_set_visible (rename, FALSE); + + if (!has_local_ref (window, gitg_ref_get_shortname (ref))) + { + gchar *label = g_strdup_printf (_("New local branch <%s>"), gitg_ref_get_shortname (ref)); + + g_object_set (checkout, "label", label, NULL); + gtk_action_set_visible (checkout, TRUE); + g_free (label); + } + else + { + gtk_action_set_visible (checkout, FALSE); + } + } + + update_merge_rebase (window, ref); + window->priv->popup_refs[0] = ref; + + gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, window, event->button, event->time); + return TRUE; +} + +static gboolean +consecutive_revisions (GitgWindow *window, GList *rows) +{ + return FALSE; +} + +static void +on_cherry_pick_activated (GtkAction *action, GitgWindow *window) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection (window->priv->tree_view); + GList *rows = gtk_tree_selection_get_selected_rows (selection, &model); + + if (!rows || rows->next) + { + return; + } + + GtkTreeIter iter; + GitgRevision *rev; + + gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)rows->data); + gtk_tree_model_get (model, &iter, 0, &rev, -1); + + GitgRef *ref = g_object_get_data (G_OBJECT (action), + DYNAMIC_ACTION_DATA_KEY); + + gitg_window_add_branch_action (window, + gitg_branch_actions_cherry_pick (window, + rev, + ref)); + + gitg_revision_unref (rev); + + g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (rows); +} + +static void +update_cherry_pick (GitgWindow *window) +{ + if (window->priv->cherry_pick_uid != 0) + { + gtk_ui_manager_remove_ui (window->priv->menus_ui_manager, + window->priv->cherry_pick_uid); + } + + GtkActionGroup *ac = window->priv->cherry_pick_action_group; + + if (ac) + { + GList *actions = gtk_action_group_list_actions (ac); + GList *item; + + for (item = actions; item; item = g_list_next (item)) + { + gtk_action_group_remove_action (ac, (GtkAction *)item->data); + } + + g_list_free (actions); + } + + if (window->priv->cherry_pick_uid == 0) + { + window->priv->cherry_pick_uid = gtk_ui_manager_new_merge_id (window->priv->menus_ui_manager); + } + + if (ac == NULL) + { + ac = gtk_action_group_new ("GitgCherryPickActions"); + + window->priv->cherry_pick_action_group = ac; + + gtk_ui_manager_insert_action_group (window->priv->menus_ui_manager, + ac, + 0); + } + + GSList *refs = gitg_repository_get_refs (window->priv->repository); + GSList *item; + + for (item = refs; item; item = g_slist_next (item)) + { + GitgRef *r = GITG_REF (item->data); + + if (gitg_ref_get_ref_type (r) == GITG_REF_TYPE_BRANCH) + { + gchar const *rname = gitg_ref_get_shortname (r); + gchar *acname = g_strconcat ("CherryPick", rname, "Action", NULL); + + GtkAction *action = gtk_action_new (acname, rname, NULL, NULL); + + g_object_set_data_full (G_OBJECT (action), + DYNAMIC_ACTION_DATA_KEY, + gitg_ref_copy (r), + (GDestroyNotify)gitg_ref_free); + + g_signal_connect (action, + "activate", + G_CALLBACK (on_cherry_pick_activated), + window); + + gtk_action_group_add_action (ac, action); + + gchar *name = g_strconcat ("CherryPick", rname, NULL); + + gtk_ui_manager_add_ui (window->priv->menus_ui_manager, + window->priv->cherry_pick_uid, + "/ui/revision_popup/CherryPick/Placeholder", + name, + acname, + GTK_UI_MANAGER_MENUITEM, + FALSE); + g_free (name); + + g_object_unref (action); + g_free (acname); + } + } + + g_slist_foreach (refs, (GFunc)gitg_ref_free, NULL); + g_slist_free (refs); +} + +static gboolean +popup_revision (GitgWindow *window, GdkEventButton *event) +{ + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection (window->priv->tree_view); + GList *rows = gtk_tree_selection_get_selected_rows (selection, NULL); + + gboolean show = FALSE; + + update_cherry_pick (window); + + if (rows) + { + GtkAction *tag = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/revision_popup/TagAction"); + GtkAction *squash = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/revision_popup/SquashAction"); + GtkAction *cherry_pick = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/revision_popup/CherryPick"); + + if (!rows->next) + { + show = TRUE; + + gtk_action_set_visible (squash, FALSE); + gtk_action_set_visible (tag, TRUE); + } + else if (consecutive_revisions (window, rows)) + { + show = TRUE; + + gtk_action_set_visible (squash, TRUE); + gtk_action_set_visible (tag, FALSE); + } + } + + g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (rows); + + if (!show) + { + return FALSE; + } + + gtk_menu_popup (GTK_MENU (gtk_ui_manager_get_widget (window->priv->menus_ui_manager, "/ui/revision_popup")), + NULL, + NULL, + NULL, + window, + event->button, + event->time); + + return TRUE; +} + +gboolean +on_tree_view_rv_button_press_event (GtkWidget *widget, GdkEventButton *event, GitgWindow *window) +{ + if (event->button == 3) + { + return popup_ref (window, event) || popup_revision (window, event); + } + + return FALSE; +} + +void +on_checkout_branch_action_activate (GtkAction *action, GitgWindow *window) +{ + if (gitg_branch_actions_checkout (window, window->priv->popup_refs[0])) + { + update_window_title (window); + } +} + +void +on_remove_branch_action_activate (GtkAction *action, GitgWindow *window) +{ + gitg_branch_actions_remove (window, window->priv->popup_refs[0]); +} + +void +on_rename_branch_action_activate (GtkAction *action, GitgWindow *window) +{ + gitg_branch_actions_rename (window, window->priv->popup_refs[0]); +} + +void +on_rebase_branch_action_activate (GtkAction *action, GitgWindow *window) +{ + gint source; + + if (gitg_ref_get_ref_type (window->priv->popup_refs[0]) == GITG_REF_TYPE_REMOTE) + { + source = 1; + } + else + { + source = 0; + } + + gitg_window_add_branch_action (window, + gitg_branch_actions_rebase (window, + window->priv->popup_refs[source], + window->priv->popup_refs[!source])); +} + +void +on_merge_branch_action_activate (GtkAction *action, GitgWindow *window) +{ + gitg_window_add_branch_action (window, + gitg_branch_actions_merge (window, + window->priv->popup_refs[0], + window->priv->popup_refs[1])); +} + +typedef struct +{ + GtkBuilder *builder; + GitgWindow *window; + GitgRevision *revision; +} TagInfo; + +static void +free_tag_info (TagInfo *info) +{ + g_object_unref (info->builder); + gitg_revision_unref (info->revision); + + g_slice_free (TagInfo, info); +} + +static void +on_tag_dialog_response (GtkWidget *dialog, gint response, TagInfo *info) +{ + gboolean destroy = TRUE; + + if (response == GTK_RESPONSE_ACCEPT) + { + gchar const *name = gtk_entry_get_text (GTK_ENTRY (gtk_builder_get_object (info->builder, "entry_name"))); + + GtkTextView *view = GTK_TEXT_VIEW (gtk_builder_get_object (info->builder, "text_view_message")); + GtkTextIter start; + GtkTextIter end; + + gtk_text_buffer_get_bounds (gtk_text_view_get_buffer (view), &start, &end); + gchar *message = gtk_text_iter_get_text (&start, &end); + + if (!*name || !*message) + { + GtkWidget *dlg = gtk_message_dialog_new (GTK_WINDOW (dialog), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + _("Not all fields are correctly filled in")); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), + _("Please make sure to fill in both the tag name and the commit message")); + + g_signal_connect (dlg, "response", G_CALLBACK (gtk_widget_destroy), NULL); + gtk_widget_show (dlg); + + destroy = FALSE; + } + else + { + gboolean sign = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (info->builder, "check_button_sign"))); + + gchar *sha1 = gitg_revision_get_sha1 (info->revision); + if (!gitg_branch_actions_tag (info->window, + sha1, + name, + message, + sign)) + { + destroy = FALSE; + } + + g_free (sha1); + + GitgPreferences *preferences = gitg_preferences_get_default (); + g_object_set (preferences, "hidden-sign-tag", sign, NULL); + } + + g_free (message); + } + + if (destroy) + { + g_slice_free (TagInfo, info); + gtk_widget_destroy (dialog); + } +} + +typedef struct +{ + GitgWindow *window; + GList *revisions; +} FormatPatchInfo; + +static void +on_format_patch_response (GtkDialog *dialog, + gint response, + FormatPatchInfo *info) +{ + if (response == GTK_RESPONSE_ACCEPT) + { + if (!info->revisions->next) + { + gchar *uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog)); + gitg_window_add_branch_action (info->window, + gitg_branch_actions_format_patch (info->window, + info->revisions->data, + uri)); + g_free (uri); + } + else + { + /* TODO: implement once multiple selection is realized */ + } + } + + g_list_foreach (info->revisions, (GFunc)gitg_revision_unref, NULL); + g_list_free (info->revisions); + + g_slice_free (FormatPatchInfo, info); + + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +void +on_revision_format_patch_activate (GtkAction *action, GitgWindow *window) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection (window->priv->tree_view); + GList *rows = gtk_tree_selection_get_selected_rows (selection, &model); + + GtkWidget *dialog; + + if (!rows->next) + { + GtkTreeIter iter; + GitgRevision *revision; + + gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)rows->data); + gtk_tree_model_get (model, &iter, 0, &revision, -1); + + /* Single one, pick filename */ + dialog = gtk_file_chooser_dialog_new (_("Save format patch"), + GTK_WINDOW (window), + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, + NULL); + + gchar *name = gitg_revision_get_format_patch_name (revision); + gchar *filename = g_strdup_printf ("0001-%s.patch", name); + + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), filename); + g_free (filename); + g_free (name); + + gitg_revision_unref (revision); + } + else + { + /* TODO: Implement selecting folder once multiple selection is realized */ + } + + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), + gitg_repository_get_path (window->priv->repository)); + + FormatPatchInfo *info = g_slice_new (FormatPatchInfo); + info->window = window; + info->revisions = NULL; + + GList *item; + + for (item = rows; item; item = g_list_next (item)) + { + GtkTreeIter iter; + GitgRevision *revision; + + gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)rows->data); + gtk_tree_model_get (model, &iter, 0, &revision, -1); + + info->revisions = g_list_prepend (info->revisions, revision); + } + + info->revisions = g_list_reverse (info->revisions); + + g_signal_connect (dialog, + "response", + G_CALLBACK (on_format_patch_response), + info); + + gtk_widget_show (dialog); + + g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (rows); +} + +void +on_revision_tag_activate (GtkAction *action, GitgWindow *window) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection (window->priv->tree_view); + GList *rows = gtk_tree_selection_get_selected_rows (selection, &model); + + GitgPreferences *preferences = gitg_preferences_get_default (); + + if (rows && !rows->next) + { + GtkBuilder *builder = gitg_utils_new_builder ("gitg-tag.ui"); + GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_tag")); + + GtkToggleButton *toggle = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "check_button_sign")); + + gboolean active = TRUE; + + g_object_get (preferences, "hidden-sign-tag", &active, NULL); + gtk_toggle_button_set_active (toggle, active); + + gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (window)); + + GtkTreeIter iter; + GitgRevision *rev; + + gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)rows->data); + gtk_tree_model_get (model, &iter, 0, &rev, -1); + + TagInfo *info = g_slice_new (TagInfo); + info->revision = gitg_revision_ref (rev); + info->window = window; + info->builder = builder; + + g_signal_connect (widget, + "response", + G_CALLBACK (on_tag_dialog_response), + info); + + gtk_widget_show (widget); + + gtk_widget_grab_focus (GTK_WIDGET (gtk_builder_get_object (builder, "entry_name"))); + gitg_revision_unref (rev); + } + + g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (rows); +} + +void +on_revision_squash_activate (GtkAction *action, GitgWindow *window) +{ + +} diff -Nru gitg-0.0.3/gitg/gitg-window.h gitg-0.0.6/gitg/gitg-window.h --- gitg-0.0.3/gitg/gitg-window.h 2009-02-08 14:40:18.000000000 +0000 +++ gitg-0.0.6/gitg/gitg-window.h 2010-01-24 12:17:16.000000000 +0000 @@ -24,6 +24,7 @@ #define __GITG_WINDOW_H__ #include +#include "gitg-repository.h" G_BEGIN_DECLS @@ -41,7 +42,7 @@ struct _GitgWindow { GtkWindow parent; - + GitgWindowPrivate *priv; }; @@ -51,9 +52,14 @@ GType gitg_window_get_type (void) G_GNUC_CONST; -void gitg_window_load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv); +void gitg_window_load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv, gchar const *selection); void gitg_window_show_commit(GitgWindow *window); +GitgRepository *gitg_window_get_repository(GitgWindow *window); +void gitg_window_set_select_on_load (GitgWindow *window, gchar const *selection); + +gboolean gitg_window_add_branch_action (GitgWindow *window, GitgRunner *runner); + G_END_DECLS #endif /* __GITG_WINDOW_H__ */ diff -Nru gitg-0.0.3/gitg/gitg-window.ui gitg-0.0.6/gitg/gitg-window.ui --- gitg-0.0.3/gitg/gitg-window.ui 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/gitg/gitg-window.ui 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,890 @@ + + + + + + + + 3 + 1 + 10 + 1 + 1 + 1 + + + gitg + 800 + 800 + + + + + True + + + True + True + + + True + + + True + True + 350 + + + True + 6 + + + True + 3 + + + Branch: + + + False + 0 + + + + + + + + 2 + + + + + + 0 + + + + + False + 1 + + + + + False + 3 + 0 + + + + + True + True + automatic + automatic + etched-in + + + True + True + True + 1 + True + + + + True + fixed + 400 + Subject + True + + + + 1 + + + + + + + True + fixed + 200 + Author + + + + 2 + + + + + + + True + fixed + 200 + Date + + + + 3 + + + + + + + + + 1 + + + + + True + False + + + + + True + True + 6 + + + True + 3 + + + True + 5 + 2 + 6 + 2 + + + True + 2 + 3 + 2 + + + + + + + + + 1 + 2 + 4 + 5 + + + + + True + 0 + True + True + + + 1 + 2 + 3 + 4 + + + + + True + 0 + True + True + + + 1 + 2 + 2 + 3 + + + + + True + 0 + True + True + + + 1 + 2 + 1 + 2 + + + + + True + 0 + True + True + + + 1 + 2 + GTK_FILL + + + + + True + 1 + 0 + Parent: + + + 4 + 5 + GTK_FILL + GTK_FILL + + + + + True + 1 + Subject: + + + 3 + 4 + GTK_FILL + GTK_FILL + + + + + True + 1 + Date: + + + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 1 + Author: + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 1 + SHA: + True + + + GTK_FILL + GTK_FILL + + + + + False + 3 + 0 + + + + + True + + + False + False + 1 + + + + + True + 200 + + + True + True + automatic + automatic + etched-in + + + True + True + False + + + fixed + 20 + Icon + + + + + + + + Filename + + + + + + + + + + False + True + + + + + True + True + automatic + automatic + etched-in + + + False + False + False + 4 + + + + + True + True + + + + + 2 + + + + + + + True + Details + + + False + + + + + True + True + 200 + + + True + True + automatic + automatic + etched-in + + + True + True + False + + + Filename + + + + 0 + + + + + + 1 + + + + + + + + + False + True + + + + + True + True + automatic + automatic + etched-in + + + False + True + + + + + True + True + + + + + 1 + + + + + True + Tree + + + 1 + False + + + + + False + True + + + + + 0 + + + + + + + True + History + + + False + + + + + True + True + 6 + vertical + 450 + True + + + True + vertical + 3 + + + True + 3 + + + True + 0 + 1 + _Changes + True + source_view_changes + + + False + 0 + + + + + Context: + + + False + end + 2 + + + + + 200 + False + True + adjustment_context + 0 + right + + + False + end + 1 + + + + + False + 0 + + + + + True + True + automatic + automatic + etched-in + + + True + False + 2 + 2 + False + False + 4 + + + + + 1 + + + + + False + True + + + + + True + True + + + True + vertical + 3 + + + True + 0 + 1 + _Unstaged + True + tree_view_unstaged + + + False + 0 + + + + + True + True + automatic + automatic + etched-in + + + True + True + False + False + + + fixed + 20 + + + + + + + + True + Unstaged + + + + 0 + + + + + + + + + 1 + + + + + False + False + + + + + True + True + + + True + vertical + 3 + + + True + 0 + 1 + Co_mmit message + True + text_view_comment + + + False + 0 + + + + + True + True + automatic + automatic + etched-in + + + True + True + word-char + 2 + 2 + + + + + 1 + + + + + True + 3 + + + True + vertical + + + Amend + True + False + True + + + False + 0 + + + + + Add signed-off-by + True + False + True + + + False + 1 + + + + + 1 + + + + + True + 1 + 0 + + + Commit + True + True + True + image_commit + + + + + False + False + end + 0 + + + + + False + 2 + + + + + True + False + + + + + True + vertical + 3 + + + True + 0 + _Staged + True + tree_view_staged + + + False + 0 + + + + + True + True + automatic + automatic + etched-in + + + True + True + False + False + + + fixed + 20 + + + + + + + + True + + + + 0 + + + + + + + + + 1 + + + + + False + False + + + + + True + False + + + + + True + True + + + + + 1 + + + + + True + Commit + + + 1 + False + + + + + 1 + + + + + True + 2 + + + False + 2 + + + + + + + True + gtk-apply + + diff -Nru gitg-0.0.3/gitg/Makefile.am gitg-0.0.6/gitg/Makefile.am --- gitg-0.0.3/gitg/Makefile.am 2009-03-01 13:14:40.000000000 +0000 +++ gitg-0.0.6/gitg/Makefile.am 2010-01-24 12:17:15.000000000 +0000 @@ -15,15 +15,19 @@ gitg-enum-types.h NOINST_H_FILES = \ + gitg-branch-actions.h \ gitg-cell-renderer-path.h \ gitg-changed-file.h \ gitg-color.h \ + gitg-config.h \ gitg-commit.h \ gitg-commit-view.h \ gitg-data-binding.h \ gitg-debug.h \ + gitg-diff-line-renderer.h \ gitg-diff-view.h \ gitg-dirs.h \ + gitg-dnd.h \ gitg-label-renderer.h \ gitg-lane.h \ gitg-lanes.h \ @@ -31,29 +35,34 @@ gitg-preferences.h \ gitg-ref.h \ gitg-repository.h \ + gitg-repository-dialog.h \ gitg-revision.h \ gitg-revision-tree-store.h \ gitg-revision-tree-view.h \ gitg-revision-view.h \ gitg-runner.h \ gitg-settings.h \ + gitg-spinner.h \ gitg-types.h \ gitg-utils.h \ - gitg-window.h \ - sexy-icon-entry.h + gitg-window.h gitg_SOURCES = \ $(BUILT_SOURCES) \ gitg.c \ + gitg-branch-actions.c \ gitg-cell-renderer-path.c \ gitg-changed-file.c \ gitg-color.c \ + gitg-config.c \ gitg-commit.c \ gitg-commit-view.c \ gitg-data-binding.c \ gitg-debug.c \ + gitg-diff-line-renderer.c \ gitg-diff-view.c \ gitg-dirs.c \ + gitg-dnd.c \ gitg-label-renderer.c \ gitg-lane.c \ gitg-lanes.c \ @@ -61,15 +70,16 @@ gitg-preferences-dialog.c \ gitg-ref.c \ gitg-repository.c \ + gitg-repository-dialog.c \ gitg-revision.c \ gitg-revision-tree-store.c \ gitg-revision-tree-view.c \ gitg-revision-view.c \ gitg-runner.c \ gitg-settings.c \ + gitg-spinner.c \ gitg-utils.c \ gitg-window.c \ - sexy-icon-entry.c \ $(NOINST_H_FILES) ENUM_H_FILES = \ @@ -80,15 +90,19 @@ uidir = $(datadir)/gitg/ui/ ui_DATA = \ + gitg-window.ui \ + gitg-commit-menu.ui \ gitg-ui.xml \ gitg-menus.xml \ - gitg-preferences.xml + gitg-preferences.ui \ + gitg-tag.ui \ + gitg-repository.ui gitg-enum-types.h: gitg-enum-types.h.template $(ENUM_H_FILES) $(GLIB_MKENUMS) - (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.h.template $(ENUM_H_FILES)) > $@ + $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.h.template $(ENUM_H_FILES)) > $@ gitg-enum-types.c: gitg-enum-types.c.template $(ENUM_H_FILES) $(GLIB_MKENUMS) - (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.c.template $(ENUM_H_FILES)) > $@ + $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.c.template $(ENUM_H_FILES)) > $@ EXTRA_DIST = \ $(ui_DATA) \ @@ -109,3 +123,5 @@ .PHONY: bundle # vi:ts=8 + +-include $(top_srcdir)/git.mk diff -Nru gitg-0.0.3/gitg/Makefile.in gitg-0.0.6/gitg/Makefile.in --- gitg-0.0.3/gitg/Makefile.in 2009-04-23 22:18:00.000000000 +0100 +++ gitg-0.0.6/gitg/Makefile.in 2010-02-21 09:56:11.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. @@ -17,8 +18,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@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 @@ -46,43 +48,63 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(uidir)" -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am__objects_1 = gitg-enum-types.$(OBJEXT) am__objects_2 = am_gitg_OBJECTS = $(am__objects_1) gitg.$(OBJEXT) \ + gitg-branch-actions.$(OBJEXT) \ gitg-cell-renderer-path.$(OBJEXT) gitg-changed-file.$(OBJEXT) \ - gitg-color.$(OBJEXT) gitg-commit.$(OBJEXT) \ - gitg-commit-view.$(OBJEXT) gitg-data-binding.$(OBJEXT) \ - gitg-debug.$(OBJEXT) gitg-diff-view.$(OBJEXT) \ - gitg-dirs.$(OBJEXT) gitg-label-renderer.$(OBJEXT) \ - gitg-lane.$(OBJEXT) gitg-lanes.$(OBJEXT) \ - gitg-preferences.$(OBJEXT) gitg-preferences-dialog.$(OBJEXT) \ - gitg-ref.$(OBJEXT) gitg-repository.$(OBJEXT) \ + gitg-color.$(OBJEXT) gitg-config.$(OBJEXT) \ + gitg-commit.$(OBJEXT) gitg-commit-view.$(OBJEXT) \ + gitg-data-binding.$(OBJEXT) gitg-debug.$(OBJEXT) \ + gitg-diff-line-renderer.$(OBJEXT) gitg-diff-view.$(OBJEXT) \ + gitg-dirs.$(OBJEXT) gitg-dnd.$(OBJEXT) \ + gitg-label-renderer.$(OBJEXT) gitg-lane.$(OBJEXT) \ + gitg-lanes.$(OBJEXT) gitg-preferences.$(OBJEXT) \ + gitg-preferences-dialog.$(OBJEXT) gitg-ref.$(OBJEXT) \ + gitg-repository.$(OBJEXT) gitg-repository-dialog.$(OBJEXT) \ gitg-revision.$(OBJEXT) gitg-revision-tree-store.$(OBJEXT) \ gitg-revision-tree-view.$(OBJEXT) gitg-revision-view.$(OBJEXT) \ gitg-runner.$(OBJEXT) gitg-settings.$(OBJEXT) \ - gitg-utils.$(OBJEXT) gitg-window.$(OBJEXT) \ - sexy-icon-entry.$(OBJEXT) $(am__objects_2) + gitg-spinner.$(OBJEXT) gitg-utils.$(OBJEXT) \ + gitg-window.$(OBJEXT) $(am__objects_2) gitg_OBJECTS = $(am_gitg_OBJECTS) am__DEPENDENCIES_1 = gitg_DEPENDENCIES = $(am__DEPENDENCIES_1) -gitg_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(gitg_LDFLAGS) \ - $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +gitg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(gitg_LDFLAGS) $(LDFLAGS) -o $@ 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) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(gitg_SOURCES) DIST_SOURCES = $(gitg_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -90,8 +112,22 @@ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -uiDATA_INSTALL = $(INSTALL_DATA) +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' DATA = $(ui_DATA) ETAGS = etags CTAGS = ctags @@ -100,6 +136,7 @@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -144,29 +181,10 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -184,6 +202,7 @@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ @@ -194,6 +213,7 @@ 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@ @@ -259,6 +279,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = \ @@ -276,15 +297,19 @@ gitg-enum-types.h NOINST_H_FILES = \ + gitg-branch-actions.h \ gitg-cell-renderer-path.h \ gitg-changed-file.h \ gitg-color.h \ + gitg-config.h \ gitg-commit.h \ gitg-commit-view.h \ gitg-data-binding.h \ gitg-debug.h \ + gitg-diff-line-renderer.h \ gitg-diff-view.h \ gitg-dirs.h \ + gitg-dnd.h \ gitg-label-renderer.h \ gitg-lane.h \ gitg-lanes.h \ @@ -292,29 +317,34 @@ gitg-preferences.h \ gitg-ref.h \ gitg-repository.h \ + gitg-repository-dialog.h \ gitg-revision.h \ gitg-revision-tree-store.h \ gitg-revision-tree-view.h \ gitg-revision-view.h \ gitg-runner.h \ gitg-settings.h \ + gitg-spinner.h \ gitg-types.h \ gitg-utils.h \ - gitg-window.h \ - sexy-icon-entry.h + gitg-window.h gitg_SOURCES = \ $(BUILT_SOURCES) \ gitg.c \ + gitg-branch-actions.c \ gitg-cell-renderer-path.c \ gitg-changed-file.c \ gitg-color.c \ + gitg-config.c \ gitg-commit.c \ gitg-commit-view.c \ gitg-data-binding.c \ gitg-debug.c \ + gitg-diff-line-renderer.c \ gitg-diff-view.c \ gitg-dirs.c \ + gitg-dnd.c \ gitg-label-renderer.c \ gitg-lane.c \ gitg-lanes.c \ @@ -322,15 +352,16 @@ gitg-preferences-dialog.c \ gitg-ref.c \ gitg-repository.c \ + gitg-repository-dialog.c \ gitg-revision.c \ gitg-revision-tree-store.c \ gitg-revision-tree-view.c \ gitg-revision-view.c \ gitg-runner.c \ gitg-settings.c \ + gitg-spinner.c \ gitg-utils.c \ gitg-window.c \ - sexy-icon-entry.c \ $(NOINST_H_FILES) ENUM_H_FILES = \ @@ -340,9 +371,13 @@ gitg_LDFLAGS = -export-dynamic -no-undefined -export-symbols-regex "^[[^_]].*" uidir = $(datadir)/gitg/ui/ ui_DATA = \ + gitg-window.ui \ + gitg-commit-menu.ui \ gitg-ui.xml \ gitg-menus.xml \ - gitg-preferences.xml + gitg-preferences.ui \ + gitg-tag.ui \ + gitg-repository.ui EXTRA_DIST = \ $(ui_DATA) \ @@ -359,14 +394,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gitg/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu gitg/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gitg/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gitg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -384,37 +419,53 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - || test -f $$p1 \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ - else :; fi; \ - done + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + 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) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done + @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: - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list gitg$(EXEEXT): $(gitg_OBJECTS) $(gitg_DEPENDENCIES) @rm -f gitg$(EXEEXT) - $(gitg_LINK) $(gitg_OBJECTS) $(gitg_LDADD) $(LIBS) + $(AM_V_CCLD)$(gitg_LINK) $(gitg_OBJECTS) $(gitg_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -422,15 +473,19 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-branch-actions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-cell-renderer-path.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-changed-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-color.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-commit-view.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-commit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-config.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-data-binding.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-debug.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-diff-line-renderer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-diff-view.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-dirs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-dnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-enum-types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-label-renderer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-lane.Po@am__quote@ @@ -438,6 +493,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-preferences-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-preferences.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-ref.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-repository-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-repository.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-revision-tree-store.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-revision-tree-view.Po@am__quote@ @@ -445,28 +501,31 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-revision.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-runner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-settings.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-spinner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gitg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sexy-icon-entry.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @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@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @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) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< @@ -479,34 +538,37 @@ install-uiDATA: $(ui_DATA) @$(NORMAL_INSTALL) test -z "$(uidir)" || $(MKDIR_P) "$(DESTDIR)$(uidir)" - @list='$(ui_DATA)'; for p in $$list; do \ + @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(uiDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(uidir)/$$f'"; \ - $(uiDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(uidir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ done uninstall-uiDATA: @$(NORMAL_UNINSTALL) - @list='$(ui_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(uidir)/$$f'"; \ - rm -f "$(DESTDIR)$(uidir)/$$f"; \ - done + @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(uidir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(uidir)" && rm -f $$files 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; nonemtpy = 1; } \ + $(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) - tags=; \ + set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -514,29 +576,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + 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) - tags=; \ 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)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -557,13 +624,17 @@ 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 -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -600,6 +671,7 @@ 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" @@ -621,6 +693,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -629,18 +703,28 @@ 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 @@ -663,7 +747,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-uiDATA -.MAKE: install-am install-strip +.MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags dist-hook distclean \ @@ -682,10 +766,10 @@ gitg-enum-types.h: gitg-enum-types.h.template $(ENUM_H_FILES) $(GLIB_MKENUMS) - (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.h.template $(ENUM_H_FILES)) > $@ + $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.h.template $(ENUM_H_FILES)) > $@ gitg-enum-types.c: gitg-enum-types.c.template $(ENUM_H_FILES) $(GLIB_MKENUMS) - (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.c.template $(ENUM_H_FILES)) > $@ + $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template gitg-enum-types.c.template $(ENUM_H_FILES)) > $@ dist-hook: cd $(distdir); rm -f $(BUILT_SOURCES) @@ -698,6 +782,9 @@ .PHONY: bundle # vi:ts=8 + +-include $(top_srcdir)/git.mk + # 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: diff -Nru gitg-0.0.3/gitg/sexy-icon-entry.c gitg-0.0.6/gitg/sexy-icon-entry.c --- gitg-0.0.3/gitg/sexy-icon-entry.c 2008-07-21 16:33:49.000000000 +0100 +++ gitg-0.0.6/gitg/sexy-icon-entry.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,968 +0,0 @@ -/* - * @file libsexy/sexy-icon-entry.c Entry widget - * - * @Copyright (C) 2004-2006 Christian Hammond. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -#include -#include -#include - -#define ICON_MARGIN 2 -#define MAX_ICONS 2 - -#define IS_VALID_ICON_ENTRY_POSITION(pos) \ - ((pos) == SEXY_ICON_ENTRY_PRIMARY || \ - (pos) == SEXY_ICON_ENTRY_SECONDARY) - -typedef struct -{ - GtkImage *icon; - gboolean highlight; - gboolean hovered; - GdkWindow *window; - -} SexyIconInfo; - -struct _SexyIconEntryPriv -{ - SexyIconInfo icons[MAX_ICONS]; - - gulong icon_released_id; -}; - -enum -{ - ICON_PRESSED, - ICON_RELEASED, - LAST_SIGNAL -}; - -static void sexy_icon_entry_class_init(SexyIconEntryClass *klass); -static void sexy_icon_entry_editable_init(GtkEditableClass *iface); -static void sexy_icon_entry_init(SexyIconEntry *entry); -static void sexy_icon_entry_finalize(GObject *obj); -static void sexy_icon_entry_destroy(GtkObject *obj); -static void sexy_icon_entry_map(GtkWidget *widget); -static void sexy_icon_entry_unmap(GtkWidget *widget); -static void sexy_icon_entry_realize(GtkWidget *widget); -static void sexy_icon_entry_unrealize(GtkWidget *widget); -static void sexy_icon_entry_size_request(GtkWidget *widget, - GtkRequisition *requisition); -static void sexy_icon_entry_size_allocate(GtkWidget *widget, - GtkAllocation *allocation); -static gint sexy_icon_entry_expose(GtkWidget *widget, GdkEventExpose *event); -static gint sexy_icon_entry_enter_notify(GtkWidget *widget, - GdkEventCrossing *event); -static gint sexy_icon_entry_leave_notify(GtkWidget *widget, - GdkEventCrossing *event); -static gint sexy_icon_entry_button_press(GtkWidget *widget, - GdkEventButton *event); -static gint sexy_icon_entry_button_release(GtkWidget *widget, - GdkEventButton *event); - -static GtkEntryClass *parent_class = NULL; -static guint signals[LAST_SIGNAL] = {0}; - -G_DEFINE_TYPE_EXTENDED(SexyIconEntry, sexy_icon_entry, GTK_TYPE_ENTRY, - 0, - G_IMPLEMENT_INTERFACE(GTK_TYPE_EDITABLE, - sexy_icon_entry_editable_init)); - -static void -sexy_icon_entry_class_init(SexyIconEntryClass *klass) -{ - GObjectClass *gobject_class; - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkEntryClass *entry_class; - - parent_class = g_type_class_peek_parent(klass); - - gobject_class = G_OBJECT_CLASS(klass); - object_class = GTK_OBJECT_CLASS(klass); - widget_class = GTK_WIDGET_CLASS(klass); - entry_class = GTK_ENTRY_CLASS(klass); - - gobject_class->finalize = sexy_icon_entry_finalize; - - object_class->destroy = sexy_icon_entry_destroy; - - widget_class->map = sexy_icon_entry_map; - widget_class->unmap = sexy_icon_entry_unmap; - widget_class->realize = sexy_icon_entry_realize; - widget_class->unrealize = sexy_icon_entry_unrealize; - widget_class->size_request = sexy_icon_entry_size_request; - widget_class->size_allocate = sexy_icon_entry_size_allocate; - widget_class->expose_event = sexy_icon_entry_expose; - widget_class->enter_notify_event = sexy_icon_entry_enter_notify; - widget_class->leave_notify_event = sexy_icon_entry_leave_notify; - widget_class->button_press_event = sexy_icon_entry_button_press; - widget_class->button_release_event = sexy_icon_entry_button_release; - - /** - * SexyIconEntry::icon-pressed: - * @entry: The entry on which the signal is emitted. - * @icon_pos: The position of the clicked icon. - * @button: The mouse button clicked. - * - * The ::icon-pressed signal is emitted when an icon is clicked. - */ - signals[ICON_PRESSED] = - g_signal_new("icon_pressed", - G_TYPE_FROM_CLASS(gobject_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET(SexyIconEntryClass, icon_pressed), - NULL, NULL, - gtk_marshal_VOID__INT_INT, - G_TYPE_NONE, 2, - G_TYPE_INT, - G_TYPE_INT); - - /** - * SexyIconEntry::icon-released: - * @entry: The entry on which the signal is emitted. - * @icon_pos: The position of the clicked icon. - * @button: The mouse button clicked. - * - * The ::icon-released signal is emitted on the button release from a - * mouse click. - */ - signals[ICON_RELEASED] = - g_signal_new("icon_released", - G_TYPE_FROM_CLASS(gobject_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET(SexyIconEntryClass, icon_released), - NULL, NULL, - gtk_marshal_VOID__INT_INT, - G_TYPE_NONE, 2, - G_TYPE_INT, - G_TYPE_INT); -} - -static void -sexy_icon_entry_editable_init(GtkEditableClass *iface) -{ -}; - -static void -sexy_icon_entry_init(SexyIconEntry *entry) -{ - entry->priv = g_new0(SexyIconEntryPriv, 1); -} - -static void -sexy_icon_entry_finalize(GObject *obj) -{ - SexyIconEntry *entry; - - g_return_if_fail(obj != NULL); - g_return_if_fail(SEXY_IS_ICON_ENTRY(obj)); - - entry = SEXY_ICON_ENTRY(obj); - - g_free(entry->priv); - - if (G_OBJECT_CLASS(parent_class)->finalize) - G_OBJECT_CLASS(parent_class)->finalize(obj); -} - -static void -sexy_icon_entry_destroy(GtkObject *obj) -{ - SexyIconEntry *entry; - - entry = SEXY_ICON_ENTRY(obj); - - sexy_icon_entry_set_icon(entry, SEXY_ICON_ENTRY_PRIMARY, NULL); - sexy_icon_entry_set_icon(entry, SEXY_ICON_ENTRY_SECONDARY, NULL); - - if (GTK_OBJECT_CLASS(parent_class)->destroy) - GTK_OBJECT_CLASS(parent_class)->destroy(obj); -} - -static void -sexy_icon_entry_map(GtkWidget *widget) -{ - if (GTK_WIDGET_REALIZED(widget) && !GTK_WIDGET_MAPPED(widget)) - { - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - GTK_WIDGET_CLASS(parent_class)->map(widget); - - for (i = 0; i < MAX_ICONS; i++) - { - if (entry->priv->icons[i].icon != NULL) - gdk_window_show(entry->priv->icons[i].window); - } - } -} - -static void -sexy_icon_entry_unmap(GtkWidget *widget) -{ - if (GTK_WIDGET_MAPPED(widget)) - { - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - for (i = 0; i < MAX_ICONS; i++) - { - if (entry->priv->icons[i].icon != NULL) - gdk_window_hide(entry->priv->icons[i].window); - } - - GTK_WIDGET_CLASS(parent_class)->unmap(widget); - } -} - -static gint -get_icon_width(SexyIconEntry *entry, SexyIconEntryPosition icon_pos) -{ - GtkRequisition requisition; - gint menu_icon_width; - gint width; - SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; - - if (icon_info->icon == NULL) - return 0; - - gtk_widget_size_request(GTK_WIDGET(icon_info->icon), &requisition); - gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &menu_icon_width, NULL); - - width = MAX(requisition.width, menu_icon_width); - - return width; -} - -static void -get_borders(SexyIconEntry *entry, gint *xborder, gint *yborder) -{ - GtkWidget *widget = GTK_WIDGET(entry); - gint focus_width; - gboolean interior_focus; - - gtk_widget_style_get(widget, - "interior-focus", &interior_focus, - "focus-line-width", &focus_width, - NULL); - - if (gtk_entry_get_has_frame(GTK_ENTRY(entry))) - { - *xborder = widget->style->xthickness; - *yborder = widget->style->ythickness; - } - else - { - *xborder = 0; - *yborder = 0; - } - - if (!interior_focus) - { - *xborder += focus_width; - *yborder += focus_width; - } -} - -static void -get_text_area_size(SexyIconEntry *entry, GtkAllocation *alloc) -{ - GtkWidget *widget = GTK_WIDGET(entry); - GtkRequisition requisition; - gint xborder, yborder; - - gtk_widget_get_child_requisition(widget, &requisition); - get_borders(entry, &xborder, &yborder); - - alloc->x = xborder; - alloc->y = yborder; - alloc->width = widget->allocation.width - xborder * 2; - alloc->height = requisition.height - yborder * 2; -} - -static void -get_icon_allocation(SexyIconEntry *icon_entry, - gboolean left, - GtkAllocation *widget_alloc, - GtkAllocation *text_area_alloc, - GtkAllocation *allocation, - SexyIconEntryPosition *icon_pos) -{ - gboolean rtl; - - rtl = (gtk_widget_get_direction(GTK_WIDGET(icon_entry)) == - GTK_TEXT_DIR_RTL); - - if (left) - *icon_pos = (rtl ? SEXY_ICON_ENTRY_SECONDARY : SEXY_ICON_ENTRY_PRIMARY); - else - *icon_pos = (rtl ? SEXY_ICON_ENTRY_PRIMARY : SEXY_ICON_ENTRY_SECONDARY); - - allocation->y = text_area_alloc->y; - allocation->width = get_icon_width(icon_entry, *icon_pos); - allocation->height = text_area_alloc->height; - - if (left) - allocation->x = text_area_alloc->x + ICON_MARGIN; - else - { - allocation->x = text_area_alloc->x + text_area_alloc->width - - allocation->width - ICON_MARGIN; - } -} - -static void -sexy_icon_entry_realize(GtkWidget *widget) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - GdkWindowAttr attributes; - gint attributes_mask; - int i; - - GTK_WIDGET_CLASS(parent_class)->realize(widget); - - attributes.x = 0; - attributes.y = 0; - attributes.width = 1; - attributes.height = 1; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual(widget); - attributes.colormap = gtk_widget_get_colormap(widget); - attributes.event_mask = gtk_widget_get_events(widget); - attributes.event_mask |= - (GDK_EXPOSURE_MASK - | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - for (i = 0; i < MAX_ICONS; i++) - { - SexyIconInfo *icon_info; - - icon_info = &entry->priv->icons[i]; - icon_info->window = gdk_window_new(widget->window, &attributes, - attributes_mask); - gdk_window_set_user_data(icon_info->window, widget); - - gdk_window_set_background(icon_info->window, - &widget->style->base[GTK_WIDGET_STATE(widget)]); - } - - gtk_widget_queue_resize(widget); -} - -static void -sexy_icon_entry_unrealize(GtkWidget *widget) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - GTK_WIDGET_CLASS(parent_class)->unrealize(widget); - - for (i = 0; i < MAX_ICONS; i++) - { - SexyIconInfo *icon_info = &entry->priv->icons[i]; - - gdk_window_destroy(icon_info->window); - icon_info->window = NULL; - } -} - -static void -sexy_icon_entry_size_request(GtkWidget *widget, GtkRequisition *requisition) -{ - GtkEntry *gtkentry; - SexyIconEntry *entry; - gint icon_widths = 0; - int i; - - gtkentry = GTK_ENTRY(widget); - entry = SEXY_ICON_ENTRY(widget); - - for (i = 0; i < MAX_ICONS; i++) - { - int icon_width = get_icon_width(entry, i); - - if (icon_width > 0) - icon_widths += icon_width + ICON_MARGIN; - } - - GTK_WIDGET_CLASS(parent_class)->size_request(widget, requisition); - - if (icon_widths > requisition->width) - requisition->width += icon_widths; -} - -static void -place_windows(SexyIconEntry *icon_entry, GtkAllocation *widget_alloc) -{ - SexyIconEntryPosition left_icon_pos; - SexyIconEntryPosition right_icon_pos; - GtkAllocation left_icon_alloc; - GtkAllocation right_icon_alloc; - GtkAllocation text_area_alloc; - - get_text_area_size(icon_entry, &text_area_alloc); - get_icon_allocation(icon_entry, TRUE, widget_alloc, &text_area_alloc, - &left_icon_alloc, &left_icon_pos); - get_icon_allocation(icon_entry, FALSE, widget_alloc, &text_area_alloc, - &right_icon_alloc, &right_icon_pos); - - if (left_icon_alloc.width > 0) - { - text_area_alloc.x = left_icon_alloc.x + left_icon_alloc.width + - ICON_MARGIN; - } - - if (right_icon_alloc.width > 0) - text_area_alloc.width -= right_icon_alloc.width + ICON_MARGIN; - - text_area_alloc.width -= text_area_alloc.x; - - gdk_window_move_resize(icon_entry->priv->icons[left_icon_pos].window, - left_icon_alloc.x, left_icon_alloc.y, - left_icon_alloc.width, left_icon_alloc.height); - - gdk_window_move_resize(icon_entry->priv->icons[right_icon_pos].window, - right_icon_alloc.x, right_icon_alloc.y, - right_icon_alloc.width, right_icon_alloc.height); - - gdk_window_move_resize(GTK_ENTRY(icon_entry)->text_area, - text_area_alloc.x, text_area_alloc.y, - text_area_alloc.width, text_area_alloc.height); -} - -static void -sexy_icon_entry_size_allocate(GtkWidget *widget, GtkAllocation *allocation) -{ - g_return_if_fail(SEXY_IS_ICON_ENTRY(widget)); - g_return_if_fail(allocation != NULL); - - widget->allocation = *allocation; - - GTK_WIDGET_CLASS(parent_class)->size_allocate(widget, allocation); - - if (GTK_WIDGET_REALIZED(widget)) - place_windows(SEXY_ICON_ENTRY(widget), allocation); -} - -static GdkPixbuf * -get_pixbuf_from_icon(SexyIconEntry *entry, SexyIconEntryPosition icon_pos) -{ - GdkPixbuf *pixbuf = NULL; - gchar *stock_id; - SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; - GtkIconSize size; - - switch (gtk_image_get_storage_type(GTK_IMAGE(icon_info->icon))) - { - case GTK_IMAGE_PIXBUF: - pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(icon_info->icon)); - g_object_ref(pixbuf); - break; - - case GTK_IMAGE_STOCK: - gtk_image_get_stock(GTK_IMAGE(icon_info->icon), &stock_id, &size); - pixbuf = gtk_widget_render_icon(GTK_WIDGET(entry), - stock_id, size, NULL); - break; - - default: - return NULL; - } - - return pixbuf; -} - -/* Kudos to the gnome-panel guys. */ -static void -colorshift_pixbuf(GdkPixbuf *dest, GdkPixbuf *src, int shift) -{ - gint i, j; - gint width, height, has_alpha, src_rowstride, dest_rowstride; - guchar *target_pixels; - guchar *original_pixels; - guchar *pix_src; - guchar *pix_dest; - int val; - guchar r, g, b; - - has_alpha = gdk_pixbuf_get_has_alpha(src); - width = gdk_pixbuf_get_width(src); - height = gdk_pixbuf_get_height(src); - src_rowstride = gdk_pixbuf_get_rowstride(src); - dest_rowstride = gdk_pixbuf_get_rowstride(dest); - original_pixels = gdk_pixbuf_get_pixels(src); - target_pixels = gdk_pixbuf_get_pixels(dest); - - for (i = 0; i < height; i++) - { - pix_dest = target_pixels + i * dest_rowstride; - pix_src = original_pixels + i * src_rowstride; - - for (j = 0; j < width; j++) - { - r = *(pix_src++); - g = *(pix_src++); - b = *(pix_src++); - - val = r + shift; - *(pix_dest++) = CLAMP(val, 0, 255); - - val = g + shift; - *(pix_dest++) = CLAMP(val, 0, 255); - - val = b + shift; - *(pix_dest++) = CLAMP(val, 0, 255); - - if (has_alpha) - *(pix_dest++) = *(pix_src++); - } - } -} - -static void -draw_icon(GtkWidget *widget, SexyIconEntryPosition icon_pos) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; - GdkPixbuf *pixbuf; - gint x, y, width, height; - - if (icon_info->icon == NULL || !GTK_WIDGET_REALIZED(widget)) - return; - - if ((pixbuf = get_pixbuf_from_icon(entry, icon_pos)) == NULL) - return; - - gdk_drawable_get_size(icon_info->window, &width, &height); - - if (width == 1 || height == 1) - { - /* - * size_allocate hasn't been called yet. These are the default values. - */ - return; - } - - if (gdk_pixbuf_get_height(pixbuf) > height) - { - GdkPixbuf *temp_pixbuf; - int scale; - - scale = height - (2 * ICON_MARGIN); - - temp_pixbuf = gdk_pixbuf_scale_simple(pixbuf, scale, scale, - GDK_INTERP_BILINEAR); - - g_object_unref(pixbuf); - - pixbuf = temp_pixbuf; - } - - x = (width - gdk_pixbuf_get_width(pixbuf)) / 2; - y = (height - gdk_pixbuf_get_height(pixbuf)) / 2; - - if (icon_info->hovered) - { - GdkPixbuf *temp_pixbuf; - - temp_pixbuf = gdk_pixbuf_copy(pixbuf); - - colorshift_pixbuf(temp_pixbuf, pixbuf, 30); - - g_object_unref(pixbuf); - - pixbuf = temp_pixbuf; - } - - gdk_draw_pixbuf(icon_info->window, widget->style->black_gc, pixbuf, - 0, 0, x, y, -1, -1, - GDK_RGB_DITHER_NORMAL, 0, 0); - - g_object_unref(pixbuf); -} - -static gint -sexy_icon_entry_expose(GtkWidget *widget, GdkEventExpose *event) -{ - SexyIconEntry *entry; - - g_return_val_if_fail(SEXY_IS_ICON_ENTRY(widget), FALSE); - g_return_val_if_fail(event != NULL, FALSE); - - entry = SEXY_ICON_ENTRY(widget); - - if (GTK_WIDGET_DRAWABLE(widget)) - { - gboolean found = FALSE; - int i; - - for (i = 0; i < MAX_ICONS && !found; i++) - { - SexyIconInfo *icon_info = &entry->priv->icons[i]; - - if (event->window == icon_info->window) - { - gint width; - GtkAllocation text_area_alloc; - - get_text_area_size(entry, &text_area_alloc); - gdk_drawable_get_size(icon_info->window, &width, NULL); - - gtk_paint_flat_box(widget->style, icon_info->window, - GTK_WIDGET_STATE(widget), GTK_SHADOW_NONE, - NULL, widget, "entry_bg", - 0, 0, width, text_area_alloc.height); - - draw_icon(widget, i); - - found = TRUE; - } - } - - if (!found) - GTK_WIDGET_CLASS(parent_class)->expose_event(widget, event); - } - - return FALSE; -} - -static void -update_icon(GObject *obj, GParamSpec *param, SexyIconEntry *entry) -{ - if (param != NULL) - { - const char *name = g_param_spec_get_name(param); - - if (strcmp(name, "pixbuf") && strcmp(name, "stock") && - strcmp(name, "image") && strcmp(name, "pixmap") && - strcmp(name, "icon_set") && strcmp(name, "pixbuf_animation")) - { - return; - } - } - - gtk_widget_queue_resize(GTK_WIDGET(entry)); -} - -static gint -sexy_icon_entry_enter_notify(GtkWidget *widget, GdkEventCrossing *event) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - for (i = 0; i < MAX_ICONS; i++) - { - if (event->window == entry->priv->icons[i].window) - { - if (sexy_icon_entry_get_icon_highlight(entry, i)) - { - entry->priv->icons[i].hovered = TRUE; - - update_icon(NULL, NULL, entry); - - break; - } - } - } - - return FALSE; -} - -static gint -sexy_icon_entry_leave_notify(GtkWidget *widget, GdkEventCrossing *event) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - for (i = 0; i < MAX_ICONS; i++) - { - if (event->window == entry->priv->icons[i].window) - { - if (sexy_icon_entry_get_icon_highlight(entry, i)) - { - entry->priv->icons[i].hovered = FALSE; - - update_icon(NULL, NULL, entry); - - break; - } - } - } - - return FALSE; -} - -static gint -sexy_icon_entry_button_press(GtkWidget *widget, GdkEventButton *event) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - for (i = 0; i < MAX_ICONS; i++) - { - if (event->window == entry->priv->icons[i].window) - { - if (event->button == 1 && - sexy_icon_entry_get_icon_highlight(entry, i)) - { - entry->priv->icons[i].hovered = FALSE; - - update_icon(NULL, NULL, entry); - } - - g_signal_emit(entry, signals[ICON_PRESSED], 0, i, event->button); - - return TRUE; - } - } - - if (GTK_WIDGET_CLASS(parent_class)->button_press_event) - return GTK_WIDGET_CLASS(parent_class)->button_press_event(widget, - event); - - return FALSE; -} - -static gint -sexy_icon_entry_button_release(GtkWidget *widget, GdkEventButton *event) -{ - SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); - int i; - - for (i = 0; i < MAX_ICONS; i++) - { - GdkWindow *icon_window = entry->priv->icons[i].window; - - if (event->window == icon_window) - { - int width, height; - gdk_drawable_get_size(icon_window, &width, &height); - - if (event->button == 1 && - sexy_icon_entry_get_icon_highlight(entry, i) && - event->x >= 0 && event->y >= 0 && - event->x <= width && event->y <= height) - { - entry->priv->icons[i].hovered = TRUE; - - update_icon(NULL, NULL, entry); - } - - g_signal_emit(entry, signals[ICON_RELEASED], 0, i, event->button); - - return TRUE; - } - } - - if (GTK_WIDGET_CLASS(parent_class)->button_release_event) - return GTK_WIDGET_CLASS(parent_class)->button_release_event(widget, - event); - - return FALSE; -} - -/** - * sexy_icon_entry_new - * - * Creates a new SexyIconEntry widget. - * - * Returns a new #SexyIconEntry. - */ -GtkWidget * -sexy_icon_entry_new(void) -{ - return GTK_WIDGET(g_object_new(SEXY_TYPE_ICON_ENTRY, NULL)); -} - -/** - * sexy_icon_entry_set_icon - * @entry: A #SexyIconEntry. - * @position: Icon position. - * @icon: A #GtkImage to set as the icon. - * - * Sets the icon shown in the entry - */ -void -sexy_icon_entry_set_icon(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, - GtkImage *icon) -{ - SexyIconInfo *icon_info; - - g_return_if_fail(entry != NULL); - g_return_if_fail(SEXY_IS_ICON_ENTRY(entry)); - g_return_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos)); - g_return_if_fail(icon == NULL || GTK_IS_IMAGE(icon)); - - icon_info = &entry->priv->icons[icon_pos]; - - if (icon == icon_info->icon) - return; - - if (icon_pos == SEXY_ICON_ENTRY_SECONDARY && - entry->priv->icon_released_id != 0) - { - g_signal_handler_disconnect(entry, entry->priv->icon_released_id); - entry->priv->icon_released_id = 0; - } - - if (icon == NULL) - { - if (icon_info->icon != NULL) - { - gtk_widget_destroy(GTK_WIDGET(icon_info->icon)); - icon_info->icon = NULL; - - /* - * Explicitly check, as the pointer may become invalidated - * during destruction. - */ - if (icon_info->window != NULL && GDK_IS_WINDOW(icon_info->window)) - gdk_window_hide(icon_info->window); - } - } - else - { - if (icon_info->window != NULL && icon_info->icon == NULL) - gdk_window_show(icon_info->window); - - g_signal_connect(G_OBJECT(icon), "notify", - G_CALLBACK(update_icon), entry); - - icon_info->icon = icon; - g_object_ref(icon); - } - - update_icon(NULL, NULL, entry); -} - -/** - * sexy_icon_entry_set_icon_highlight - * @entry: A #SexyIconEntry; - * @position: Icon position. - * @highlight: TRUE if the icon should highlight on mouse-over - * - * Determines whether the icon will highlight on mouse-over. - */ -void -sexy_icon_entry_set_icon_highlight(SexyIconEntry *entry, - SexyIconEntryPosition icon_pos, - gboolean highlight) -{ - SexyIconInfo *icon_info; - - g_return_if_fail(entry != NULL); - g_return_if_fail(SEXY_IS_ICON_ENTRY(entry)); - g_return_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos)); - - icon_info = &entry->priv->icons[icon_pos]; - - if (icon_info->highlight == highlight) - return; - - icon_info->highlight = highlight; -} - -/** - * sexy_icon_entry_get_icon - * @entry: A #SexyIconEntry. - * @position: Icon position. - * - * Retrieves the image used for the icon - * - * Returns: A #GtkImage. - */ -GtkImage * -sexy_icon_entry_get_icon(const SexyIconEntry *entry, - SexyIconEntryPosition icon_pos) -{ - g_return_val_if_fail(entry != NULL, NULL); - g_return_val_if_fail(SEXY_IS_ICON_ENTRY(entry), NULL); - g_return_val_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos), NULL); - - return entry->priv->icons[icon_pos].icon; -} - -/** - * sexy_icon_entry_get_icon_highlight - * @entry: A #SexyIconEntry. - * @position: Icon position. - * - * Retrieves whether entry will highlight the icon on mouseover. - * - * Returns: TRUE if icon highlights. - */ -gboolean -sexy_icon_entry_get_icon_highlight(const SexyIconEntry *entry, - SexyIconEntryPosition icon_pos) -{ - g_return_val_if_fail(entry != NULL, FALSE); - g_return_val_if_fail(SEXY_IS_ICON_ENTRY(entry), FALSE); - g_return_val_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos), FALSE); - - return entry->priv->icons[icon_pos].highlight; -} - -static void -clear_button_clicked_cb(SexyIconEntry *icon_entry, - SexyIconEntryPosition icon_pos, - int button) -{ - if (icon_pos != SEXY_ICON_ENTRY_SECONDARY || button != 1) - return; - - gtk_entry_set_text(GTK_ENTRY(icon_entry), ""); -} - -/** - * sexy_icon_entry_add_clear_button - * @icon_entry: A #SexyIconEntry. - * - * A convenience function to add a clear button to the end of the entry. - * This is useful for search boxes. - */ -void -sexy_icon_entry_add_clear_button(SexyIconEntry *icon_entry) -{ - GtkWidget *icon; - - g_return_if_fail(icon_entry != NULL); - g_return_if_fail(SEXY_IS_ICON_ENTRY(icon_entry)); - - icon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU); - gtk_widget_show(icon); - sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(icon_entry), - SEXY_ICON_ENTRY_SECONDARY, - GTK_IMAGE(icon)); - sexy_icon_entry_set_icon_highlight(SEXY_ICON_ENTRY(icon_entry), - SEXY_ICON_ENTRY_SECONDARY, TRUE); - - if (icon_entry->priv->icon_released_id != 0) - { - g_signal_handler_disconnect(icon_entry, - icon_entry->priv->icon_released_id); - } - - icon_entry->priv->icon_released_id = - g_signal_connect(G_OBJECT(icon_entry), "icon_released", - G_CALLBACK(clear_button_clicked_cb), NULL); -} diff -Nru gitg-0.0.3/gitg/sexy-icon-entry.h gitg-0.0.6/gitg/sexy-icon-entry.h --- gitg-0.0.3/gitg/sexy-icon-entry.h 2008-07-21 16:34:41.000000000 +0100 +++ gitg-0.0.6/gitg/sexy-icon-entry.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,101 +0,0 @@ -/* - * @file libsexy/sexy-icon-entry.h Entry widget - * - * @Copyright (C) 2004-2006 Christian Hammond. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -#ifndef _SEXY_ICON_ENTRY_H_ -#define _SEXY_ICON_ENTRY_H_ - -typedef struct _SexyIconEntry SexyIconEntry; -typedef struct _SexyIconEntryClass SexyIconEntryClass; -typedef struct _SexyIconEntryPriv SexyIconEntryPriv; - -#include -#include - -#define SEXY_TYPE_ICON_ENTRY (sexy_icon_entry_get_type()) -#define SEXY_ICON_ENTRY(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), SEXY_TYPE_ICON_ENTRY, SexyIconEntry)) -#define SEXY_ICON_ENTRY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), SEXY_TYPE_ICON_ENTRY, SexyIconEntryClass)) -#define SEXY_IS_ICON_ENTRY(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), SEXY_TYPE_ICON_ENTRY)) -#define SEXY_IS_ICON_ENTRY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), SEXY_TYPE_ICON_ENTRY)) -#define SEXY_ICON_ENTRY_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), SEXY_TYPE_ICON_ENTRY, SexyIconEntryClass)) - -typedef enum -{ - SEXY_ICON_ENTRY_PRIMARY, - SEXY_ICON_ENTRY_SECONDARY - -} SexyIconEntryPosition; - -struct _SexyIconEntry -{ - GtkEntry parent_object; - - SexyIconEntryPriv *priv; - - void (*gtk_reserved1)(void); - void (*gtk_reserved2)(void); - void (*gtk_reserved3)(void); - void (*gtk_reserved4)(void); -}; - -struct _SexyIconEntryClass -{ - GtkEntryClass parent_class; - - /* Signals */ - void (*icon_pressed)(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, - int button); - void (*icon_released)(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, - int button); - - void (*gtk_reserved1)(void); - void (*gtk_reserved2)(void); - void (*gtk_reserved3)(void); - void (*gtk_reserved4)(void); -}; - -G_BEGIN_DECLS - -GType sexy_icon_entry_get_type(void); - -GtkWidget *sexy_icon_entry_new(void); - -void sexy_icon_entry_set_icon(SexyIconEntry *entry, - SexyIconEntryPosition position, - GtkImage *icon); - -void sexy_icon_entry_set_icon_highlight(SexyIconEntry *entry, - SexyIconEntryPosition position, - gboolean highlight); - -GtkImage *sexy_icon_entry_get_icon(const SexyIconEntry *entry, - SexyIconEntryPosition position); - -gboolean sexy_icon_entry_get_icon_highlight(const SexyIconEntry *entry, - SexyIconEntryPosition position); -void sexy_icon_entry_add_clear_button(SexyIconEntry *icon_entry); - -G_END_DECLS - -#endif /* _SEXY_ICON_ENTRY_H_ */ diff -Nru gitg-0.0.3/install-sh gitg-0.0.6/install-sh --- gitg-0.0.3/install-sh 2009-04-23 22:17:59.000000000 +0100 +++ gitg-0.0.6/install-sh 2010-02-21 09:56:10.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2006-12-25.00 +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 @@ -515,5 +515,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff -Nru gitg-0.0.3/intltool-extract.in gitg-0.0.6/intltool-extract.in --- gitg-0.0.3/intltool-extract.in 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/intltool-extract.in 2010-02-21 09:56:06.000000000 +0000 @@ -1,875 +0,0 @@ -#!@INTLTOOL_PERL@ -w -# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# -# The Intltool Message Extractor -# -# Copyright (C) 2000-2001, 2003 Free Software Foundation. -# -# Intltool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# Intltool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# Authors: Kenneth Christiansen -# Darin Adler -# - -## Release information -my $PROGRAM = "intltool-extract"; -my $PACKAGE = "intltool"; -my $VERSION = "0.37.1"; - -## Loaded modules -use strict; -use File::Basename; -use Getopt::Long; - -## Scalars used by the option stuff -my $TYPE_ARG = "0"; -my $LOCAL_ARG = "0"; -my $HELP_ARG = "0"; -my $VERSION_ARG = "0"; -my $UPDATE_ARG = "0"; -my $QUIET_ARG = "0"; -my $SRCDIR_ARG = "."; - -my $FILE; -my $OUTFILE; - -my $gettext_type = ""; -my $input; -my %messages = (); -my %loc = (); -my %count = (); -my %comments = (); -my $strcount = 0; - -my $XMLCOMMENT = ""; - -## Use this instead of \w for XML files to handle more possible characters. -my $w = "[-A-Za-z0-9._:]"; - -## Always print first -$| = 1; - -## Handle options -GetOptions ( - "type=s" => \$TYPE_ARG, - "local|l" => \$LOCAL_ARG, - "help|h" => \$HELP_ARG, - "version|v" => \$VERSION_ARG, - "update" => \$UPDATE_ARG, - "quiet|q" => \$QUIET_ARG, - "srcdir=s" => \$SRCDIR_ARG, - ) or &error; - -&split_on_argument; - - -## Check for options. -## This section will check for the different options. - -sub split_on_argument { - - if ($VERSION_ARG) { - &version; - - } elsif ($HELP_ARG) { - &help; - - } elsif ($LOCAL_ARG) { - &place_local; - &extract; - - } elsif ($UPDATE_ARG) { - &place_normal; - &extract; - - } elsif (@ARGV > 0) { - &place_normal; - &message; - &extract; - - } else { - &help; - - } -} - -sub place_normal { - $FILE = $ARGV[0]; - $OUTFILE = "$FILE.h"; - - my $dirname = dirname ($OUTFILE); - if (! -d "$dirname" && $dirname ne "") { - system ("mkdir -p $dirname"); - } -} - -sub place_local { - $FILE = $ARGV[0]; - $OUTFILE = fileparse($FILE, ()); - if (!-e "tmp/") { - system("mkdir tmp/"); - } - $OUTFILE = "./tmp/$OUTFILE.h" -} - -sub determine_type { - if ($TYPE_ARG =~ /^gettext\/(.*)/) { - $gettext_type=$1 - } -} - -## Sub for printing release information -sub version{ - print <<_EOF_; -${PROGRAM} (${PACKAGE}) $VERSION -Copyright (C) 2000, 2003 Free Software Foundation, Inc. -Written by Kenneth Christiansen, 2000. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -_EOF_ - exit; -} - -## Sub for printing usage information -sub help { - print <<_EOF_; -Usage: ${PROGRAM} [OPTION]... [FILENAME] -Generates a header file from an XML source file. - -It grabs all strings between <_translatable_node> and its end tag in -XML files. Read manpage (man ${PROGRAM}) for more info. - - --type=TYPE Specify the file type of FILENAME. Currently supports: - "gettext/glade", "gettext/ini", "gettext/keys" - "gettext/rfc822deb", "gettext/schemas", - "gettext/scheme", "gettext/xml", "gettext/quoted", - "gettext/quotedxml" - -l, --local Writes output into current working directory - (conflicts with --update) - --update Writes output into the same directory the source file - reside (conflicts with --local) - --srcdir Root of the source tree - -v, --version Output version information and exit - -h, --help Display this help and exit - -q, --quiet Quiet mode - -Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") -or send email to . -_EOF_ - exit; -} - -## Sub for printing error messages -sub error{ - print STDERR "Try `${PROGRAM} --help' for more information.\n"; - exit; -} - -sub message { - print "Generating C format header file for translation.\n" unless $QUIET_ARG; -} - -sub extract { - &determine_type; - - &convert; - - open OUT, ">$OUTFILE"; - binmode (OUT) if $^O eq 'MSWin32'; - &msg_write; - close OUT; - - print "Wrote $OUTFILE\n" unless $QUIET_ARG; -} - -sub convert { - - ## Reading the file - { - local (*IN); - local $/; #slurp mode - open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!"; - $input = ; - } - - &type_ini if $gettext_type eq "ini"; - &type_keys if $gettext_type eq "keys"; - &type_xml if $gettext_type eq "xml"; - &type_glade if $gettext_type eq "glade"; - &type_scheme if $gettext_type eq "scheme"; - &type_schemas if $gettext_type eq "schemas"; - &type_rfc822deb if $gettext_type eq "rfc822deb"; - &type_quoted if $gettext_type eq "quoted"; - &type_quotedxml if $gettext_type eq "quotedxml"; -} - -sub entity_decode_minimal -{ - local ($_) = @_; - - s/'/'/g; # ' - s/"/"/g; # " - s/&/&/g; - - return $_; -} - -sub entity_decode -{ - local ($_) = @_; - - s/'/'/g; # ' - s/"/"/g; # " - s/<//g; - s/&/&/g; - - return $_; -} - -sub escape_char -{ - return '\"' if $_ eq '"'; - return '\n' if $_ eq "\n"; - return '\\\\' if $_ eq '\\'; - - return $_; -} - -sub escape -{ - my ($string) = @_; - return join "", map &escape_char, split //, $string; -} - -sub type_ini { - ### For generic translatable desktop files ### - while ($input =~ /^(#(.+)\n)?^_.*=(.*)$/mg) { - if (defined($2)) { - $comments{$3} = $2; - } - $messages{$3} = []; - } -} - -sub type_keys { - ### For generic translatable mime/keys files ### - while ($input =~ /^\s*_\w+=(.*)$/mg) { - $messages{$1} = []; - } -} - -sub type_xml { - ### For generic translatable XML files ### - my $tree = readXml($input); - parseTree(0, $tree); -} - -sub print_var { - my $var = shift; - my $vartype = ref $var; - - if ($vartype =~ /ARRAY/) { - my @arr = @{$var}; - print "[ "; - foreach my $el (@arr) { - print_var($el); - print ", "; - } - print "] "; - } elsif ($vartype =~ /HASH/) { - my %hash = %{$var}; - print "{ "; - foreach my $key (keys %hash) { - print "$key => "; - print_var($hash{$key}); - print ", "; - } - print "} "; - } else { - print $var; - } -} - -# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment) -sub getAttributeString -{ - my $sub = shift; - my $do_translate = shift || 1; - my $language = shift || ""; - my $translate = shift; - my $result = ""; - foreach my $e (reverse(sort(keys %{ $sub }))) { - my $key = $e; - my $string = $sub->{$e}; - my $quote = '"'; - - $string =~ s/^[\s]+//; - $string =~ s/[\s]+$//; - - if ($string =~ /^'.*'$/) - { - $quote = "'"; - } - $string =~ s/^['"]//g; - $string =~ s/['"]$//g; - - ## differences from intltool-merge.in.in - if ($key =~ /^_/) { - $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT; - $messages{entity_decode($string)} = []; - $$translate = 2; - } - ## differences end here from intltool-merge.in.in - $result .= " $key=$quote$string$quote"; - } - return $result; -} - -# Verbatim copy from intltool-merge.in.in -sub getXMLstring -{ - my $ref = shift; - my $spacepreserve = shift || 0; - my @list = @{ $ref }; - my $result = ""; - - my $count = scalar(@list); - my $attrs = $list[0]; - my $index = 1; - - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - - while ($index < $count) { - my $type = $list[$index]; - my $content = $list[$index+1]; - if (! $type ) { - # We've got CDATA - if ($content) { - # lets strip the whitespace here, and *ONLY* here - $content =~ s/\s+/ /gs if (!$spacepreserve); - $result .= $content; - } - } elsif ( "$type" ne "1" ) { - # We've got another element - $result .= "<$type"; - $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements - if ($content) { - my $subresult = getXMLstring($content, $spacepreserve); - if ($subresult) { - $result .= ">".$subresult . ""; - } else { - $result .= "/>"; - } - } else { - $result .= "/>"; - } - } - $index += 2; - } - return $result; -} - -# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed -# Translate list of nodes if necessary -sub translate_subnodes -{ - my $fh = shift; - my $content = shift; - my $language = shift || ""; - my $singlelang = shift || 0; - my $spacepreserve = shift || 0; - - my @nodes = @{ $content }; - - my $count = scalar(@nodes); - my $index = 0; - while ($index < $count) { - my $type = $nodes[$index]; - my $rest = $nodes[$index+1]; - traverse($fh, $type, $rest, $language, $spacepreserve); - $index += 2; - } -} - -# Based on traverse() in intltool-merge.in.in -sub traverse -{ - my $fh = shift; # unused, to allow us to sync code between -merge and -extract - my $nodename = shift; - my $content = shift; - my $language = shift || ""; - my $spacepreserve = shift || 0; - - if ($nodename && "$nodename" eq "1") { - $XMLCOMMENT = $content; - } elsif ($nodename) { - # element - my @all = @{ $content }; - my $attrs = shift @all; - my $translate = 0; - my $outattr = getAttributeString($attrs, 1, $language, \$translate); - - if ($nodename =~ /^_/) { - $translate = 1; - $nodename =~ s/^_//; - } - my $lookup = ''; - - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - if ($translate) { - $lookup = getXMLstring($content, $spacepreserve); - if (!$spacepreserve) { - $lookup =~ s/^\s+//s; - $lookup =~ s/\s+$//s; - } - - if ($lookup && $translate != 2) { - $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT; - $messages{$lookup} = []; - } elsif ($translate == 2) { - translate_subnodes($fh, \@all, $language, 1, $spacepreserve); - } - } else { - $XMLCOMMENT = ""; - my $count = scalar(@all); - if ($count > 0) { - my $index = 0; - while ($index < $count) { - my $type = $all[$index]; - my $rest = $all[$index+1]; - traverse($fh, $type, $rest, $language, $spacepreserve); - $index += 2; - } - } - } - $XMLCOMMENT = ""; - } -} - - -# Verbatim copy from intltool-merge.in.in, $fh for compatibility -sub parseTree -{ - my $fh = shift; - my $ref = shift; - my $language = shift || ""; - - my $name = shift @{ $ref }; - my $cont = shift @{ $ref }; - - while (!$name || "$name" eq "1") { - $name = shift @{ $ref }; - $cont = shift @{ $ref }; - } - - my $spacepreserve = 0; - my $attrs = @{$cont}[0]; - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - traverse($fh, $name, $cont, $language, $spacepreserve); -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_comment -{ - my $expat = shift; - my $data = $expat->original_string(); - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - $data =~ s/^$//s; - push @$clist, 1 => $data; -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_cdatastart -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - push @$clist, 0 => $expat->original_string(); -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_cdataend -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - $clist->[$pos] .= $expat->original_string(); -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_char -{ - my $expat = shift; - my $text = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - # Use original_string so that we retain escaped entities - # in CDATA sections. - # - if ($pos > 0 and $clist->[$pos - 1] eq '0') { - $clist->[$pos] .= $expat->original_string(); - } else { - push @$clist, 0 => $expat->original_string(); - } -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_start -{ - my $expat = shift; - my $tag = shift; - my @origlist = (); - - # Use original_string so that we retain escaped entities - # in attribute values. We must convert the string to an - # @origlist array to conform to the structure of the Tree - # Style. - # - my @original_array = split /\x/, $expat->original_string(); - my $source = $expat->original_string(); - - # Remove leading tag. - # - $source =~ s|^\s*<\s*(\S+)||s; - - # Grab attribute key/value pairs and push onto @origlist array. - # - while ($source) - { - if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; - push @origlist, $1; - push @origlist, '"' . $2 . '"'; - } - elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; - push @origlist, $1; - push @origlist, "'" . $2 . "'"; - } - else - { - last; - } - } - - my $ol = [ { @origlist } ]; - - push @{ $expat->{Lists} }, $expat->{Curlist}; - push @{ $expat->{Curlist} }, $tag => $ol; - $expat->{Curlist} = $ol; -} - -# Copied from intltool-merge.in.in and added comment handler. -sub readXml -{ - my $xmldoc = shift || return; - my $ret = eval 'require XML::Parser'; - if(!$ret) { - die "You must have XML::Parser installed to run $0\n\n"; - } - my $xp = new XML::Parser(Style => 'Tree'); - $xp->setHandlers(Char => \&intltool_tree_char); - $xp->setHandlers(Start => \&intltool_tree_start); - $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); - $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); - - ## differences from intltool-merge.in.in - $xp->setHandlers(Comment => \&intltool_tree_comment); - ## differences end here from intltool-merge.in.in - - my $tree = $xp->parse($xmldoc); - #print_var($tree); - -# Hello thereHowdydo -# would be: -# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, -# [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ] - - return $tree; -} - -sub type_schemas { - ### For schemas XML files ### - - # FIXME: We should handle escaped < (less than) - while ($input =~ / - \s* - (\s*(?:\s*)?(.*?)\s*<\/default>\s*)? - (\s*(?:\s*)?(.*?)\s*<\/short>\s*)? - (\s*(?:\s*)?(.*?)\s*<\/long>\s*)? - <\/locale> - /sgx) { - my @totranslate = ($3,$6,$9); - my @eachcomment = ($2,$5,$8); - foreach (@totranslate) { - my $currentcomment = shift @eachcomment; - next if !$_; - s/\s+/ /g; - $messages{entity_decode_minimal($_)} = []; - $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment)); - } - } -} - -sub type_rfc822deb { - ### For rfc822-style Debian configuration files ### - - my $lineno = 1; - my $type = ''; - while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg) - { - my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5); - while ($pre =~ m/\n/g) - { - $lineno ++; - } - $lineno += length($newline); - my @str_list = rfc822deb_split(length($underscore), $text); - for my $str (@str_list) - { - $strcount++; - $messages{$str} = []; - $loc{$str} = $lineno; - $count{$str} = $strcount; - my $usercomment = ''; - while($pre =~ s/(^|\n)#([^\n]*)$//s) - { - $usercomment = "\n" . $2 . $usercomment; - } - $comments{$str} = $tag . $usercomment; - } - $lineno += ($text =~ s/\n//g); - } -} - -sub rfc822deb_split { - # Debian defines a special way to deal with rfc822-style files: - # when a value contain newlines, it consists of - # 1. a short form (first line) - # 2. a long description, all lines begin with a space, - # and paragraphs are separated by a single dot on a line - # This routine returns an array of all paragraphs, and reformat - # them. - # When first argument is 2, the string is a comma separated list of - # values. - my $type = shift; - my $text = shift; - $text =~ s/^[ \t]//mg; - return (split(/, */, $text, 0)) if $type ne 1; - return ($text) if $text !~ /\n/; - - $text =~ s/([^\n]*)\n//; - my @list = ($1); - my $str = ''; - for my $line (split (/\n/, $text)) - { - chomp $line; - if ($line =~ /^\.\s*$/) - { - # New paragraph - $str =~ s/\s*$//; - push(@list, $str); - $str = ''; - } - elsif ($line =~ /^\s/) - { - # Line which must not be reformatted - $str .= "\n" if length ($str) && $str !~ /\n$/; - $line =~ s/\s+$//; - $str .= $line."\n"; - } - else - { - # Continuation line, remove newline - $str .= " " if length ($str) && $str !~ /\n$/; - $str .= $line; - } - } - $str =~ s/\s*$//; - push(@list, $str) if length ($str); - return @list; -} - -sub type_quoted { - while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) { - my $message = $1; - my $before = $`; - $message =~ s/\\\"/\"/g; - $before =~ s/[^\n]//g; - $messages{$message} = []; - $loc{$message} = length ($before) + 2; - } -} - -sub type_quotedxml { - while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) { - my $message = $1; - my $before = $`; - $message =~ s/\\\"/\"/g; - $message = entity_decode($message); - $before =~ s/[^\n]//g; - $messages{$message} = []; - $loc{$message} = length ($before) + 2; - } -} - -sub type_glade { - ### For translatable Glade XML files ### - - my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message"; - - while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) { - # Glade sometimes uses tags that normally mark translatable things for - # little bits of non-translatable content. We work around this by not - # translating strings that only includes something like label4 or window1. - $messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/; - } - - while ($input =~ /(..[^<]*)<\/items>/sg) { - for my $item (split (/\n/, $1)) { - $messages{entity_decode($item)} = []; - } - } - - ## handle new glade files - while ($input =~ /<(property|atkproperty|col)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) { - $messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/; - if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) { - $comments{entity_decode($3)} = entity_decode($2) ; - } - } - while ($input =~ /]*)"\s+description="([^>]+)"\/>/sg) { - $messages{entity_decode_minimal($2)} = []; - } -} - -sub type_scheme { - my ($line, $i, $state, $str, $trcomment, $char); - for $line (split(/\n/, $input)) { - $i = 0; - $state = 0; # 0 - nothing, 1 - string, 2 - translatable string - while ($i < length($line)) { - if (substr($line,$i,1) eq "\"") { - if ($state == 2) { - $comments{$str} = $trcomment if ($trcomment); - $messages{$str} = []; - $str = ''; - $state = 0; $trcomment = ""; - } elsif ($state == 1) { - $str = ''; - $state = 0; $trcomment = ""; - } else { - $state = 1; - $str = ''; - if ($i>0 && substr($line,$i-1,1) eq '_') { - $state = 2; - } - } - } elsif (!$state) { - if (substr($line,$i,1) eq ";") { - $trcomment = substr($line,$i+1); - $trcomment =~ s/^;*\s*//; - $i = length($line); - } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) { - $trcomment = ""; - } - } else { - if (substr($line,$i,1) eq "\\") { - $char = substr($line,$i+1,1); - if ($char ne "\"" && $char ne "\\") { - $str = $str . "\\"; - } - $i++; - } - $str = $str . substr($line,$i,1); - } - $i++; - } - } -} - -sub msg_write { - my @msgids; - if (%count) - { - @msgids = sort { $count{$a} <=> $count{$b} } keys %count; - } - else - { - @msgids = sort keys %messages; - } - for my $message (@msgids) - { - my $offsetlines = 1; - $offsetlines++ if $message =~ /%/; - if (defined ($comments{$message})) - { - while ($comments{$message} =~ m/\n/g) - { - $offsetlines++; - } - } - print OUT "# ".($loc{$message} - $offsetlines). " \"$FILE\"\n" - if defined $loc{$message}; - print OUT "/* ".$comments{$message}." */\n" - if defined $comments{$message}; - print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/; - - my @lines = split (/\n/, $message, -1); - for (my $n = 0; $n < @lines; $n++) - { - if ($n == 0) - { - print OUT "char *s = N_(\""; - } - else - { - print OUT " \""; - } - - print OUT escape($lines[$n]); - - if ($n < @lines - 1) - { - print OUT "\\n\"\n"; - } - else - { - print OUT "\");\n"; - } - } - } -} - diff -Nru gitg-0.0.3/intltool-merge.in gitg-0.0.6/intltool-merge.in --- gitg-0.0.3/intltool-merge.in 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/intltool-merge.in 2010-02-21 09:56:06.000000000 +0000 @@ -1,1506 +0,0 @@ -#!@INTLTOOL_PERL@ -w -# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# -# The Intltool Message Merger -# -# Copyright (C) 2000, 2003 Free Software Foundation. -# Copyright (C) 2000, 2001 Eazel, Inc -# -# Intltool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# version 2 published by the Free Software Foundation. -# -# Intltool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# Authors: Maciej Stachowiak -# Kenneth Christiansen -# Darin Adler -# -# Proper XML UTF-8'ification written by Cyrille Chepelov -# - -## Release information -my $PROGRAM = "intltool-merge"; -my $PACKAGE = "intltool"; -my $VERSION = "0.37.1"; - -## Loaded modules -use strict; -use Getopt::Long; -use Text::Wrap; -use File::Basename; - -my $must_end_tag = -1; -my $last_depth = -1; -my $translation_depth = -1; -my @tag_stack = (); -my @entered_tag = (); -my @translation_strings = (); -my $leading_space = ""; - -## Scalars used by the option stuff -my $HELP_ARG = 0; -my $VERSION_ARG = 0; -my $BA_STYLE_ARG = 0; -my $XML_STYLE_ARG = 0; -my $KEYS_STYLE_ARG = 0; -my $DESKTOP_STYLE_ARG = 0; -my $SCHEMAS_STYLE_ARG = 0; -my $RFC822DEB_STYLE_ARG = 0; -my $QUOTED_STYLE_ARG = 0; -my $QUOTEDXML_STYLE_ARG = 0; -my $QUIET_ARG = 0; -my $PASS_THROUGH_ARG = 0; -my $UTF8_ARG = 0; -my $MULTIPLE_OUTPUT = 0; -my $cache_file; - -## Handle options -GetOptions -( - "help" => \$HELP_ARG, - "version" => \$VERSION_ARG, - "quiet|q" => \$QUIET_ARG, - "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility - "ba-style|b" => \$BA_STYLE_ARG, - "xml-style|x" => \$XML_STYLE_ARG, - "keys-style|k" => \$KEYS_STYLE_ARG, - "desktop-style|d" => \$DESKTOP_STYLE_ARG, - "schemas-style|s" => \$SCHEMAS_STYLE_ARG, - "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG, - "quoted-style" => \$QUOTED_STYLE_ARG, - "quotedxml-style" => \$QUOTEDXML_STYLE_ARG, - "pass-through|p" => \$PASS_THROUGH_ARG, - "utf8|u" => \$UTF8_ARG, - "multiple-output|m" => \$MULTIPLE_OUTPUT, - "cache|c=s" => \$cache_file - ) or &error; - -my $PO_DIR; -my $FILE; -my $OUTFILE; - -my %po_files_by_lang = (); -my %translations = (); -my $iconv = $ENV{"ICONV"} || "iconv"; -my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); - -sub isProgramInPath -{ - my ($file) = @_; - # If either a file exists, or when run it returns 0 exit status - return 1 if ((-x $file) or (system("$file -l >$devnull") == 0)); - return 0; -} - -if (! isProgramInPath ("$iconv")) -{ - print STDERR " *** iconv is not found on this system!\n". - " *** Without it, intltool-merge can not convert encodings.\n"; - exit; -} - -# Use this instead of \w for XML files to handle more possible characters. -my $w = "[-A-Za-z0-9._:]"; - -# XML quoted string contents -my $q = "[^\\\"]*"; - -## Check for options. - -if ($VERSION_ARG) -{ - &print_version; -} -elsif ($HELP_ARG) -{ - &print_help; -} -elsif ($BA_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &ba_merge_translations; - &finalize; -} -elsif ($XML_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &xml_merge_output; - &finalize; -} -elsif ($KEYS_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &keys_merge_translations; - &finalize; -} -elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &desktop_merge_translations; - &finalize; -} -elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &schemas_merge_translations; - &finalize; -} -elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) -{ - &preparation; - &print_message; - &rfc822deb_merge_translations; - &finalize; -} -elsif (($QUOTED_STYLE_ARG || $QUOTEDXML_STYLE_ARG) && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - "ed_merge_translations($QUOTEDXML_STYLE_ARG); - &finalize; -} -else -{ - &print_help; -} - -exit; - -## Sub for printing release information -sub print_version -{ - print <<_EOF_; -${PROGRAM} (${PACKAGE}) ${VERSION} -Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen. - -Copyright (C) 2000-2003 Free Software Foundation, Inc. -Copyright (C) 2000-2001 Eazel, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -_EOF_ - exit; -} - -## Sub for printing usage information -sub print_help -{ - print <<_EOF_; -Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE -Generates an output file that includes some localized attributes from an -untranslated source file. - -Mandatory options: (exactly one must be specified) - -b, --ba-style includes translations in the bonobo-activation style - -d, --desktop-style includes translations in the desktop style - -k, --keys-style includes translations in the keys style - -s, --schemas-style includes translations in the schemas style - -r, --rfc822deb-style includes translations in the RFC822 style - --quoted-style includes translations in the quoted string style - --quotedxml-style includes translations in the quoted xml string style - -x, --xml-style includes translations in the standard xml style - -Other options: - -u, --utf8 convert all strings to UTF-8 before merging - (default for everything except RFC822 style) - -p, --pass-through deprecated, does nothing and issues a warning - -m, --multiple-output output one localized file per locale, instead of - a single file containing all localized elements - -c, --cache=FILE specify cache file name - (usually \$top_builddir/po/.intltool-merge-cache) - -q, --quiet suppress most messages - --help display this help and exit - --version output version information and exit - -Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") -or send email to . -_EOF_ - exit; -} - - -## Sub for printing error messages -sub print_error -{ - print STDERR "Try `${PROGRAM} --help' for more information.\n"; - exit; -} - - -sub print_message -{ - print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG; -} - - -sub preparation -{ - $PO_DIR = $ARGV[0]; - $FILE = $ARGV[1]; - $OUTFILE = $ARGV[2]; - - &gather_po_files; - &get_translation_database; -} - -# General-purpose code for looking up translations in .po files - -sub po_file2lang -{ - my ($tmp) = @_; - $tmp =~ s/^.*\/(.*)\.po$/$1/; - return $tmp; -} - -sub gather_po_files -{ - if (my $linguas = $ENV{"LINGUAS"}) - { - for my $lang (split / /, $linguas) { - my $po_file = $PO_DIR . "/" . $lang . ".po"; - if (-e $po_file) { - $po_files_by_lang{$lang} = $po_file; - } - } - } - else - { - if (open LINGUAS_FILE, "$PO_DIR/LINGUAS") - { - while () - { - next if /^#/; - - for my $lang (split) - { - chomp ($lang); - my $po_file = $PO_DIR . "/" . $lang . ".po"; - if (-e $po_file) { - $po_files_by_lang{$lang} = $po_file; - } - } - } - - close LINGUAS_FILE; - } - else - { - for my $po_file (glob "$PO_DIR/*.po") { - $po_files_by_lang{po_file2lang($po_file)} = $po_file; - } - } - } -} - -sub get_local_charset -{ - my ($encoding) = @_; - my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias"; - - # seek character encoding aliases in charset.alias (glib) - - if (open CHARSET_ALIAS, $alias_file) - { - while () - { - next if /^\#/; - return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i) - } - - close CHARSET_ALIAS; - } - - # if not found, return input string - - return $encoding; -} - -sub get_po_encoding -{ - my ($in_po_file) = @_; - my $encoding = ""; - - open IN_PO_FILE, $in_po_file or die; - while () - { - ## example: "Content-Type: text/plain; charset=ISO-8859-1\n" - if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) - { - $encoding = $1; - last; - } - } - close IN_PO_FILE; - - if (!$encoding) - { - print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG; - $encoding = "ISO-8859-1"; - } - - system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull"); - if ($?) { - $encoding = get_local_charset($encoding); - } - - return $encoding -} - -sub utf8_sanity_check -{ - print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG; - $UTF8_ARG = 1; -} - -sub get_translation_database -{ - if ($cache_file) { - &get_cached_translation_database; - } else { - &create_translation_database; - } -} - -sub get_newest_po_age -{ - my $newest_age; - - foreach my $file (values %po_files_by_lang) - { - my $file_age = -M $file; - $newest_age = $file_age if !$newest_age || $file_age < $newest_age; - } - - $newest_age = 0 if !$newest_age; - - return $newest_age; -} - -sub create_cache -{ - print "Generating and caching the translation database\n" unless $QUIET_ARG; - - &create_translation_database; - - open CACHE, ">$cache_file" || die; - print CACHE join "\x01", %translations; - close CACHE; -} - -sub load_cache -{ - print "Found cached translation database\n" unless $QUIET_ARG; - - my $contents; - open CACHE, "<$cache_file" || die; - { - local $/; - $contents = ; - } - close CACHE; - %translations = split "\x01", $contents; -} - -sub get_cached_translation_database -{ - my $cache_file_age = -M $cache_file; - if (defined $cache_file_age) - { - if ($cache_file_age <= &get_newest_po_age) - { - &load_cache; - return; - } - print "Found too-old cached translation database\n" unless $QUIET_ARG; - } - - &create_cache; -} - -sub create_translation_database -{ - for my $lang (keys %po_files_by_lang) - { - my $po_file = $po_files_by_lang{$lang}; - - if ($UTF8_ARG) - { - my $encoding = get_po_encoding ($po_file); - - if (lc $encoding eq "utf-8") - { - open PO_FILE, "<$po_file"; - } - else - { - print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;; - - open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|"; - } - } - else - { - open PO_FILE, "<$po_file"; - } - - my $nextfuzzy = 0; - my $inmsgid = 0; - my $inmsgstr = 0; - my $msgid = ""; - my $msgstr = ""; - - while () - { - $nextfuzzy = 1 if /^#, fuzzy/; - - if (/^msgid "((\\.|[^\\]+)*)"/ ) - { - $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; - $msgid = ""; - $msgstr = ""; - - if ($nextfuzzy) { - $inmsgid = 0; - } else { - $msgid = unescape_po_string($1); - $inmsgid = 1; - } - $inmsgstr = 0; - $nextfuzzy = 0; - } - - if (/^msgstr "((\\.|[^\\]+)*)"/) - { - $msgstr = unescape_po_string($1); - $inmsgstr = 1; - $inmsgid = 0; - } - - if (/^"((\\.|[^\\]+)*)"/) - { - $msgid .= unescape_po_string($1) if $inmsgid; - $msgstr .= unescape_po_string($1) if $inmsgstr; - } - } - $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; - } -} - -sub finalize -{ -} - -sub unescape_one_sequence -{ - my ($sequence) = @_; - - return "\\" if $sequence eq "\\\\"; - return "\"" if $sequence eq "\\\""; - return "\n" if $sequence eq "\\n"; - return "\r" if $sequence eq "\\r"; - return "\t" if $sequence eq "\\t"; - return "\b" if $sequence eq "\\b"; - return "\f" if $sequence eq "\\f"; - return "\a" if $sequence eq "\\a"; - return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7) - - return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/); - return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/); - - # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489 - - return $sequence; -} - -sub unescape_po_string -{ - my ($string) = @_; - - $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg; - - return $string; -} - -sub entity_decode -{ - local ($_) = @_; - - s/'/'/g; # ' - s/"/"/g; # " - s/<//g; - s/&/&/g; - - return $_; -} - -# entity_encode: (string) -# -# Encode the given string to XML format (encode '<' etc). - -sub entity_encode -{ - my ($pre_encoded) = @_; - - my @list_of_chars = unpack ('C*', $pre_encoded); - - # with UTF-8 we only encode minimalistic - return join ('', map (&entity_encode_int_minimalist, @list_of_chars)); -} - -sub entity_encode_int_minimalist -{ - return """ if $_ == 34; - return "&" if $_ == 38; - return "'" if $_ == 39; - return "<" if $_ == 60; - return ">" if $_ == 62; - return chr $_; -} - -sub entity_encoded_translation -{ - my ($lang, $string) = @_; - - my $translation = $translations{$lang, $string}; - return $string if !$translation; - return entity_encode ($translation); -} - -## XML (bonobo-activation specific) merge code - -sub ba_merge_translations -{ - my $source; - - { - local $/; # slurp mode - open INPUT, "<$FILE" or die "can't open $FILE: $!"; - $source = ; - close INPUT; - } - - open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!"; - # Binmode so that selftest works ok if using a native Win32 Perl... - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) - { - print OUTPUT $1; - - my $node = $2 . "\n"; - - my @strings = (); - $_ = $node; - while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) { - push @strings, entity_decode($3); - } - print OUTPUT; - - my %langs; - for my $string (@strings) - { - for my $lang (keys %po_files_by_lang) - { - $langs{$lang} = 1 if $translations{$lang, $string}; - } - } - - for my $lang (sort keys %langs) - { - $_ = $node; - s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s; - s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg; - print OUTPUT; - } - } - - print OUTPUT $source; - - close OUTPUT; -} - - -## XML (non-bonobo-activation) merge code - - -# Process tag attributes -# Only parameter is a HASH containing attributes -> values mapping -sub getAttributeString -{ - my $sub = shift; - my $do_translate = shift || 0; - my $language = shift || ""; - my $result = ""; - my $translate = shift; - foreach my $e (reverse(sort(keys %{ $sub }))) { - my $key = $e; - my $string = $sub->{$e}; - my $quote = '"'; - - $string =~ s/^[\s]+//; - $string =~ s/[\s]+$//; - - if ($string =~ /^'.*'$/) - { - $quote = "'"; - } - $string =~ s/^['"]//g; - $string =~ s/['"]$//g; - - if ($do_translate && $key =~ /^_/) { - $key =~ s|^_||g; - if ($language) { - # Handle translation - my $decode_string = entity_decode($string); - my $translation = $translations{$language, $decode_string}; - if ($translation) { - $translation = entity_encode($translation); - $string = $translation; - } - $$translate = 2; - } else { - $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate - } - } - - $result .= " $key=$quote$string$quote"; - } - return $result; -} - -# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree -sub getXMLstring -{ - my $ref = shift; - my $spacepreserve = shift || 0; - my @list = @{ $ref }; - my $result = ""; - - my $count = scalar(@list); - my $attrs = $list[0]; - my $index = 1; - - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - - while ($index < $count) { - my $type = $list[$index]; - my $content = $list[$index+1]; - if (! $type ) { - # We've got CDATA - if ($content) { - # lets strip the whitespace here, and *ONLY* here - $content =~ s/\s+/ /gs if (!$spacepreserve); - $result .= $content; - } - } elsif ( "$type" ne "1" ) { - # We've got another element - $result .= "<$type"; - $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements - if ($content) { - my $subresult = getXMLstring($content, $spacepreserve); - if ($subresult) { - $result .= ">".$subresult . ""; - } else { - $result .= "/>"; - } - } else { - $result .= "/>"; - } - } - $index += 2; - } - return $result; -} - -# Translate list of nodes if necessary -sub translate_subnodes -{ - my $fh = shift; - my $content = shift; - my $language = shift || ""; - my $singlelang = shift || 0; - my $spacepreserve = shift || 0; - - my @nodes = @{ $content }; - - my $count = scalar(@nodes); - my $index = 0; - while ($index < $count) { - my $type = $nodes[$index]; - my $rest = $nodes[$index+1]; - if ($singlelang) { - my $oldMO = $MULTIPLE_OUTPUT; - $MULTIPLE_OUTPUT = 1; - traverse($fh, $type, $rest, $language, $spacepreserve); - $MULTIPLE_OUTPUT = $oldMO; - } else { - traverse($fh, $type, $rest, $language, $spacepreserve); - } - $index += 2; - } -} - -sub isWellFormedXmlFragment -{ - my $ret = eval 'require XML::Parser'; - if(!$ret) { - die "You must have XML::Parser installed to run $0\n\n"; - } - - my $fragment = shift; - return 0 if (!$fragment); - - $fragment = "$fragment"; - my $xp = new XML::Parser(Style => 'Tree'); - my $tree = 0; - eval { $tree = $xp->parse($fragment); }; - return $tree; -} - -sub traverse -{ - my $fh = shift; - my $nodename = shift; - my $content = shift; - my $language = shift || ""; - my $spacepreserve = shift || 0; - - if (!$nodename) { - if ($content =~ /^[\s]*$/) { - $leading_space .= $content; - } - print $fh $content; - } else { - # element - my @all = @{ $content }; - my $attrs = shift @all; - my $translate = 0; - my $outattr = getAttributeString($attrs, 1, $language, \$translate); - - if ($nodename =~ /^_/) { - $translate = 1; - $nodename =~ s/^_//; - } - my $lookup = ''; - - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - print $fh "<$nodename", $outattr; - if ($translate) { - $lookup = getXMLstring($content, $spacepreserve); - if (!$spacepreserve) { - $lookup =~ s/^\s+//s; - $lookup =~ s/\s+$//s; - } - - if ($lookup || $translate == 2) { - my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup}); - if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) { - $translation = $lookup if (!$translation); - print $fh " xml:lang=\"", $language, "\"" if $language; - print $fh ">"; - if ($translate == 2) { - translate_subnodes($fh, \@all, $language, 1, $spacepreserve); - } else { - print $fh $translation; - } - print $fh ""; - - return; # this means there will be no same translation with xml:lang="$language"... - # if we want them both, just remove this "return" - } else { - print $fh ">"; - if ($translate == 2) { - translate_subnodes($fh, \@all, $language, 1, $spacepreserve); - } else { - print $fh $lookup; - } - print $fh ""; - } - } else { - print $fh "/>"; - } - - for my $lang (sort keys %po_files_by_lang) { - if ($MULTIPLE_OUTPUT && $lang ne "$language") { - next; - } - if ($lang) { - # Handle translation - # - my $translate = 0; - my $localattrs = getAttributeString($attrs, 1, $lang, \$translate); - my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup}); - if ($translate && !$translation) { - $translation = $lookup; - } - - if ($translation || $translate) { - print $fh "\n"; - $leading_space =~ s/.*\n//g; - print $fh $leading_space; - print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">"; - if ($translate == 2) { - translate_subnodes($fh, \@all, $lang, 1, $spacepreserve); - } else { - print $fh $translation; - } - print $fh ""; - } - } - } - - } else { - my $count = scalar(@all); - if ($count > 0) { - print $fh ">"; - my $index = 0; - while ($index < $count) { - my $type = $all[$index]; - my $rest = $all[$index+1]; - traverse($fh, $type, $rest, $language, $spacepreserve); - $index += 2; - } - print $fh ""; - } else { - print $fh "/>"; - } - } - } -} - -sub intltool_tree_comment -{ - my $expat = shift; - my $data = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - push @$clist, 1 => $data; -} - -sub intltool_tree_cdatastart -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - push @$clist, 0 => $expat->original_string(); -} - -sub intltool_tree_cdataend -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - $clist->[$pos] .= $expat->original_string(); -} - -sub intltool_tree_char -{ - my $expat = shift; - my $text = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - # Use original_string so that we retain escaped entities - # in CDATA sections. - # - if ($pos > 0 and $clist->[$pos - 1] eq '0') { - $clist->[$pos] .= $expat->original_string(); - } else { - push @$clist, 0 => $expat->original_string(); - } -} - -sub intltool_tree_start -{ - my $expat = shift; - my $tag = shift; - my @origlist = (); - - # Use original_string so that we retain escaped entities - # in attribute values. We must convert the string to an - # @origlist array to conform to the structure of the Tree - # Style. - # - my @original_array = split /\x/, $expat->original_string(); - my $source = $expat->original_string(); - - # Remove leading tag. - # - $source =~ s|^\s*<\s*(\S+)||s; - - # Grab attribute key/value pairs and push onto @origlist array. - # - while ($source) - { - if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; - push @origlist, $1; - push @origlist, '"' . $2 . '"'; - } - elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; - push @origlist, $1; - push @origlist, "'" . $2 . "'"; - } - else - { - last; - } - } - - my $ol = [ { @origlist } ]; - - push @{ $expat->{Lists} }, $expat->{Curlist}; - push @{ $expat->{Curlist} }, $tag => $ol; - $expat->{Curlist} = $ol; -} - -sub readXml -{ - my $filename = shift || return; - if(!-f $filename) { - die "ERROR Cannot find filename: $filename\n"; - } - - my $ret = eval 'require XML::Parser'; - if(!$ret) { - die "You must have XML::Parser installed to run $0\n\n"; - } - my $xp = new XML::Parser(Style => 'Tree'); - $xp->setHandlers(Char => \&intltool_tree_char); - $xp->setHandlers(Start => \&intltool_tree_start); - $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); - $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); - my $tree = $xp->parsefile($filename); - -# Hello thereHowdydo -# would be: -# [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, [{}, -# 0, "Howdy", ref, [{}]], 0, "do" ] ] - - return $tree; -} - -sub print_header -{ - my $infile = shift; - my $fh = shift; - my $source; - - if(!-f $infile) { - die "ERROR Cannot find filename: $infile\n"; - } - - print $fh qq{\n}; - { - local $/; - open DOCINPUT, "<${FILE}" or die; - $source = ; - close DOCINPUT; - } - if ($source =~ /()/s) - { - print $fh "$1\n"; - } - elsif ($source =~ /(]*>)/s) - { - print $fh "$1\n"; - } -} - -sub parseTree -{ - my $fh = shift; - my $ref = shift; - my $language = shift || ""; - - my $name = shift @{ $ref }; - my $cont = shift @{ $ref }; - - while (!$name || "$name" eq "1") { - $name = shift @{ $ref }; - $cont = shift @{ $ref }; - } - - my $spacepreserve = 0; - my $attrs = @{$cont}[0]; - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - traverse($fh, $name, $cont, $language, $spacepreserve); -} - -sub xml_merge_output -{ - my $source; - - if ($MULTIPLE_OUTPUT) { - for my $lang (sort keys %po_files_by_lang) { - if ( ! -d $lang ) { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; - } - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - my $tree = readXml($FILE); - print_header($FILE, \*OUTPUT); - parseTree(\*OUTPUT, $tree, $lang); - close OUTPUT; - print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; - } - if ( ! -d "C" ) { - mkdir "C" or -d "C" or die "Cannot create subdirectory C: $!\n"; - } - open OUTPUT, ">C/$OUTFILE" or die "Cannot open C/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - my $tree = readXml($FILE); - print_header($FILE, \*OUTPUT); - parseTree(\*OUTPUT, $tree); - close OUTPUT; - print "CREATED C/$OUTFILE\n" unless $QUIET_ARG; - } else { - open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - my $tree = readXml($FILE); - print_header($FILE, \*OUTPUT); - parseTree(\*OUTPUT, $tree); - close OUTPUT; - print "CREATED $OUTFILE\n" unless $QUIET_ARG; - } -} - -sub keys_merge_translation -{ - my ($lang) = @_; - - if ( ! -d $lang && $MULTIPLE_OUTPUT) - { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; - } - - open INPUT, "<${FILE}" or die "Cannot open ${FILE}: $!\n"; - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while () - { - if (s/^(\s*)_(\w+=(.*))/$1$2/) - { - my $string = $3; - - if (!$MULTIPLE_OUTPUT) - { - print OUTPUT; - - my $non_translated_line = $_; - - for my $lang (sort keys %po_files_by_lang) - { - my $translation = $translations{$lang, $string}; - next if !$translation; - - $_ = $non_translated_line; - s/(\w+)=.*/[$lang]$1=$translation/; - print OUTPUT; - } - } - else - { - my $non_translated_line = $_; - my $translation = $translations{$lang, $string}; - $translation = $string if !$translation; - - $_ = $non_translated_line; - s/(\w+)=.*/$1=$translation/; - print OUTPUT; - } - } - else - { - print OUTPUT; - } - } - - close OUTPUT; - close INPUT; - - print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; -} - -sub keys_merge_translations -{ - if ($MULTIPLE_OUTPUT) - { - for my $lang (sort keys %po_files_by_lang) - { - keys_merge_translation ($lang); - } - keys_merge_translation ("C"); - } - else - { - keys_merge_translation ("."); - } -} - -sub desktop_merge_translations -{ - open INPUT, "<${FILE}" or die; - open OUTPUT, ">${OUTFILE}" or die; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while () - { - if (s/^(\s*)_(\w+=(.*))/$1$2/) - { - my $string = $3; - - print OUTPUT; - - my $non_translated_line = $_; - - for my $lang (sort keys %po_files_by_lang) - { - my $translation = $translations{$lang, $string}; - next if !$translation; - - $_ = $non_translated_line; - s/(\w+)=.*/${1}[$lang]=$translation/; - print OUTPUT; - } - } - else - { - print OUTPUT; - } - } - - close OUTPUT; - close INPUT; -} - -sub schemas_merge_translations -{ - my $source; - - { - local $/; # slurp mode - open INPUT, "<$FILE" or die "can't open $FILE: $!"; - $source = ; - close INPUT; - } - - open OUTPUT, ">$OUTFILE" or die; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - # FIXME: support attribute translations - - # Empty nodes never need translation, so unmark all of them. - # For example, <_foo/> is just replaced by . - $source =~ s|<\s*_($w+)\s*/>|<$1/>|g; - - while ($source =~ s/ - (.*?) - (\s+)((\s*) - (\s*(?:\s*)?(.*?)\s*<\/default>)?(\s*) - (\s*(?:\s*)?(.*?)\s*<\/short>)?(\s*) - (\s*(?:\s*)?(.*?)\s*<\/long>)?(\s*) - <\/locale>) - //sx) - { - print OUTPUT $1; - - my $locale_start_spaces = $2 ? $2 : ''; - my $default_spaces = $4 ? $4 : ''; - my $short_spaces = $7 ? $7 : ''; - my $long_spaces = $10 ? $10 : ''; - my $locale_end_spaces = $13 ? $13 : ''; - my $c_default_block = $3 ? $3 : ''; - my $default_string = $6 ? $6 : ''; - my $short_string = $9 ? $9 : ''; - my $long_string = $12 ? $12 : ''; - - print OUTPUT "$locale_start_spaces$c_default_block"; - - $default_string =~ s/\s+/ /g; - $default_string = entity_decode($default_string); - $short_string =~ s/\s+/ /g; - $short_string = entity_decode($short_string); - $long_string =~ s/\s+/ /g; - $long_string = entity_decode($long_string); - - for my $lang (sort keys %po_files_by_lang) - { - my $default_translation = $translations{$lang, $default_string}; - my $short_translation = $translations{$lang, $short_string}; - my $long_translation = $translations{$lang, $long_string}; - - next if (!$default_translation && !$short_translation && - !$long_translation); - - print OUTPUT "\n$locale_start_spaces"; - - print OUTPUT "$default_spaces"; - - if ($default_translation) - { - $default_translation = entity_encode($default_translation); - print OUTPUT "$default_translation"; - } - - print OUTPUT "$short_spaces"; - - if ($short_translation) - { - $short_translation = entity_encode($short_translation); - print OUTPUT "$short_translation"; - } - - print OUTPUT "$long_spaces"; - - if ($long_translation) - { - $long_translation = entity_encode($long_translation); - print OUTPUT "$long_translation"; - } - - print OUTPUT "$locale_end_spaces"; - } - } - - print OUTPUT $source; - - close OUTPUT; -} - -sub rfc822deb_merge_translations -{ - my %encodings = (); - for my $lang (keys %po_files_by_lang) { - $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang})); - } - - my $source; - - $Text::Wrap::huge = 'overflow'; - $Text::Wrap::break = qr/\n|\s(?=\S)/; - - { - local $/; # slurp mode - open INPUT, "<$FILE" or die "can't open $FILE: $!"; - $source = ; - close INPUT; - } - - open OUTPUT, ">${OUTFILE}" or die; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg) - { - my $sep = $1; - my $non_translated_line = $3.$4; - my $string = $5; - my $underscore = length($2); - next if $underscore eq 0 && $non_translated_line =~ /^#/; - # Remove [] dummy strings - my $stripped = $string; - $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2; - $stripped =~ s/\[\s[^\[\]]*\]$//; - $non_translated_line .= $stripped; - - print OUTPUT $sep.$non_translated_line; - - if ($underscore) - { - my @str_list = rfc822deb_split($underscore, $string); - - for my $lang (sort keys %po_files_by_lang) - { - my $is_translated = 1; - my $str_translated = ''; - my $first = 1; - - for my $str (@str_list) - { - my $translation = $translations{$lang, $str}; - - if (!$translation) - { - $is_translated = 0; - last; - } - - # $translation may also contain [] dummy - # strings, mostly to indicate an empty string - $translation =~ s/\[\s[^\[\]]*\]$//; - - if ($first) - { - if ($underscore eq 2) - { - $str_translated .= $translation; - } - else - { - $str_translated .= - Text::Tabs::expand($translation) . - "\n"; - } - } - else - { - if ($underscore eq 2) - { - $str_translated .= ', ' . $translation; - } - else - { - $str_translated .= Text::Tabs::expand( - Text::Wrap::wrap(' ', ' ', $translation)) . - "\n .\n"; - } - } - $first = 0; - - # To fix some problems with Text::Wrap::wrap - $str_translated =~ s/(\n )+\n/\n .\n/g; - } - next unless $is_translated; - - $str_translated =~ s/\n \.\n$//; - $str_translated =~ s/\s+$//; - - $_ = $non_translated_line; - s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s; - print OUTPUT; - } - } - } - print OUTPUT "\n"; - - close OUTPUT; - close INPUT; -} - -sub rfc822deb_split -{ - # Debian defines a special way to deal with rfc822-style files: - # when a value contain newlines, it consists of - # 1. a short form (first line) - # 2. a long description, all lines begin with a space, - # and paragraphs are separated by a single dot on a line - # This routine returns an array of all paragraphs, and reformat - # them. - # When first argument is 2, the string is a comma separated list of - # values. - my $type = shift; - my $text = shift; - $text =~ s/^[ \t]//mg; - return (split(/, */, $text, 0)) if $type ne 1; - return ($text) if $text !~ /\n/; - - $text =~ s/([^\n]*)\n//; - my @list = ($1); - my $str = ''; - - for my $line (split (/\n/, $text)) - { - chomp $line; - if ($line =~ /^\.\s*$/) - { - # New paragraph - $str =~ s/\s*$//; - push(@list, $str); - $str = ''; - } - elsif ($line =~ /^\s/) - { - # Line which must not be reformatted - $str .= "\n" if length ($str) && $str !~ /\n$/; - $line =~ s/\s+$//; - $str .= $line."\n"; - } - else - { - # Continuation line, remove newline - $str .= " " if length ($str) && $str !~ /\n$/; - $str .= $line; - } - } - - $str =~ s/\s*$//; - push(@list, $str) if length ($str); - - return @list; -} - -sub quoted_translation -{ - my ($xml_mode, $lang, $string) = @_; - - $string = entity_decode($string) if $xml_mode; - $string =~ s/\\\"/\"/g; - - my $translation = $translations{$lang, $string}; - $translation = $string if !$translation; - $translation = entity_encode($translation) if $xml_mode; - $translation =~ s/\"/\\\"/g; - return $translation -} - -sub quoted_merge_translations -{ - my ($xml_mode) = @_; - - if (!$MULTIPLE_OUTPUT) { - print "Quoted only supports Multiple Output.\n"; - exit(1); - } - - for my $lang (sort keys %po_files_by_lang) { - if ( ! -d $lang ) { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; - } - open INPUT, "<${FILE}" or die; - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - while () - { - s/\"(([^\"]|\\\")*[^\\\"])\"/"\"" . "ed_translation($xml_mode, $lang, $1) . "\""/ge; - print OUTPUT; - } - close OUTPUT; - close INPUT; - } -} diff -Nru gitg-0.0.3/intltool-update.in gitg-0.0.6/intltool-update.in --- gitg-0.0.3/intltool-update.in 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/intltool-update.in 2010-02-21 09:56:06.000000000 +0000 @@ -1,1166 +0,0 @@ -#!@INTLTOOL_PERL@ -w -# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# -# The Intltool Message Updater -# -# Copyright (C) 2000-2003 Free Software Foundation. -# -# Intltool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# version 2 published by the Free Software Foundation. -# -# Intltool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# Authors: Kenneth Christiansen -# Maciej Stachowiak -# Darin Adler - -## Release information -my $PROGRAM = "intltool-update"; -my $VERSION = "0.37.1"; -my $PACKAGE = "intltool"; - -## Loaded modules -use strict; -use Getopt::Long; -use Cwd; -use File::Copy; -use File::Find; - -## Scalars used by the option stuff -my $HELP_ARG = 0; -my $VERSION_ARG = 0; -my $DIST_ARG = 0; -my $POT_ARG = 0; -my $HEADERS_ARG = 0; -my $MAINTAIN_ARG = 0; -my $REPORT_ARG = 0; -my $VERBOSE = 0; -my $GETTEXT_PACKAGE = ""; -my $OUTPUT_FILE = ""; - -my @languages; -my %varhash = (); -my %po_files_by_lang = (); - -# Regular expressions to categorize file types. -# FIXME: Please check if the following is correct - -my $xml_support = -"xml(?:\\.in)*|". # http://www.w3.org/XML/ (Note: .in is not required) -"ui|". # Bonobo specific - User Interface desc. files -"lang|". # ? -"glade2?(?:\\.in)*|". # Glade specific - User Interface desc. files (Note: .in is not required) -"scm(?:\\.in)*|". # ? (Note: .in is not required) -"oaf(?:\\.in)+|". # DEPRECATED: Replaces by Bonobo .server files -"etspec|". # ? -"server(?:\\.in)+|". # Bonobo specific -"sheet(?:\\.in)+|". # ? -"schemas(?:\\.in)+|". # GConf specific -"pong(?:\\.in)+|". # DEPRECATED: PONG is not used [by GNOME] any longer. -"kbd(?:\\.in)+|". # GOK specific. -"policy(?:\\.in)+"; # PolicyKit files - -my $ini_support = -"icon(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec -"desktop(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec -"caves(?:\\.in)+|". # GNOME Games specific -"directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec -"soundlist(?:\\.in)+|". # GNOME specific -"keys(?:\\.in)+|". # GNOME Mime database specific -"theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec -"service(?:\\.in)+"; # DBus specific - -my $buildin_gettext_support = -"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py"; - -## Always flush buffer when printing -$| = 1; - -## Sometimes the source tree will be rooted somewhere else. -my $SRCDIR = $ENV{"srcdir"} || "."; -my $POTFILES_in; - -$POTFILES_in = "<$SRCDIR/POTFILES.in"; - -my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); - -## Handle options -GetOptions -( - "help" => \$HELP_ARG, - "version" => \$VERSION_ARG, - "dist|d" => \$DIST_ARG, - "pot|p" => \$POT_ARG, - "headers|s" => \$HEADERS_ARG, - "maintain|m" => \$MAINTAIN_ARG, - "report|r" => \$REPORT_ARG, - "verbose|x" => \$VERBOSE, - "gettext-package|g=s" => \$GETTEXT_PACKAGE, - "output-file|o=s" => \$OUTPUT_FILE, - ) or &Console_WriteError_InvalidOption; - -&Console_Write_IntltoolHelp if $HELP_ARG; -&Console_Write_IntltoolVersion if $VERSION_ARG; - -my $arg_count = ($DIST_ARG > 0) - + ($POT_ARG > 0) - + ($HEADERS_ARG > 0) - + ($MAINTAIN_ARG > 0) - + ($REPORT_ARG > 0); - -&Console_Write_IntltoolHelp if $arg_count > 1; - -my $PKGNAME = FindPackageName (); - -# --version and --help don't require a module name -my $MODULE = $GETTEXT_PACKAGE || $PKGNAME || "unknown"; - -if ($POT_ARG) -{ - &GenerateHeaders; - &GeneratePOTemplate; -} -elsif ($HEADERS_ARG) -{ - &GenerateHeaders; -} -elsif ($MAINTAIN_ARG) -{ - &FindLeftoutFiles; -} -elsif ($REPORT_ARG) -{ - &GenerateHeaders; - &GeneratePOTemplate; - &Console_Write_CoverageReport; -} -elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/) -{ - my $lang = $ARGV[0]; - - ## Report error if the language file supplied - ## to the command line is non-existent - &Console_WriteError_NotExisting("$SRCDIR/$lang.po") - if ! -s "$SRCDIR/$lang.po"; - - if (!$DIST_ARG) - { - print "Working, please wait..." if $VERBOSE; - &GenerateHeaders; - &GeneratePOTemplate; - } - &POFile_Update ($lang, $OUTPUT_FILE); - &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE); -} -else -{ - &Console_Write_IntltoolHelp; -} - -exit; - -######### - -sub Console_Write_IntltoolVersion -{ - print <<_EOF_; -${PROGRAM} (${PACKAGE}) $VERSION -Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler. - -Copyright (C) 2000-2003 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -_EOF_ - exit; -} - -sub Console_Write_IntltoolHelp -{ - print <<_EOF_; -Usage: ${PROGRAM} [OPTION]... LANGCODE -Updates PO template files and merge them with the translations. - -Mode of operation (only one is allowed): - -p, --pot generate the PO template only - -s, --headers generate the header files in POTFILES.in - -m, --maintain search for left out files from POTFILES.in - -r, --report display a status report for the module - -d, --dist merge LANGCODE.po with existing PO template - -Extra options: - -g, --gettext-package=NAME override PO template name, useful with --pot - -o, --output-file=FILE write merged translation to FILE - -x, --verbose display lots of feedback - --help display this help and exit - --version output version information and exit - -Examples of use: -${PROGRAM} --pot just create a new PO template -${PROGRAM} xy create new PO template and merge xy.po with it - -Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") -or send email to . -_EOF_ - exit; -} - -sub echo_n -{ - my $str = shift; - my $ret = `echo "$str"`; - - $ret =~ s/\n$//; # do we need the "s" flag? - - return $ret; -} - -sub POFile_DetermineType ($) -{ - my $type = $_; - my $gettext_type; - - my $xml_regex = "(?:" . $xml_support . ")"; - my $ini_regex = "(?:" . $ini_support . ")"; - my $buildin_regex = "(?:" . $buildin_gettext_support . ")"; - - if ($type =~ /\[type: gettext\/([^\]].*)]/) - { - $gettext_type=$1; - } - elsif ($type =~ /schemas(\.in)+$/) - { - $gettext_type="schemas"; - } - elsif ($type =~ /glade2?(\.in)*$/) - { - $gettext_type="glade"; - } - elsif ($type =~ /scm(\.in)*$/) - { - $gettext_type="scheme"; - } - elsif ($type =~ /keys(\.in)+$/) - { - $gettext_type="keys"; - } - - # bucket types - - elsif ($type =~ /$xml_regex$/) - { - $gettext_type="xml"; - } - elsif ($type =~ /$ini_regex$/) - { - $gettext_type="ini"; - } - elsif ($type =~ /$buildin_regex$/) - { - $gettext_type="buildin"; - } - else - { - $gettext_type="unknown"; - } - - return "gettext\/$gettext_type"; -} - -sub TextFile_DetermineEncoding ($) -{ - my $gettext_code="ASCII"; # All files are ASCII by default - my $filetype=`file $_ | cut -d ' ' -f 2`; - - if ($? eq "0") - { - if ($filetype =~ /^(ISO|UTF)/) - { - chomp ($gettext_code = $filetype); - } - elsif ($filetype =~ /^XML/) - { - $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8 - } - } - - return $gettext_code; -} - -sub isNotValidMissing -{ - my ($file) = @_; - - return if $file =~ /^\{arch\}\/.*$/; - return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/; -} - -sub FindLeftoutFiles -{ - my (@buf_i18n_plain, - @buf_i18n_xml, - @buf_i18n_xml_unmarked, - @buf_i18n_ini, - @buf_potfiles, - @buf_potfiles_ignore, - @buf_allfiles, - @buf_allfiles_sorted, - @buf_potfiles_sorted, - @buf_potfiles_ignore_sorted - ); - - ## Search and find all translatable files - find sub { - push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; - push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; - push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; - push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; - }, ".."; - find sub { - push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; - push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; - push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; - push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; - }, "$SRCDIR/.." if "$SRCDIR" ne "."; - - open POTFILES, $POTFILES_in or die "$PROGRAM: there's no POTFILES.in!\n"; - @buf_potfiles = grep !/^(#|\s*$)/, ; - close POTFILES; - - foreach (@buf_potfiles) { - s/^\[.*]\s*//; - } - - print "Searching for missing translatable files...\n" if $VERBOSE; - - ## Check if we should ignore some found files, when - ## comparing with POTFILES.in - foreach my $ignore ("POTFILES.skip", "POTFILES.ignore") - { - (-s "$SRCDIR/$ignore") or next; - - if ("$ignore" eq "POTFILES.ignore") - { - print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n". - "content of this file to POTFILES.skip.\n"; - } - - print "Found $ignore: Ignoring files...\n" if $VERBOSE; - open FILE, "<$SRCDIR/$ignore" or die "ERROR: Failed to open $SRCDIR/$ignore!\n"; - - while () - { - push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/; - } - close FILE; - - @buf_potfiles_ignore_sorted = sort (@buf_potfiles_ignore); - } - - foreach my $file (@buf_i18n_plain) - { - my $in_comment = 0; - my $in_macro = 0; - - open FILE, "<$file"; - while () - { - # Handle continued multi-line comment. - if ($in_comment) - { - next unless s-.*\*/--; - $in_comment = 0; - } - - # Handle continued macro. - if ($in_macro) - { - $in_macro = 0 unless /\\$/; - next; - } - - # Handle start of macro (or any preprocessor directive). - if (/^\s*\#/) - { - $in_macro = 1 if /^([^\\]|\\.)*\\$/; - next; - } - - # Handle comments and quoted text. - while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy - { - my $match = $1; - if ($match eq "/*") - { - if (!s-/\*.*?\*/--) - { - s-/\*.*--; - $in_comment = 1; - } - } - elsif ($match eq "//") - { - s-//.*--; - } - else # ' or " - { - if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-) - { - warn "mismatched quotes at line $. in $file\n"; - s-$match.*--; - } - } - } - - if (/\w\.GetString *\(QUOTEDTEXT/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - ## Remove the first 3 chars and add newline - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - - ## C_ N_ Q_ and _ are the macros defined in gi8n.h - if (/[CNQ]?_ *\(QUOTEDTEXT/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - ## Remove the first 3 chars and add newline - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - } - close FILE; - } - - foreach my $file (@buf_i18n_xml) - { - open FILE, "<$file"; - - while () - { - # FIXME: share the pattern matching code with intltool-extract - if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - } - close FILE; - } - - foreach my $file (@buf_i18n_ini) - { - open FILE, "<$file"; - while () - { - if (/_(.*)=/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - } - close FILE; - } - - foreach my $file (@buf_i18n_xml_unmarked) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - } - - - @buf_allfiles_sorted = sort (@buf_allfiles); - @buf_potfiles_sorted = sort (@buf_potfiles); - - my %in2; - foreach (@buf_potfiles_sorted) - { - s#^$SRCDIR/../##; - s#^$SRCDIR/##; - $in2{$_} = 1; - } - - foreach (@buf_potfiles_ignore_sorted) - { - s#^$SRCDIR/../##; - s#^$SRCDIR/##; - $in2{$_} = 1; - } - - my @result; - - foreach (@buf_allfiles_sorted) - { - my $dummy = $_; - my $srcdir = $SRCDIR; - - $srcdir =~ s#^../##; - $dummy =~ s#^$srcdir/../##; - $dummy =~ s#^$srcdir/##; - $dummy =~ s#_build/##; - if (!exists($in2{$dummy})) - { - push @result, $dummy - } - } - - my @buf_potfiles_notexist; - - foreach (@buf_potfiles_sorted) - { - chomp (my $dummy = $_); - if ("$dummy" ne "" and !(-f "$SRCDIR/../$dummy" or -f "../$dummy")) - { - push @buf_potfiles_notexist, $_; - } - } - - ## Save file with information about the files missing - ## if any, and give information about this procedure. - if (@result + @buf_potfiles_notexist > 0) - { - if (@result) - { - print "\n" if $VERBOSE; - unlink "missing"; - open OUT, ">missing"; - print OUT @result; - close OUT; - warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n". - "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n"; - print STDERR @result, "\n"; - warn "If some of these files are left out on purpose then please add them to\n". - "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n". - "of left out files has been written in the current directory.\n"; - } - if (@buf_potfiles_notexist) - { - unlink "notexist"; - open OUT, ">notexist"; - print OUT @buf_potfiles_notexist; - close OUT; - warn "\n" if ($VERBOSE or @result); - warn "\e[1mThe following files do not exist anymore:\e[0m\n\n"; - warn @buf_potfiles_notexist, "\n"; - warn "Please remove them from POTFILES.in. A file \e[1m'notexist'\e[0m\n". - "containing this list of absent files has been written in the current directory.\n"; - } - } - - ## If there is nothing to complain about, notify the user - else { - print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE; - } -} - -sub Console_WriteError_InvalidOption -{ - ## Handle invalid arguments - print STDERR "Try `${PROGRAM} --help' for more information.\n"; - exit 1; -} - -sub isProgramInPath -{ - my ($file) = @_; - # If either a file exists, or when run it returns 0 exit status - return 1 if ((-x $file) or (system("$file --version >$devnull") == 0)); - return 0; -} - -sub isGNUGettextTool -{ - my ($file) = @_; - # Check that we are using GNU gettext tools - if (isProgramInPath ($file)) - { - my $version = `$file --version`; - return 1 if ($version =~ m/.*\(GNU .*\).*/); - } - return 0; -} - -sub GenerateHeaders -{ - my $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} || "intltool-extract"; - - ## Generate the .h header files, so we can allow glade and - ## xml translation support - if (! isProgramInPath ("$EXTRACT")) - { - print STDERR "\n *** The intltool-extract script wasn't found!" - ."\n *** Without it, intltool-update can not generate files.\n"; - exit; - } - else - { - open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n"; - - while () - { - chomp; - next if /^\[\s*encoding/; - - ## Find xml files in POTFILES.in and generate the - ## files with help from the extract script - - my $gettext_type= &POFile_DetermineType ($1); - - if (/\.($xml_support|$ini_support)$/ || /^\[/) - { - s/^\[[^\[].*]\s*//; - - my $filename = "../$_"; - - if ($VERBOSE) - { - system ($EXTRACT, "--update", "--srcdir=$SRCDIR", - "--type=$gettext_type", $filename); - } - else - { - system ($EXTRACT, "--update", "--type=$gettext_type", - "--srcdir=$SRCDIR", "--quiet", $filename); - } - } - } - close FILE; - } -} - -# -# Generate .pot file from POTFILES.in -# -sub GeneratePOTemplate -{ - my $XGETTEXT = $ENV{"XGETTEXT"} || "xgettext"; - my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || ''; - chomp $XGETTEXT; - - if (! isGNUGettextTool ("$XGETTEXT")) - { - print STDERR " *** GNU xgettext is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - print "Building $MODULE.pot...\n" if $VERBOSE; - - open INFILE, $POTFILES_in; - unlink "POTFILES.in.temp"; - open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing"); - - my $gettext_support_nonascii = 0; - - # checks for GNU gettext >= 0.12 - my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`; - if ($? == 0) - { - $gettext_support_nonascii = 1; - } - else - { - # urge everybody to upgrade gettext - print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n". - " strings. That means you should install a version of gettext\n". - " that supports non-ASCII strings (such as GNU gettext >= 0.12),\n". - " or have to let non-ASCII strings untranslated. (If there is any)\n"; - } - - my $encoding = "ASCII"; - my $forced_gettext_code; - my @temp_headers; - my $encoding_problem_is_reported = 0; - - while () - { - next if (/^#/ or /^\s*$/); - - chomp; - - my $gettext_code; - - if (/^\[\s*encoding:\s*(.*)\s*\]/) - { - $forced_gettext_code=$1; - } - elsif (/\.($xml_support|$ini_support)$/ || /^\[/) - { - s/^\[.*]\s*//; - print OUTFILE "../$_.h\n"; - push @temp_headers, "../$_.h"; - $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code); - } - else - { - print OUTFILE "$SRCDIR/../$_\n"; - $gettext_code = &TextFile_DetermineEncoding ("$SRCDIR/../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code); - } - - next if (! $gettext_support_nonascii); - - if (defined $forced_gettext_code) - { - $encoding=$forced_gettext_code; - } - elsif (defined $gettext_code and "$encoding" ne "$gettext_code") - { - if ($encoding eq "ASCII") - { - $encoding=$gettext_code; - } - elsif ($gettext_code ne "ASCII") - { - # Only report once because the message is quite long - if (! $encoding_problem_is_reported) - { - print STDERR "WARNING: You should use the same file encoding for all your project files,\n". - " but $PROGRAM thinks that most of the source files are in\n". - " $encoding encoding, while \"$_\" is (likely) in\n". - " $gettext_code encoding. If you are sure that all translatable strings\n". - " are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n". - " line to POTFILES.in:\n\n". - " [encoding: UTF-8]\n\n". - " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n". - "(such warning message will only be reported once.)\n"; - $encoding_problem_is_reported = 1; - } - } - } - } - - close OUTFILE; - close INFILE; - - unlink "$MODULE.pot"; - my @xgettext_argument=("$XGETTEXT", - "--add-comments", - "--directory\=.", - "--default-domain\=$MODULE", - "--flag\=g_strdup_printf:1:c-format", - "--flag\=g_string_printf:2:c-format", - "--flag\=g_string_append_printf:2:c-format", - "--flag\=g_error_new:3:c-format", - "--flag\=g_set_error:4:c-format", - "--flag\=g_markup_printf_escaped:1:c-format", - "--flag\=g_log:3:c-format", - "--flag\=g_print:1:c-format", - "--flag\=g_printerr:1:c-format", - "--flag\=g_printf:1:c-format", - "--flag\=g_fprintf:2:c-format", - "--flag\=g_sprintf:2:c-format", - "--flag\=g_snprintf:3:c-format", - "--flag\=g_scanner_error:2:c-format", - "--flag\=g_scanner_warn:2:c-format", - "--output\=$MODULE\.pot", - "--files-from\=\.\/POTFILES\.in\.temp"); - my $XGETTEXT_KEYWORDS = &FindPOTKeywords; - push @xgettext_argument, $XGETTEXT_KEYWORDS; - my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress; - push @xgettext_argument, "--msgid-bugs-address\=\"$MSGID_BUGS_ADDRESS\"" if $MSGID_BUGS_ADDRESS; - push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii); - push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS; - my $xgettext_command = join ' ', @xgettext_argument; - - # intercept xgettext error message - print "Running $xgettext_command\n" if $VERBOSE; - my $xgettext_error_msg = `$xgettext_command 2>\&1`; - my $command_failed = $?; - - unlink "POTFILES.in.temp"; - - print "Removing generated header (.h) files..." if $VERBOSE; - unlink foreach (@temp_headers); - print "done.\n" if $VERBOSE; - - if (! $command_failed) - { - if (! -e "$MODULE.pot") - { - print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE; - } - else - { - print "Wrote $MODULE.pot\n" if $VERBOSE; - } - } - else - { - if ($xgettext_error_msg =~ /--from-code/) - { - # replace non-ASCII error message with a more useful one. - print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n". - " string marked for translation. Please make sure that all strings marked\n". - " for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n". - " following line to POTFILES.in and rerun $PROGRAM:\n\n". - " [encoding: UTF-8]\n\n"; - } - else - { - print STDERR "$xgettext_error_msg"; - if (-e "$MODULE.pot") - { - # is this possible? - print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n". - " Please consult error message above if there is any.\n"; - } - else - { - print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n". - " error message above if there is any.\n"; - } - } - exit (1); - } -} - -sub POFile_Update -{ - -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n"; - - my $MSGMERGE = $ENV{"MSGMERGE"} || "msgmerge"; - my ($lang, $outfile) = @_; - - if (! isGNUGettextTool ("$MSGMERGE")) - { - print STDERR " *** GNU msgmerge is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE; - - my $infile = "$SRCDIR/$lang.po"; - $outfile = "$SRCDIR/$lang.po" if ($outfile eq ""); - - # I think msgmerge won't overwrite old file if merge is not successful - system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot"); -} - -sub Console_WriteError_NotExisting -{ - my ($file) = @_; - - ## Report error if supplied language file is non-existing - print STDERR "$PROGRAM: $file does not exist!\n"; - print STDERR "Try '$PROGRAM --help' for more information.\n"; - exit; -} - -sub GatherPOFiles -{ - my @po_files = glob ("./*.po"); - - @languages = map (&POFile_GetLanguage, @po_files); - - foreach my $lang (@languages) - { - $po_files_by_lang{$lang} = shift (@po_files); - } -} - -sub POFile_GetLanguage ($) -{ - s/^(.*\/)?(.+)\.po$/$2/; - return $_; -} - -sub Console_Write_TranslationStatus -{ - my ($lang, $output_file) = @_; - my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt"; - - if (! isGNUGettextTool ("$MSGFMT")) - { - print STDERR " *** GNU msgfmt is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - $output_file = "$SRCDIR/$lang.po" if ($output_file eq ""); - - system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file); -} - -sub Console_Write_CoverageReport -{ - my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt"; - - if (! isGNUGettextTool ("$MSGFMT")) - { - print STDERR " *** GNU msgfmt is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - &GatherPOFiles; - - foreach my $lang (@languages) - { - print STDERR "$lang: "; - &POFile_Update ($lang, ""); - } - - print STDERR "\n\n * Current translation support in $MODULE \n\n"; - - foreach my $lang (@languages) - { - print STDERR "$lang: "; - system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po"); - } -} - -sub SubstituteVariable -{ - my ($str) = @_; - - # always need to rewind file whenever it has been accessed - seek (CONF, 0, 0); - - # cache each variable. varhash is global to we can add - # variables elsewhere. - while () - { - if (/^(\w+)=(.*)$/) - { - ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/; - } - } - - if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) - { - my $rest = $3; - my $untouched = $1; - my $sub = ""; - # Ignore recursive definitions of variables - $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; - - return SubstituteVariable ("$untouched$sub$rest"); - } - - # We're using Perl backticks ` and "echo -n" here in order to - # expand any shell escapes (such as backticks themselves) in every variable - return echo_n ($str); -} - -sub CONF_Handle_Open -{ - my $base_dirname = getcwd(); - $base_dirname =~ s@.*/@@; - - my ($conf_in, $src_dir); - - if ($base_dirname =~ /^po(-.+)?$/) - { - if (-f "Makevars") - { - my $makefile_source; - - local (*IN); - open (IN, ") - { - if (/^top_builddir[ \t]*=/) - { - $src_dir = $_; - $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; - - chomp $src_dir; - if (-f "$src_dir" . "/configure.ac") { - $conf_in = "$src_dir" . "/configure.ac" . "\n"; - } else { - $conf_in = "$src_dir" . "/configure.in" . "\n"; - } - last; - } - } - close IN; - - $conf_in || die "Cannot find top_builddir in Makevars."; - } - elsif (-f "$SRCDIR/../configure.ac") - { - $conf_in = "$SRCDIR/../configure.ac"; - } - elsif (-f "$SRCDIR/../configure.in") - { - $conf_in = "$SRCDIR/../configure.in"; - } - else - { - my $makefile_source; - - local (*IN); - open (IN, ") - { - if (/^top_srcdir[ \t]*=/) - { - $src_dir = $_; - $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; - - chomp $src_dir; - $conf_in = "$src_dir" . "/configure.in" . "\n"; - - last; - } - } - close IN; - - $conf_in || die "Cannot find top_srcdir in Makefile."; - } - - open (CONF, "<$conf_in"); - } - else - { - print STDERR "$PROGRAM: Unable to proceed.\n" . - "Make sure to run this script inside the po directory.\n"; - exit; - } -} - -sub FindPackageName -{ - my $version; - my $domain = &FindMakevarsDomain; - my $name = $domain || "untitled"; - - &CONF_Handle_Open; - - my $conf_source; { - local (*IN); - open (IN, "<&CONF") || return $name; - seek (IN, 0, 0); - local $/; # slurp mode - $conf_source = ; - close IN; - } - - # priority for getting package name: - # 1. GETTEXT_PACKAGE - # 2. first argument of AC_INIT (with >= 2 arguments) - # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument) - - # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m - # the \s makes this not work, why? - if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m) - { - ($name, $version) = ($1, $2); - $name =~ s/[\[\]\s]//g; - $version =~ s/[\[\]\s]//g; - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); - } - - if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) - { - ($name, $version) = ($1, $2); - $name =~ s/[\[\]\s]//g; - $version =~ s/[\[\]\s]//g; - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); - } - - # \s makes this not work, why? - $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m; - - # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value - # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables. - $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g; - - $name = $domain if $domain; - - $name = SubstituteVariable ($name); - $name =~ s/^["'](.*)["']$/$1/; - - return $name if $name; -} - - -sub FindPOTKeywords -{ - - my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_"; - my $varname = "XGETTEXT_OPTIONS"; - my $make_source; { - local (*IN); - open (IN, "; - close IN; - } - - # unwrap lines split with a trailing \ - $make_source =~ s/\\ $ \n/ /mxg; - $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m; - - return $keywords; -} - -sub FindMakevarsDomain -{ - - my $domain = ""; - my $makevars_source; { - local (*IN); - open (IN, "; - close IN; - } - - $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m; - $domain =~ s/^\s+//; - $domain =~ s/\s+$//; - - return $domain; -} - -sub FindMakevarsBugAddress -{ - - my $address = ""; - my $makevars_source; { - local (*IN); - open (IN, "; - close IN; - } - - $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m; - $address =~ s/^\s+//; - $address =~ s/\s+$//; - - return $address; -} diff -Nru gitg-0.0.3/ltmain.sh gitg-0.0.6/ltmain.sh --- gitg-0.0.3/ltmain.sh 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/ltmain.sh 2010-02-21 09:56:06.000000000 +0000 @@ -1,6 +1,6 @@ # Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.4 +# ltmain.sh (GNU libtool) 2.2.6 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. @@ -65,7 +65,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.4 Debian-2.2.4-0ubuntu4 +# $progname: (GNU libtool) 2.2.6 Debian-2.2.6a-4 # automake: $automake_version # autoconf: $autoconf_version # @@ -73,9 +73,9 @@ PROGRAM=ltmain.sh PACKAGE=libtool -VERSION="2.2.4 Debian-2.2.4-0ubuntu4" +VERSION="2.2.6 Debian-2.2.6a-4" TIMESTAMP="" -package_revision=1.2976 +package_revision=1.3012 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -805,7 +805,7 @@ case $host in - *cygwin* | *mingw* | *pw32*) + *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; @@ -893,8 +893,9 @@ # determined imposters. func_lalib_p () { - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file @@ -907,7 +908,7 @@ func_lalib_unsafe_p () { lalib_p=no - if test -r "$1" && exec 5<&0 <"$1"; then + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line @@ -1275,7 +1276,7 @@ # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in - cygwin* | mingw* | pw32* | os2*) + cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac @@ -2046,7 +2047,7 @@ 'exit $?' tstripme="$stripme" case $host_os in - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" @@ -2152,7 +2153,7 @@ # Do a test to see if this is really a libtool program. case $host in - *cygwin*|*mingw*) + *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result @@ -2358,7 +2359,7 @@ $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in - *cygwin* | *mingw* ) + *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; @@ -2370,7 +2371,7 @@ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin | *mingw* ) + *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -2426,7 +2427,7 @@ } lt_dlsymlist; " case $host in - *cygwin* | *mingw* ) + *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation @@ -2512,7 +2513,7 @@ # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in - *cygwin* | *mingw* ) + *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` @@ -2691,25 +2692,16 @@ -# func_emit_wrapper arg +# func_emit_wrapper_part1 [arg=no] # -# emit a libtool wrapper script on stdout -# don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variable -# set therein. -# -# arg is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the '.lib' directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () +# Emit the first part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part1 () { - func_emit_wrapper_arg1=no + func_emit_wrapper_part1_arg1=no if test -n "$1" ; then - func_emit_wrapper_arg1=$1 + func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ @@ -2794,10 +2786,27 @@ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done +" +} +# end: func_emit_wrapper_part1 + +# func_emit_wrapper_part2 [arg=no] +# +# Emit the second part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part2 () +{ + func_emit_wrapper_part2_arg1=no + if test -n "$1" ; then + func_emit_wrapper_part2_arg1=$1 + fi + + $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2888,7 +2897,7 @@ " case $host in # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) + *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " @@ -2914,7 +2923,207 @@ fi\ " } -# end: func_emit_wrapper +# end: func_emit_wrapper_part2 + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=no + if test -n "$1" ; then + func_emit_wrapper_arg1=$1 + fi + + # split this up so that func_emit_cwrapperexe_src + # can call each part independently. + func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" + func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" +} + + +# func_to_host_path arg +# +# Convert paths to host format when used with build tools. +# Intended for use with "native" mingw (where libtool itself +# is running under the msys shell), or in the following cross- +# build environments: +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# where wine is equipped with the `winepath' executable. +# In the native mingw case, the (msys) shell automatically +# converts paths for any non-msys applications it launches, +# but that facility isn't available from inside the cwrapper. +# Similar accommodations are necessary for $host mingw and +# $build cygwin. Calling this function does no harm for other +# $host/$build combinations not listed above. +# +# ARG is the path (on $build) that should be converted to +# the proper representation for $host. The result is stored +# in $func_to_host_path_result. +func_to_host_path () +{ + func_to_host_path_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + case $build in + *mingw* ) # actually, msys + # awkward: cmd appends spaces to result + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_path_tmp1=`( cmd //c echo "$1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_path_tmp1=`cygpath -w "$1"` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # Unfortunately, winepath does not exit with a non-zero + # error code, so we are forced to check the contents of + # stdout. On the other hand, if the command is not + # found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both + # error code of zero AND non-empty stdout, which explains + # the odd construction: + func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + else + # Allow warning below. + func_to_host_path_result="" + fi + ;; + esac + if test -z "$func_to_host_path_result" ; then + func_error "Could not determine host path corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_path_result="$1" + fi + ;; + esac + fi +} +# end: func_to_host_path + +# func_to_host_pathlist arg +# +# Convert pathlists to host format when used with build tools. +# See func_to_host_path(), above. This function supports the +# following $build/$host combinations (but does no harm for +# combinations not listed here): +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# +# Path separators are also converted from $build format to +# $host format. If ARG begins or ends with a path separator +# character, it is preserved (but converted to $host format) +# on output. +# +# ARG is a pathlist (on $build) that should be converted to +# the proper representation on $host. The result is stored +# in $func_to_host_pathlist_result. +func_to_host_pathlist () +{ + func_to_host_pathlist_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_to_host_pathlist_tmp2="$1" + # Once set for this call, this variable should not be + # reassigned. It is used in tha fallback case. + func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e 's|^:*||' -e 's|:*$||'` + case $build in + *mingw* ) # Actually, msys. + # Awkward: cmd appends spaces to result. + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # unfortunately, winepath doesn't convert pathlists + func_to_host_pathlist_result="" + func_to_host_pathlist_oldIFS=$IFS + IFS=: + for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do + IFS=$func_to_host_pathlist_oldIFS + if test -n "$func_to_host_pathlist_f" ; then + func_to_host_path "$func_to_host_pathlist_f" + if test -n "$func_to_host_path_result" ; then + if test -z "$func_to_host_pathlist_result" ; then + func_to_host_pathlist_result="$func_to_host_path_result" + else + func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" + fi + fi + fi + IFS=: + done + IFS=$func_to_host_pathlist_oldIFS + ;; + esac + if test -z "$func_to_host_pathlist_result" ; then + func_error "Could not determine the host path(s) corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This may break if $1 contains DOS-style drive + # specifications. The fix is not to complicate the expression + # below, but for the user to provide a working wine installation + # with winepath so that path translation in the cross-to-mingw + # case works properly. + lt_replace_pathsep_nix_to_dos="s|:|;|g" + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_replace_pathsep_nix_to_dos"` + fi + # Now, add the leading and trailing path separators back + case "$1" in + :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" + ;; + esac + case "$1" in + *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" + ;; + esac + ;; + esac + fi +} +# end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout @@ -2951,6 +3160,12 @@ # include # ifdef __CYGWIN__ # include +# define HAVE_SETENV +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif # endif #endif #include @@ -3057,29 +3272,105 @@ int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_opt_process_env_set (const char *arg); +void lt_opt_process_env_prepend (const char *arg); +void lt_opt_process_env_append (const char *arg); +int lt_split_name_value (const char *arg, char** name, char** value); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); -static const char *script_text = +static const char *script_text_part1 = EOF - func_emit_wrapper yes | + func_emit_wrapper_part1 yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ "/' -e 's/$/\\n"/' + echo ";" + cat </dev/null || echo $SHELL` - case $lt_newargv0 in - *.exe | *.EXE) ;; - *) lt_newargv0=$lt_newargv0.exe ;; - esac - ;; - * ) lt_newargv0=$SHELL ;; - esac - fi - - cat <"))); + for (i = 0; i < newargc; i++) { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, newargz[i])); + LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) - cat <"), + (value ? value : ""))); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +int +lt_split_name_value (const char *arg, char** name, char** value) +{ + const char *p; + int len; + if (!arg || !*arg) + return 1; + + p = strchr (arg, (int)'='); + + if (!p) + return 1; + + *value = xstrdup (++p); + + len = strlen (arg) - strlen (*value); + *name = XMALLOC (char, len); + strncpy (*name, arg, len-1); + (*name)[len - 1] = '\0'; + + return 0; +} + +void +lt_opt_process_env_set (const char *arg) +{ + char *name = NULL; + char *value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); + } + + lt_setenv (name, value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_prepend (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_append (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 1); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + (name ? name : ""), + (value ? value : ""))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + (name ? name : ""), + (value ? value : ""))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + + EOF } # end: func_emit_cwrapperexe_src @@ -3515,7 +4033,7 @@ { $opt_debug case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra @@ -3959,6 +4477,13 @@ -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result + if test -z "$dir"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -3977,14 +4502,16 @@ ;; esac case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; + ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; @@ -3995,7 +4522,7 @@ -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4072,7 +4599,7 @@ -no-install) case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" @@ -4820,19 +5347,19 @@ # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done continue fi # $pass = conv @@ -5032,7 +5559,7 @@ if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in - *cygwin* | *mingw*) + *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no @@ -5102,7 +5629,7 @@ elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw*) + *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" @@ -5369,6 +5896,7 @@ if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do + path= case $deplib in -L*) path="$deplib" ;; *.la) @@ -5884,7 +6412,7 @@ tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in - *.$objext) + *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then @@ -5955,7 +6483,7 @@ if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) @@ -6454,7 +6982,7 @@ orig_export_symbols= case $host_os in - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then @@ -7079,14 +7607,16 @@ esac fi case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; @@ -7156,6 +7686,10 @@ wrappers_required=no fi ;; + *cegcc) + # Disable wrappers for cegcc, we are cross compiling anyway. + wrappers_required=no + ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no @@ -7308,11 +7842,10 @@ func_emit_cwrapperexe_src > $cwrappersource - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper @@ -7597,7 +8130,7 @@ # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file diff -Nru gitg-0.0.3/m4/intltool.m4 gitg-0.0.6/m4/intltool.m4 --- gitg-0.0.3/m4/intltool.m4 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/m4/intltool.m4 2010-02-21 09:56:06.000000000 +0000 @@ -75,25 +75,25 @@ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -AC_SUBST(INTLTOOL_DESKTOP_RULE) -AC_SUBST(INTLTOOL_DIRECTORY_RULE) -AC_SUBST(INTLTOOL_KEYS_RULE) -AC_SUBST(INTLTOOL_PROP_RULE) -AC_SUBST(INTLTOOL_OAF_RULE) -AC_SUBST(INTLTOOL_PONG_RULE) -AC_SUBST(INTLTOOL_SERVER_RULE) -AC_SUBST(INTLTOOL_SHEET_RULE) -AC_SUBST(INTLTOOL_SOUNDLIST_RULE) -AC_SUBST(INTLTOOL_UI_RULE) -AC_SUBST(INTLTOOL_XAM_RULE) -AC_SUBST(INTLTOOL_KBD_RULE) -AC_SUBST(INTLTOOL_XML_RULE) -AC_SUBST(INTLTOOL_XML_NOMERGE_RULE) -AC_SUBST(INTLTOOL_CAVES_RULE) -AC_SUBST(INTLTOOL_SCHEMAS_RULE) -AC_SUBST(INTLTOOL_THEME_RULE) -AC_SUBST(INTLTOOL_SERVICE_RULE) -AC_SUBST(INTLTOOL_POLICY_RULE) +_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) @@ -110,12 +110,17 @@ AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi -AC_PATH_PROG(INTLTOOL_PERL, [perl]) +AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found; required for intltool]) + AC_MSG_ERROR([perl not found]) fi -if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then - AC_MSG_ERROR([perl 5.x required for intltool]) +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]) @@ -171,7 +176,7 @@ dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" ]; then + 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" @@ -193,6 +198,17 @@ ])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: diff -Nru gitg-0.0.3/m4/libtool.m4 gitg-0.0.6/m4/libtool.m4 --- gitg-0.0.3/m4/libtool.m4 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/m4/libtool.m4 2010-02-21 09:56:06.000000000 +0000 @@ -380,12 +380,12 @@ # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_quote(m4_if([$2], [], - m4_quote(lt_decl_tag_varnames), - m4_quote(m4_shift($@)))), - m4_split(m4_normalize(m4_quote(_LT_TAGS))))]) -m4_define([_lt_decl_varnames_tagged], [lt_combine([$1], [$2], [_], $3)]) +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) @@ -945,10 +945,10 @@ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on + darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? + # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; @@ -990,7 +990,11 @@ _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - if test "$GCC" = "yes"; then + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" @@ -1512,7 +1516,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -1680,10 +1684,6 @@ # endif #endif -#ifdef __cplusplus -extern "C" void exit (int); -#endif - void fnord() { int i=42;} int main () { @@ -1699,7 +1699,7 @@ else puts (dlerror ()); - exit (status); + return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then @@ -1738,7 +1738,7 @@ lt_cv_dlopen_self=yes ;; - mingw* | pw32*) + mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; @@ -2035,6 +2035,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], @@ -2199,14 +2200,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2229,7 +2230,7 @@ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; - mingw*) + mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` @@ -2667,7 +2668,7 @@ version_type=linux need_lib_prefix=no need_version=no - library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -2691,7 +2692,7 @@ if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi - + if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi @@ -2968,6 +2969,7 @@ # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' @@ -3018,6 +3020,12 @@ fi ;; +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; @@ -3329,7 +3337,7 @@ aix*) symcode='[[BCDT]]' ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) @@ -3575,7 +3583,7 @@ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; - mingw* | cygwin* | os2* | pw32*) + mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -3602,10 +3610,11 @@ fi ;; hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. case $host_cpu in - hppa*64*|ia64*) + hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' @@ -3703,12 +3712,19 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; - icpc* | ecpc* ) - # Intel C++ + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -3874,7 +3890,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -3890,10 +3906,11 @@ ;; hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. case $host_cpu in - hppa*64*|ia64*) + hppa*64*) # +Z the default ;; *) @@ -3943,7 +3960,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], @@ -3974,11 +3991,25 @@ linux* | k*bsd*-gnu) case $cc_basename in - icc* | ecc* | ifort*) + # old Intel for x86_64 which still supported -KPIC. + ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -4160,7 +4191,7 @@ pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) @@ -4215,7 +4246,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -4230,6 +4261,9 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -4302,7 +4336,7 @@ fi ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' @@ -4368,6 +4402,9 @@ tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; @@ -4600,6 +4637,7 @@ fi fi + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes @@ -4654,7 +4692,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -4758,7 +4796,7 @@ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' @@ -5543,6 +5581,7 @@ fi fi + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. @@ -5601,7 +5640,7 @@ esac ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' @@ -6986,6 +7025,18 @@ ]) +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates diff -Nru gitg-0.0.3/m4/ltoptions.m4 gitg-0.0.6/m4/ltoptions.m4 --- gitg-0.0.3/m4/ltoptions.m4 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/m4/ltoptions.m4 2010-02-21 09:56:06.000000000 +0000 @@ -125,7 +125,7 @@ [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) diff -Nru gitg-0.0.3/m4/ltsugar.m4 gitg-0.0.6/m4/ltsugar.m4 --- gitg-0.0.3/m4/ltsugar.m4 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/m4/ltsugar.m4 2010-02-21 09:56:06.000000000 +0000 @@ -1,13 +1,13 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 # # 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 ltsugar.m4 +# serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) @@ -63,14 +63,14 @@ # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], -[m4_if([$2], [], [], - [m4_if([$4], [], [], - [lt_join(m4_quote(m4_default([$1], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_prefix, [$2], - [m4_foreach(_Lt_suffix, lt_car([m4_shiftn(3, $@)]), - [_Lt_prefix[]$3[]_Lt_suffix ])])))))])])dnl -]) +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) diff -Nru gitg-0.0.3/m4/ltversion.m4 gitg-0.0.6/m4/ltversion.m4 --- gitg-0.0.3/m4/ltversion.m4 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/m4/ltversion.m4 2010-02-21 09:56:06.000000000 +0000 @@ -9,15 +9,15 @@ # Generated from ltversion.in. -# serial 2976 ltversion.m4 +# serial 3012 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.4]) -m4_define([LT_PACKAGE_REVISION], [1.2976]) +m4_define([LT_PACKAGE_VERSION], [2.2.6]) +m4_define([LT_PACKAGE_REVISION], [1.3012]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.4' -macro_revision='1.2976' +[macro_version='2.2.6' +macro_revision='1.3012' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -Nru gitg-0.0.3/MAINTAINERS gitg-0.0.6/MAINTAINERS --- gitg-0.0.3/MAINTAINERS 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/MAINTAINERS 2009-04-22 21:23:39.000000000 +0100 @@ -0,0 +1,5 @@ + +Jesse van den Kieboom +E-mail: jessevdk@gnome.org +Userid: jessevdk + diff -Nru gitg-0.0.3/Makefile.am gitg-0.0.6/Makefile.am --- gitg-0.0.3/Makefile.am 2009-03-01 08:53:38.000000000 +0000 +++ gitg-0.0.6/Makefile.am 2010-01-24 12:17:15.000000000 +0000 @@ -9,10 +9,31 @@ EXTRA_DIST = \ autogen.sh \ + MAINTAINERS \ intltool-extract.in \ intltool-merge.in \ intltool-update.in +MAINTAINERCLEANFILES = \ + aclocal.m4 \ + config.guess \ + config.h.in \ + config.sub \ + depcomp \ + install-sh \ + ltmain.sh \ + missing \ + mkinstalldirs \ + m4/gnome-doc-utils.m4 \ + m4/gtk-doc.m4 \ + m4/intltool.m4 \ + m4/libtool.m4 \ + m4/ltoptions.m4 \ + m4/ltsugar.m4 \ + m4/ltversion.m4 \ + m4/lt~obsolete.m4 \ + `find "$(srcdir)" -type f -name Makefile.in -print` + bundle: rm -rf "$(bundledir)"; mkdir "$(bundledir)"; \ rm -rf gitg-$(PACKAGE_VERSION).zip; \ @@ -31,3 +52,5 @@ fi .PHONY: bundle generate-changelog + +-include $(top_srcdir)/git.mk diff -Nru gitg-0.0.3/Makefile.in gitg-0.0.6/Makefile.in --- gitg-0.0.3/Makefile.in 2009-04-23 22:18:00.000000000 +0100 +++ gitg-0.0.6/Makefile.in 2010-02-21 09:56:11.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. @@ -15,8 +16,9 @@ @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@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 @@ -49,6 +51,13 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -60,6 +69,9 @@ ps-recursive uninstall-recursive 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) @@ -67,9 +79,34 @@ distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.bz2 distuninstallcheck_listfiles = find . -type f -print @@ -78,6 +115,7 @@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -122,29 +160,10 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -162,6 +181,7 @@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ @@ -172,6 +192,7 @@ 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@ @@ -237,6 +258,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gitg data po @@ -247,10 +269,31 @@ EXTRA_DIST = \ autogen.sh \ + MAINTAINERS \ intltool-extract.in \ intltool-merge.in \ intltool-update.in +MAINTAINERCLEANFILES = \ + aclocal.m4 \ + config.guess \ + config.h.in \ + config.sub \ + depcomp \ + install-sh \ + ltmain.sh \ + missing \ + mkinstalldirs \ + m4/gnome-doc-utils.m4 \ + m4/gtk-doc.m4 \ + m4/intltool.m4 \ + m4/libtool.m4 \ + m4/ltoptions.m4 \ + m4/ltsugar.m4 \ + m4/ltversion.m4 \ + m4/lt~obsolete.m4 \ + `find "$(srcdir)" -type f -name Makefile.in -print` + all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -261,15 +304,15 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ - cd $(srcdir) && $(AUTOMAKE) --gnu \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -285,9 +328,10 @@ $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) + $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ @@ -299,7 +343,7 @@ @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ @@ -313,7 +357,7 @@ -rm -rf .libs _libs distclean-libtool: - -rm -f libtool + -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -339,7 +383,7 @@ else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ @@ -373,16 +417,16 @@ else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(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" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -390,14 +434,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(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) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -409,7 +453,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ @@ -418,36 +462,41 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + 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) - tags=; \ 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)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(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) + test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -463,29 +512,44 @@ 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 -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + 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="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ @@ -493,11 +557,12 @@ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) + || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) @@ -509,6 +574,10 @@ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) @@ -537,6 +606,8 @@ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ @@ -548,9 +619,11 @@ 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-$$$$/" \ - && cd $(distdir)/_build \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ @@ -572,13 +645,15 @@ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + && $(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: - @cd $(distuninstallcheck_dir) \ + @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ @@ -620,11 +695,13 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am @@ -641,6 +718,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -649,18 +728,28 @@ 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 @@ -683,14 +772,14 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip +.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 \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ - distcheck distclean distclean-generic distclean-hdr \ + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -721,6 +810,9 @@ fi .PHONY: bundle generate-changelog + +-include $(top_srcdir)/git.mk + # 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: diff -Nru gitg-0.0.3/missing gitg-0.0.6/missing --- gitg-0.0.3/missing 2009-04-23 22:17:59.000000000 +0100 +++ gitg-0.0.6/missing 2010-02-21 09:56:10.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2006-05-10.23 +scriptversion=2009-04-28.21; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. +# 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 @@ -18,9 +18,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# 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 @@ -89,6 +87,9 @@ 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 $? ;; @@ -106,15 +107,22 @@ 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). +# the program). This is about non-GNU programs, so use $1 not +# $program. case $1 in - lex|yacc) + lex*|yacc*) # Not GNU programs, they don't have --version. ;; - tar) + tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 @@ -138,7 +146,7 @@ # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. -case $1 in +case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if @@ -148,7 +156,7 @@ touch aclocal.m4 ;; - autoconf) + autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the @@ -157,7 +165,7 @@ touch configure ;; - autoheader) + autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want @@ -187,7 +195,7 @@ while read f; do touch "$f"; done ;; - autom4te) + autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the @@ -210,7 +218,7 @@ fi ;; - bison|yacc) + 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 @@ -240,7 +248,7 @@ fi ;; - lex|flex) + 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 @@ -263,7 +271,7 @@ fi ;; - help2man) + 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 @@ -277,11 +285,11 @@ else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" - exit 1 + exit $? fi ;; - makeinfo) + 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 @@ -310,7 +318,7 @@ touch $file ;; - tar) + tar*) shift # We have already tried tar in the generic part. @@ -363,5 +371,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff -Nru gitg-0.0.3/mkinstalldirs gitg-0.0.6/mkinstalldirs --- gitg-0.0.3/mkinstalldirs 2009-04-23 22:18:00.000000000 +0100 +++ gitg-0.0.6/mkinstalldirs 2010-02-21 09:56:11.000000000 +0000 @@ -1,7 +1,7 @@ #! /bin/sh # mkinstalldirs --- make directory hierarchy -scriptversion=2006-05-11.19 +scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 @@ -157,5 +157,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff -Nru gitg-0.0.3/NEWS gitg-0.0.6/NEWS --- gitg-0.0.3/NEWS 2009-04-23 22:17:10.000000000 +0100 +++ gitg-0.0.6/NEWS 2010-02-21 09:55:07.000000000 +0000 @@ -1,3 +1,50 @@ += gitg 0.0.6 = +Version 0.0.6 was released on 2010-02-21 + +== Features == + * Added support for opening gitg:// uris + * Added select commit on load + * Added DND for revisions (treeish, text, uri) + * Added cherry-picking + * Show only local branches + * Added horizontal layout mode + * Support for XDS DND + * Multiple selection stage/unstage/revert/ignore + +== Bug fixes == + * Plugged several memory leaks + * Correct line rendering for diffs + * Diff subheader visibility + += gitg 0.0.5 = +Version 0.0.5 was released on 2009-08-29 + +== Features == + * Rename branch (Paolo Borelli) + +== Bug fixes == + * Show all files in 'Tree' list (Paolo Borelli) + * Crasher on dropping stash items (Vitaliy Ischenko) + * Less confusing 'git push' context menu + * Wrong order in merging local branches + * Use commitEncoding in commit messages + += gitg 0.0.4 = +Version 0.0.4 was released on 2009-07-05 + +== Features == + * Manage remotes + * Manage user name and e-mail global and repository specific + * Checkout local branches + * Create new local branch from remote branch + * Rebase/merge remote and local branches by drag-and-drop + * Apply/remove stash items (applying can be done by drag-and-drop) + * Push local branch to remote branch using drag-and-drop + * Create/remove tags + +== Bug fixes == + * Crasher bug in revision tree view selection change + = gitg 0.0.3 = Version 0.0.3 was released on 2009-04-23 diff -Nru gitg-0.0.3/po/da.po gitg-0.0.6/po/da.po --- gitg-0.0.3/po/da.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/da.po 2010-02-21 09:16:23.000000000 +0000 @@ -0,0 +1,995 @@ +# Danish translation of gitg. +# Copyright (C) 2009 gitg's COPYRIGHT HOLDER. +# This file is distributed under the same license as the gitg package. +# Joe Hansen , 2009, 2010. +# Korrekturlæst Lars Christian Jensen 6. juni 2009. +# Korrekturlæst Ask 26. januar 2010. +# +# commit -> integrer +# staged -> igangsat +# Der er ikke anvendt accenter. +# Engelske udtryk er indsat i parentes udvalgte steder, da de ofte er kendt +# af teknikfolk. +# +msgid "" +msgstr "" +"Project-Id-Version: gitg master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-27 22:33+0100\n" +"PO-Revision-Date: 2010-01-26 13:01+01:00\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../data/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Arkivbrowseren Git" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:181 +#: ../gitg/gitg-window.c:1238 ../gitg/gitg-window.c:1251 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "Kolonne hvor højre margen er vist" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Filterændringer under søgning" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" +"Indstilling som indikerer at en inaktiv bane bør foldes sammen. Gyldige " +"værdier er 0-4, hvor 0 indikerer 'tidlig' og 4 indikerer 'sent'." + +#: ../data/gitg.schemas.in.h:4 +msgid "" +"Setting that indicates whether to show the history in topological order." +msgstr "" + +#: ../data/gitg.schemas.in.h:5 +msgid "Setting that sets the orientation layout of the main view." +msgstr "" + +#: ../data/gitg.schemas.in.h:6 +msgid "Show History in Topological Order" +msgstr "" + +#: ../data/gitg.schemas.in.h:7 +msgid "Show Main View in Vertical Layout" +msgstr "" + +# (man skriver sædvanligvis en besked når man integrerer, såsom "Fixede +# fejl nr. #87") +#: ../data/gitg.schemas.in.h:8 +msgid "Show Right Margin in Commit Message View" +msgstr "Vis højre margen med integreringsbesked" + +#: ../data/gitg.schemas.in.h:9 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" +"Vis en højre margenmarkør i med integreringsbesked. Dette kan bruges til " +"nemt at se hvor en integrer besked skal opbrydes ved en specifik kolonne." + +# Eftersom det er en scemas-fil og derfor er til gconf, skal +# valgmuligheden TRUE ikke oversættes +#: ../data/gitg.schemas.in.h:10 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" +"Kolonne hvor den højre margen er vist, hvis indstillingen højre margen er " +"angivet som TRUE." + +#: ../data/gitg.schemas.in.h:11 +msgid "The command to handle GITG scheme URLs" +msgstr "" + +#: ../data/gitg.schemas.in.h:12 +msgid "The command to handle GITG scheme URLs." +msgstr "" + +#: ../data/gitg.schemas.in.h:13 +msgid "When to Collapse Inactive Lanes" +msgstr "Hvornår inaktive baner skal foldes sammen" + +#: ../data/gitg.schemas.in.h:14 +msgid "Whether command to handle GITG scheme URLs is enabled" +msgstr "" + +#: ../data/gitg.schemas.in.h:15 +msgid "Whether command to handle GITG scheme URLs is enabled." +msgstr "" + +#: ../data/gitg.schemas.in.h:16 +msgid "Whether command to handle GITG scheme URLs needs a terminal" +msgstr "" + +#: ../data/gitg.schemas.in.h:17 +msgid "Whether command to handle GITG scheme URLs needs a terminal." +msgstr "" + +#: ../data/gitg.schemas.in.h:18 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" +"Hvorvidt søgning filtrerer ændringerne i historikken i steden for at gå til " +"det første hit." + +# Måske: Vis programmets versionsnummer +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Vis programmets version" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "Start gitg i integreringstilstand" + +#: ../gitg/gitg.c:54 +#, fuzzy +msgid "Select commit after loading the repository" +msgstr "Begynd indlæsning af arkiv" + +#: ../gitg/gitg.c:64 +msgid "- git repository viewer" +msgstr "- arkivviseren git" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "Kan ikke vise filindhold som tekst" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "Du skal først igangsætte nogle ændringer før du integrerer" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "Indtast venligst en integreringstekst før du integrerer" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" +"Dit brugernavn eller e-post kunne ikke indhentes til brug for afslutbeskeden" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "Noget gik galt mens du integrerede" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "Fortryd fejl" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "Er du sikker på, at du ønsker at fortryde disse ændringer?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "Fortrydelse af ændringer er endelig og kan ikke gøres om" + +# godt nok i tvivl her (igangsatte, trin, etape måske arrangerede ændringer) +#: ../gitg/gitg-repository.c:606 +msgid "Staged changes" +msgstr "Igangsatte ændringer" + +#: ../gitg/gitg-repository.c:608 +msgid "Unstaged changes" +msgstr "Ændringer der ikke er igangsat" + +#: ../gitg/gitg-repository.c:1235 +msgid "Not a valid git repository" +msgstr "Ikke et gyldigt gitarkiv" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "(Tom)" + +#: ../gitg/gitg-window.c:430 +msgid "Select branch" +msgstr "Vælg gren" + +#: ../gitg/gitg-window.c:493 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Skub (push) lokal gren <%s> til ekstern gren <%s>" + +#: ../gitg/gitg-window.c:500 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "Flet/omplacer (merge/rebase) lokal gren <%s> med/på lokal gren <%s>" + +#: ../gitg/gitg-window.c:507 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "Flet/omplacer (merge/rebase) lokal gren <%s> med/på ekstern gren <%s>" + +# hvad er stash her (hemmeligt lager)? +# Ja, mon ikke det er noget med at gemme noget væk til senere. Jeg vil +# tro din oversættelse er god, men jeg kunne måske godt tænke mig at at +# stash blev skrevet ind i parentes. +#: ../gitg/gitg-window.c:514 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Anvend lager (stash) på lokal gren <%s>" + +#: ../gitg/gitg-window.c:576 +#, c-format +msgid "Cherry-pick revision on <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:840 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "Indlæste %d ændringer i %.2fs" + +#: ../gitg/gitg-window.c:860 +#, c-format +msgid "Loading %d revisions..." +msgstr "Indlæser %d ændringer..." + +#: ../gitg/gitg-window.c:869 +msgid "Could not find git repository" +msgstr "Kunne ikke finde gitarkiv" + +#: ../gitg/gitg-window.c:1171 +#, fuzzy +msgid "Local branches" +msgstr "Alle grene" + +#: ../gitg/gitg-window.c:1192 +msgid "All branches" +msgstr "Alle grene" + +#: ../gitg/gitg-window.c:1267 +msgid "Begin loading repository" +msgstr "Begynd indlæsning af arkiv" + +#: ../gitg/gitg-window.c:1451 +msgid "Open git repository" +msgstr "Åbn gitarkiv" + +#: ../gitg/gitg-window.c:1572 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "gitg er en læser til gitarkiver for gtk'/GNOME" + +#: ../gitg/gitg-window.c:1573 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" +"Dette program er fri software. Du kan redistribuere og/eller modificere\n" +"det under de betingelser som er angivet i GNU General Public License,\n" +"som udgivet af Free Software Foundation. Enten version 2 af licensen\n" +"eller (efter eget valg) enhver senere version.\n" +"\n" +"Dette program distribueres i håb om, at det vil vise sig nyttigt, men\n" +"UDEN NOGEN FORM FOR GARANTI, uden selv de underforståede garantier\n" +"omkring SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Yderligere\n" +"detaljer kan læses i GNU General Public License.\n" +"\n" +"Du bør have modtaget en kopi af GNU General Public License sammen med\n" +"dette program. Hvis ikke, så skriv til the Free Software Foundation,\n" +"Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA." + +#: ../gitg/gitg-window.c:2040 +msgid "new" +msgstr "ny" + +#: ../gitg/gitg-window.c:2148 ../gitg/gitg-window.c:2187 +#, c-format +msgid "New local branch <%s>" +msgstr "Ny lokal gren <%s>" + +#: ../gitg/gitg-window.c:2160 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Fjern ekstern gren" + +# Undersøg arbejdskopi +# Checkout betyder at man henter en kopi af en bestemt gren. Jeg vil +# foreslå en fordanskning af det engelske "Tjek arbejdskopi ud" +# Ville det så ikke være bedre med +# Hent arbejdskopi +# (hvis det reelt er det der sker?) +#: ../gitg/gitg-window.c:2165 +msgid "Checkout working copy" +msgstr "Tjek arbejdskopi" + +#: ../gitg/gitg-window.c:2166 +msgid "Remove local branch" +msgstr "Fjern lokal gren" + +#: ../gitg/gitg-window.c:2168 +msgid "Rename local branch" +msgstr "Omdøb lokal gren" + +# hvad er stash? +#: ../gitg/gitg-window.c:2176 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Fjern lager" + +#: ../gitg/gitg-window.c:2182 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Fjern mærke" + +#: ../gitg/gitg-window.c:2484 +msgid "Not all fields are correctly filled in" +msgstr "Ikke alle felter er korrekt udfyldt" + +#: ../gitg/gitg-window.c:2486 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" +"Vær venligst opmærksom på at udfylde både mærkenavnet og integreringsbeskeden" + +#. Single one, pick filename +#: ../gitg/gitg-window.c:2579 +msgid "Save format patch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "Gren <%s> kunne ikke fjernes" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" +"Dette betyder normalt, at grenen ikke er fuldt sammenflettet i HEAD. Ønsker " +"du at fremtvinge fjernelse af denne gren?" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Fremtving fjernelse" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "Gren <%s> kunne ikke fjernes med tvang" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Kunne ikke fjerne ekstern gren <%s>." + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Er du sikker på, at du ønsker at fjerne den eksterne gren <%s>?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "Dette fjerner permanent den eksterne gren." + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:11 +msgid "Remove branch" +msgstr "Fjern gren" + +# Okay, jeg kiggede i gits brugerguide og endte med at spørge på deres IRC-kanal. +# Man kan 'stashe' sine lokale ændringer og 'poppe' dem tilbage fra +# 'stash'. Hvis man stasher flere gange, svarer det til at tingene +# ligger som en stak-datastruktur, og når de taler om 'item', er det +# altså elementer på dette 'stash'. Lagerpunkt er givetvis fint nok - +# det kan uanset hvad forveksles med repository, men med kontekst tror +# jeg det er klart nok. +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Er du sikker på, at du ønsker at fjerne dette lagerpunkt?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "Dette fjerner permanent lagerpunktet" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Kunne ikke fjerne lager" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "Lagerpunktet kunne ikke fjernes" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Er du sikker på, at du ønsker at fjerne mærket <%s>?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "Mærket <%s> kunne ikke fjernes" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Kunne ikke fjerne mærke" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "Gren <%s> kunne ikke omdøbes til <%s>" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" +"Dette betyder normalt, at en gren med samme navn allerede eksisterer. Ønsker " +"du at overskrive grenen?" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "Fremtving omdøbning" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "Gren <%s> kunne ikke omdøbes med tvang" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:13 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Navn:" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Ønsker du midlertidigt at lægge disse ændringer på lager (stash)?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "Ønsker du at lagre (stash) og genanvende disse ændringer?" + +# Du har ændringer der ikke er integreret i dit aktuelle arbejdstræ +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "Du har ændringer i dit aktuelle arbejdstræ, som ikke er integreret" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Lagr ændringer" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Kunne ikke gemme aktuel indekstilstand" + +# 'tjekke lokal gren ud' (alle dem jeg kender siger 'tjekke ud' i +# svn/git-sammenhæng) +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 ../gitg/gitg-branch-actions.c:1744 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Kunne ikke tjekke lokal gren <%s>" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "Kunne ikke tjekke ekstern gren <%s> til lokal gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "Kunne ikke tjekke mærke <%s> til lokal gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Kunne ikke omplacere %s gren <%s> til %s gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "Kunne ikke flette %s gren <%s> med %s gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "lokal" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "ekstern" + +#: ../gitg/gitg-branch-actions.c:1134 ../gitg/gitg-branch-actions.c:1663 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "De lagrede ændringer er blevet gemt så de kan genanvendes manuelt" + +#: ../gitg/gitg-branch-actions.c:1139 ../gitg/gitg-branch-actions.c:1668 +msgid "Failed to checkout previously checked out branch" +msgstr "Kunne ikke tjekke tidligere tjekket gren" + +#: ../gitg/gitg-branch-actions.c:1160 ../gitg/gitg-branch-actions.c:1689 +msgid "Failed to reapply stash correctly" +msgstr "Kunne ikke genanvende lagring korrekt" + +#: ../gitg/gitg-branch-actions.c:1161 ../gitg/gitg-branch-actions.c:1690 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" +"Der er måske uløste konflikter i arbejdstræet eller indekset, som du skal " +"løse manuelt" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Er du sikker på, at du ønsker at flette %s gren <%s> med %s gren <%s>?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:6 +msgid "Merge" +msgstr "Flet (merge)" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "Den gren der skulle flettes til kunne ikke tjekkes" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Fletter %s gren <%s> til %s gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "" +"Er du sikker på, at du ønsker at omplacere %s gren <%s> til %s gren <%s>?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:9 +msgid "Rebase" +msgstr "Omplacer (rebase)" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Kunne ikke omplacere" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" +"Der er stadig ændringer, der ikke er integreret i dit arbejdstræ og du " +"forsøger at omplacere en gren til den aktuelt tjekket gren. Enten fjern, " +"lagr eller integrer dine ændringer først og forsøg så igen" + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "Omplacerer %s gren <%s> til %s gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "Kunne ikke skubbe lokal gren <%s> til ekstern <%s>" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" +"Dette betyder normalt, at den eksterne gren ikke kunne blive hurtigt " +"videresendt (fast-forwarded). Prøv at hente de seneste ændringer." + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Er du sikker på, at du ønsker at skubbe <%s> til <%s>?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Skub (push)" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Skubber lokal gren <%s> til ekstern gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Er du sikker på, at du ønsker at skubbe <%s> til ekstern <%s/%s>?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Skubber lokal gren <%s> til ekstern gren <%s/%s>" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "" +"Er du sikker på, at du ønsker at anvende det lagrede punkt på den lokale " +"gren <%s>?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Anvend lager (stash)" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "Lageret kunne ikke anvendes på lokal gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Kunne ikke anvende lager" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" +"Mærkeobjektet kunne ikke oprettes. Undersøg venligst at du har en GPG-nøgle " +"og at denne nøgle er ulåst" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "Mærkeobjektet kunne ikke oprettes" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Kunne ikke oprette mærke" + +# 'tjekke lokal gren ud' (alle dem jeg kender siger 'tjekke ud' i +# svn/git-sammenhæng) +#: ../gitg/gitg-branch-actions.c:1643 +#, fuzzy, c-format +msgid "Failed to cherry-pick on <%s>" +msgstr "Kunne ikke tjekke lokal gren <%s>" + +#: ../gitg/gitg-branch-actions.c:1710 +#, fuzzy, c-format +msgid "Are you sure you want to cherry-pick that revision on <%s>?" +msgstr "Er du sikker på, at du ønsker at skubbe <%s> til <%s>?" + +#: ../gitg/gitg-branch-actions.c:1715 ../gitg/gitg-branch-actions.c:1717 +#: ../gitg/gitg-branch-actions.c:1765 +msgid "Cherry-pick" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1745 +#, fuzzy +msgid "The branch on which to cherry-pick could not be checked out" +msgstr "Den gren der skulle flettes til kunne ikke tjekkes" + +#: ../gitg/gitg-branch-actions.c:1752 +#, c-format +msgid "Cherry-picking on <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1822 +#, fuzzy +msgid "Failed to generate format-patch" +msgstr "Kunne ikke oprette mærke" + +#: ../gitg/gitg-branch-actions.c:1868 +#, c-format +msgid "Generating format-patch for <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1874 ../gitg/gitg-menus.xml.h:5 +msgid "Format patch" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Hent" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Afbryd" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Egenskaber" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Tilføj godkendt-af" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Ændre" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "Forfatter:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "Gren:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "In_tegrer besked" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:6 +msgid "Commit" +msgstr "Integrer" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "Kontekst:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "Dato:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "Detaljer" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "Historik" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "Forældre:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "Emne:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "Træ" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "_Ændringer" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "Igang_sat" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "_Ikke igangsat" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignorer" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Fortryd" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "Igangsætte" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Fortryde igangsættelse" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Integreringsbesked" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "Historik" + +#: ../gitg/gitg-preferences.ui.h:3 +#, fuzzy +msgid "Main" +msgstr "Historik" + +#: ../gitg/gitg-preferences.ui.h:4 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Bruger" + +#: ../gitg/gitg-preferences.ui.h:5 +msgid "Collapse inactive lanes" +msgstr "Fold inaktive baner sammen" + +#: ../gitg/gitg-preferences.ui.h:7 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Konfiguration" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" +"Konfigurer den globale gitopsætning. Dette svarer til opsætningen som er " +"gemt i ~/.gitconfig. Opsætning der er specifik for arkivet kan konfigureres " +"under arkivets egenskaber." + +#: ../gitg/gitg-preferences.ui.h:9 +msgid "Display right _margin" +msgstr "Vis højre _margen" + +#: ../gitg/gitg-preferences.ui.h:10 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "E-post:" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Early" +msgstr "Tidlig" + +#: ../gitg/gitg-preferences.ui.h:12 +msgid "Late" +msgstr "Sent" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences" +msgstr "Indstillinger" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the commit view" +msgstr "Indstillinger for integreringsvisningen" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Preferences that apply to the revision view" +msgstr "Indstillinger for revisionsvisningen" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Search filters revisions in the history view" +msgstr "Søg filterændringer i historikvisningen" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show history in topological order" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show staged changes in history" +msgstr "Vis igangsatte ændringer i historikken" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "Show stash in history" +msgstr "Vis opbevaring i historikken" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "Show unstaged changes in history" +msgstr "Vis ændringer der ikke er igangsat i historikken" + +#: ../gitg/gitg-preferences.ui.h:22 +msgid "Use vertical layout" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:23 +msgid "View" +msgstr "Vis" + +#: ../gitg/gitg-preferences.ui.h:24 +msgid "_Right margin at column:" +msgstr "_Højremargen ved kolonne:" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Navn" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "Eksterne" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Opret underskrevet mærkeobjekt" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:4 +msgid "Create tag" +msgstr "Opret mærke" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Besked:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Anvend lager (stash) på..." + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Tjek gren" + +#: ../gitg/gitg-menus.xml.h:3 +msgid "Cherry-pick on..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:7 +msgid "Merge branch with..." +msgstr "Flet gren med..." + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Push branch to..." +msgstr "Skub gren (push) til..." + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rebase branch onto..." +msgstr "Omplacer (rebase) gren til..." + +#: ../gitg/gitg-menus.xml.h:12 +msgid "Rename branch" +msgstr "Omdøb gren" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Author" +msgstr "_Forfatter" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Date" +msgstr "_Dato" + +#: ../gitg/gitg-menus.xml.h:15 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:16 +msgid "_Subject" +msgstr "_Emne" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "Åbn_et for nylig" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Rediger" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Fil" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "_Hjælp" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Åbn..." + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "_Arkiv" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Vis" diff -Nru gitg-0.0.3/po/de.po gitg-0.0.6/po/de.po --- gitg-0.0.3/po/de.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/de.po 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,882 @@ +# German translation for gitg. +# Copyright (C) 2009 gitg's COPYRIGHT HOLDER +# This file is distributed under the same license as the gitg package. +# Mario Blättermann , 2009. +# Christian Kirbach , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: gitg master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=gitg&component=gitg\n" +"POT-Creation-Date: 2009-09-13 12:14+0000\n" +"PO-Revision-Date: 2009-09-14 00:18+0200\n" +"Last-Translator: Christian Kirbach \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" + +#: ../data/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Browser für Git-Softwarebestände" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:179 +#: ../gitg/gitg-window.c:1017 ../gitg/gitg-window.c:1030 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "Spalte, in welcher der rechte Rand angezeigt wird" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Revisionen während der Suche filtern" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" +"Diese Einstellung legt das Einklappen inaktiver Pfade fest. Gültige Werte " +"liegen zwischen 0 und 4, wobei 0 »früh« bezeichnet und 4 »spät«." + +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "Rechten Rand in der Ansicht der Einspielmeldungen anzeigen" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" +"Einen Indikator für den rechten Rand in der Ansicht der Einspielmeldung " +"anzeigen. Dadurch lässt sich leicht erkennen, wo die Einspielmeldung an " +"einer bestimmten Spalte einen Zeilenumbruch erhalten sollte." + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" +"Die Spalte, in welcher der rechte Rand angezeigt wird, falls die Einstellung " +"für den rechten Rand auf »WAHR« gesetzt ist." + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "Einklappen inaktiver Pfade" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" +"Legt fest, ob die Revisionen in der Chronikansicht gefiltert werden sollen, " +"anstellen zur ersten Übereinstimmung zu springen" + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Version der Anwendung anzeigen" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "gitg im Einspielmodus starten" + +#: ../gitg/gitg.c:63 +msgid "- git repository viewer" +msgstr "- Betrachter für Git-Softwarebestände" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "Inhalt der Datei kann nicht als Text angezeigt werden" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "Vor dem Einspielen müssen Sie zunächst einige Änderungen bereitstellen" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "Bitte geben Sie vor dem Einspielen eine Einspielmeldung an" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" +"Ihr Benutzername und Ihre E-Mail-Adresse konnten für die Signaturnachricht " +"nicht ermittelt werden" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "Beim Einspielversuch ging etwas schief" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "Fehlschlag zurücknehmen" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "Wollen Sie diese Änderungen wirklich zurücknehmen?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "" +"Zurückgenommene Änderungen sind dauerhaft und können nicht rückgängig " +"gemacht werden" + +#: ../gitg/gitg-repository.c:591 +msgid "Staged changes" +msgstr "Bereitgestellte Änderungen" + +#: ../gitg/gitg-repository.c:593 +msgid "Unstaged changes" +msgstr "Nicht bereitgestellte Änderungen" + +#: ../gitg/gitg-repository.c:1155 +msgid "Not a valid git repository" +msgstr "Kein gültiger Git-Softwarebestand" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "(Leer)" + +#: ../gitg/gitg-window.c:423 +msgid "Select branch" +msgstr "Zweig auswählen" + +#: ../gitg/gitg-window.c:485 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Lokalen Zweig <%s> in den entfernten Zweig <%s> einbringen" + +#: ../gitg/gitg-window.c:492 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" +"Lokalen Zweig <%s> mit einen/auf einen lokalen Zweig <%s> zusammenführen/" +"umstellen" + +#: ../gitg/gitg-window.c:499 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" +"Lokalen Zweig <%s> mit einen/auf einen entfernten Zweig <%s> zusammenführen/" +"umstellen" + +#: ../gitg/gitg-window.c:506 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Sicherung auf lokalen Zweig <%s> anwenden" + +#: ../gitg/gitg-window.c:774 +msgid "Begin loading repository" +msgstr "Laden des Softwarebestandes beginnen" + +#: ../gitg/gitg-window.c:783 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "%d Revisionen wurden in %.2fs geladen" + +#: ../gitg/gitg-window.c:794 +#, c-format +msgid "Loading %d revisions..." +msgstr "%d Revisionen werden geladen …" + +#: ../gitg/gitg-window.c:803 +msgid "Could not find git repository" +msgstr "Git-Softwarebestand konnte nicht gefunden werden" + +#: ../gitg/gitg-window.c:995 +msgid "All branches" +msgstr "Alle Zweige" + +#: ../gitg/gitg-window.c:1206 +msgid "Open git repository" +msgstr "Git-Softwarebestand öffnen" + +#: ../gitg/gitg-window.c:1327 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "gitg ist ein Betrachter für Git-Softwarebestände für gtk+/GNOME" + +#: ../gitg/gitg-window.c:1328 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" +"Dieses Programm ist freie Software, Sie können sie weitergeben und/oder\n" +"verändern solange Sie sich an die Regeln der GNU General Public License\n" +"halten, so wie sie von der Free Software Foundation festgelegt wurden;\n" +"entweder in Version 2 der Lizenz oder (nach Ihrem Ermessen) in jeder " +"folgenden Lizenz.\n" +"\n" +"Dieses Programm wurde mit dem Ziel veröffentlicht, dass Sie es nützlich " +"finden,\n" +"jedoch OHNE JEDWEDE GARANTIE, sogar ohne eine implizite Garantie\n" +"der VERKAUFBARKEIT oder der NUTZBARKEIT FÜR EINEN SPEZIELLEN ZWECK.\n" +"Schauen Sie für weitere Informationen bitte in der GNU General Public " +"License (GNU GPL) nach.\n" +"\n" +"Mit diesem Programm sollten Sie außerdem eine Kopie der GNU General Public " +"License erhalten\n" +"haben. Wenn dem nicht so ist, so schreiben Sie bitte an die\n" +"\n" +"Free Software Foundation, Inc.,\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." + +#: ../gitg/gitg-window.c:1790 +msgid "new" +msgstr "neu" + +#: ../gitg/gitg-window.c:1898 ../gitg/gitg-window.c:1937 +#, c-format +msgid "New local branch <%s>" +msgstr "Neuer lokaler Zweig <%s>" + +#: ../gitg/gitg-window.c:1910 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Entfernten Zweig löschen" + +#: ../gitg/gitg-window.c:1915 +msgid "Checkout working copy" +msgstr "Arbeitskopie auschecken" + +#: ../gitg/gitg-window.c:1916 +msgid "Remove local branch" +msgstr "Lokalen Zweig löschen" + +#: ../gitg/gitg-window.c:1918 +msgid "Rename local branch" +msgstr "Lokalen Zweig umbenennen" + +#: ../gitg/gitg-window.c:1926 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Sicherung entfernen" + +#: ../gitg/gitg-window.c:1932 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Tag entfernen" + +#: ../gitg/gitg-window.c:2107 +msgid "Not all fields are correctly filled in" +msgstr "Nicht alle Felder wurden korrekt ausgefüllt" + +#: ../gitg/gitg-window.c:2109 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" +"Bitte stellen Sie sicher, dass Sie sowohl den Namen des Tags als auch die " +"Einspielmeldung angegeben haben." + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "Zweig <%s> konnte nicht entfernt werden" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" +"Dies bedeutet meist, dass der Zweig nicht vollständig mit HEAD " +"zusammengeführt wurde. Wollen Sie die Entfernung des Zweiges erzwingen?" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Entfernen erzwingen" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "Entfernung des Zweiges <%s> konnte nicht erzwungen werden" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Löschen des entfernten Zweiges <%s> ist gescheitert." + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Wollen Sie wirklich den entfernten Zweig <%s> löschen?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "Dadurch wird der entfernte Zweig dauerhaft gelöscht." + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +msgid "Remove branch" +msgstr "Zweig entfernen" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Wollen Sie wirklich das Sicherungsobjekt löschen?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "Dadurch wird das Sicherungsobjekt dauerhaft gelöscht." + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Entfernung der Sicherung ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "Ein Sicherungsobjekt konnte nicht erfolgreich entfernt werden" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Wollen Sie den Tag <%s> wirklich entfernen?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "Der Tag <%s> konnte nicht erfolgreich entfernt werden" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Entfernen des Tags ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "Zweig <%s> konnte nicht in <%s> umbenannt werden" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" +"Das bedeutet meist, dass ein Zweig dieses Namens bereits existiert. Wollen " +"Sie diesen Zweig überschreiben?" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "Umbenennen erzwingen" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "Entfernung des Zweiges <%s> konnte nicht erzwungen werden" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:12 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Name:" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Wollen Sie diese Änderungen vorübergehend sichern?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "Wollen Sie diese Änderungen sichern und später erneut anwenden?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "Es gibt nicht gespeicherte Änderungen in Ihrem lokalen Arbeitsbaum" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Änderungen sichern" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Speichern des derzeitigen Indexstatus ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Auschecken des lokalen Zweiges <%s> ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" +"Auschecken des entfernten Zweiges <%s> in den lokalen Zweig <%s> ist " +"gescheitert" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" +"Auschecken des entfernten Tags <%s> in den lokalen Zweig <%s> ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Umstellen des %s-Zweiges <%s> in den %s-Zweig <%s> ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "" +"Zusammenführen des %s-Zweiges <%s> mit dem %s-Zweig <%s> ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "lokal" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "entfernt" + +#: ../gitg/gitg-branch-actions.c:1134 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" +"Die gesicherten Änderungen wurden gespeichert, um später manuell angewendet " +"zu werden" + +#: ../gitg/gitg-branch-actions.c:1139 +msgid "Failed to checkout previously checked out branch" +msgstr "Auschecken des bereits früher ausgecheckten Zweiges ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:1160 +msgid "Failed to reapply stash correctly" +msgstr "Das korrekte Anwenden der Sicherung ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:1161 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" +"Es scheint ungelöste Konflikte im Arbeitsbaum oder Index zu geben, die Sie " +"manuell auflösen müssen." + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "" +"Wollen Sie wirklich den %s-Zweig <%s> mit dem %s-Zweig <%s> zusammenführen?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "Zusammenführen" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "" +"Der Zweig, in den eingemischt werden soll, konnte nicht ausgecheckt werden" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "%s-Zweig <%s> wird in den %s-Zweig <%s> gemischt" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Wollen Sie wirklich den %s-Zweig <%s> auf den %s-Zweig <%s> umstellen?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "Umstellen" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Umstellen nicht möglich" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" +"Es gibt noch nicht eingespielte Änderungen in Ihrem Arbeitsbaum und Sie " +"versuchen, einen Zweig in den gerade ausgecheckten Zweig umzustellen. Sie " +"sollten zunächst Ihre Änderungen entweder löschen, sichern oder einspielen " +"und die Umstellung dann erneut versuchen." + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "%s-Zweig <%s> wird auf den %s-Zweig <%s> umgestellt" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "" +"Einbringen des lokalen Zweiges <%s> in den entfernten Zweig <%s> ist " +"gescheitert" + +#: ../gitg/gitg-branch-actions.c:1346 +#, fuzzy +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" +"Das bedeutet meist, dass der entfernte Zweig nicht fast-forwarded werden " +"konnte. Versuchen Sie, die letzten Änderungen zu holen." + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Wollen Sie wirklich <%s> in <%s> einbringen?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Einbringen" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Lokaler Zweig <%s> wird in entfernten Zweig <%s> eingebracht" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Wollen Sie wirklich <%s> in den entfernten <%s/%s> einbringen?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Lokaler Zweig <%s> wird in entfernten Zweig <%s/%s> eingebracht" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "" +"Wollen Sie das Sicherungsobjekt wirklich auf den lokalen Zweig <%s> anwenden?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Sicherung anwenden" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "" +"Die Sicherung konnte nicht auf den lokalen Zweig <%s> angewendet werden" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Anwenden der Sicherung ist gescheitert" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" +"Das Tag-Objekt konnte nicht erfolgreich angelegt werden. Stellen Sie sicher, " +"dass Sie über einen GPG-Schlüssel verfügen und dieser Schlüssel entsperrt " +"ist." + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "Das Tag-Objekt konnte nicht erfolgreich angelegt werden" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Tag kann nicht erzeugt werden" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Holen" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Abbrechen" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Eigenschaften" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Signaturmeldung hinzufügen" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Nachbessern" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "Autor:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "Zweig:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "Einspiel_meldung" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 +msgid "Commit" +msgstr "Einspielen" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "Kontext:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "Datum:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "Details" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "Chronik" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "Vorgänger:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "Betreff:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "Baumansicht" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "Än_derungen" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "_Bereitgestellt" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "_Nicht bereitgestellt" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignorieren" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Zurücknehmen" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "Bereitstellen" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Bereitstellung zurücknehmen" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Einspielmeldung" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "Chronik" + +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Benutzer" + +#: ../gitg/gitg-preferences.ui.h:4 +msgid "Collapse inactive lanes" +msgstr "Inaktive Pfade einklappen" + +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Konfiguration" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" +"Legen Sie die globalen Einstellungen für gitg fest. Diese entsprechen den in " +"~/.gitconfig gespeicherten Einstellungen. Für die Softwarebestände können " +"Einstellungen in den Softwarebestand-Eigenschaften festgelegt werden." + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "_Rechten Rand anzeigen" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "E-Mail:" + +#: ../gitg/gitg-preferences.ui.h:10 +msgid "Early" +msgstr "Früh" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Late" +msgstr "Spät" + +#: ../gitg/gitg-preferences.ui.h:13 +msgid "Preferences" +msgstr "Einstellungen" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "Einstellungen der Einspielansicht" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "Einstellungen der Revisionsansicht" + +# CHECK +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Search filters revisions in the history view" +msgstr "Revisionen der Suchfilter in der Chronikansicht anzeigen" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Show staged changes in history" +msgstr "Bereitgestellte Änderungen in der Chronik anzeigen" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show stash in history" +msgstr "Sicherung in der Chronik anzeigen" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show unstaged changes in history" +msgstr "Nicht bereitgestellte Änderungen in der Chronik anzeigen" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "View" +msgstr "Ansicht" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "_Rechter Rand in Spalte:" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Name" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "Entfernte" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "Adresse" + +#: ../gitg/gitg-repository.ui.h:10 +msgid "gtk-add" +msgstr "gtk-add" + +#: ../gitg/gitg-repository.ui.h:11 +msgid "gtk-remove" +msgstr "gtk-remove" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Tag-Objekt anlegen" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "Tag erzeugen" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Meldung:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Sicherung anwenden auf …" + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Zweig auschecken" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "Zweig zusammenführen mit …" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "Zweig einbringen in …" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "Zweig umstellen zu …" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rename branch" +msgstr "Zweig umbenennen" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Author" +msgstr "_Autor" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Date" +msgstr "_Datum" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Hash" +msgstr "_Prüfsumme" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Subject" +msgstr "_Betreff" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "Zul_etzt geöffnet" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Bearbeiten" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Datei" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "_Hilfe" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "Ö_ffnen …" + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "Softwa_rebestand" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Ansicht" diff -Nru gitg-0.0.3/po/en_GB.po gitg-0.0.6/po/en_GB.po --- gitg-0.0.3/po/en_GB.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/en_GB.po 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,847 @@ +# British English translation for gitg. +# Copyright (C) 2009 gitg's COPYRIGHT HOLDER +# This file is distributed under the same licence as the gitg package. +# Bruce Cowan , 2009. +msgid "" +msgstr "" +"Project-Id-Version: gitg\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-13 13:10+0100\n" +"PO-Revision-Date: 2009-09-13 00:50+0100\n" +"Last-Translator: Bruce Cowan \n" +"Language-Team: British English \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/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Git repository browser" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:179 +#: ../gitg/gitg-window.c:1017 ../gitg/gitg-window.c:1030 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "Column at Which Right Margin is Shown" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Filter Revisions When Searching" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0–4, where 0 indicates 'early' and 4 indicates 'late'." + +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "Show Right Margin in Commit Message View" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "When to Collapse Inactive Lanes" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Show the application's version" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "Start gitg in commit mode" + +#: ../gitg/gitg.c:63 +msgid "- git repository viewer" +msgstr "- git repository viewer" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "Cannot display file content as text" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "You must first stage some changes before committing" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "Please enter a commit message before committing" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" +"Your user name or e-mail address could not be retrieved for use in the sign off " +"message" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "Something went wrong while trying to commit" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "Revert fail" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "Are you sure you want to revert these changes?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "Reverting changes is permanent and cannot be undone" + +#: ../gitg/gitg-repository.c:591 +msgid "Staged changes" +msgstr "Staged changes" + +#: ../gitg/gitg-repository.c:593 +msgid "Unstaged changes" +msgstr "Unstaged changes" + +#: ../gitg/gitg-repository.c:1155 +msgid "Not a valid git repository" +msgstr "Not a valid git repository" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "(Empty)" + +#: ../gitg/gitg-window.c:423 +msgid "Select branch" +msgstr "Select branch" + +#: ../gitg/gitg-window.c:485 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Push local branch <%s> to remote branch <%s>" + +#: ../gitg/gitg-window.c:492 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "Merge/Rebase local branch <%s> with/on local branch <%s>" + +#: ../gitg/gitg-window.c:499 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "Merge/Rebase local branch <%s> with/on remote branch <%s>" + +#: ../gitg/gitg-window.c:506 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Apply stash to local branch <%s>" + +#: ../gitg/gitg-window.c:774 +msgid "Begin loading repository" +msgstr "Begin loading repository" + +#: ../gitg/gitg-window.c:783 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "Loaded %d revisions in %.2fs" + +#: ../gitg/gitg-window.c:794 +#, c-format +msgid "Loading %d revisions..." +msgstr "Loading %d revisions…" + +#: ../gitg/gitg-window.c:803 +msgid "Could not find git repository" +msgstr "Could not find git repository" + +#: ../gitg/gitg-window.c:995 +msgid "All branches" +msgstr "All branches" + +#: ../gitg/gitg-window.c:1206 +msgid "Open git repository" +msgstr "Open git repository" + +#: ../gitg/gitg-window.c:1327 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "gitg is a git repository viewer for GTK+/GNOME" + +#: ../gitg/gitg-window.c:1328 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public Licence as published by\n" +"the Free Software Foundation; either version 2 of the Licence, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public Licence for more details.\n" +"\n" +"You should have received a copy of the GNU General Public Licence\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." + +#: ../gitg/gitg-window.c:1790 +msgid "new" +msgstr "new" + +#: ../gitg/gitg-window.c:1898 ../gitg/gitg-window.c:1937 +#, c-format +msgid "New local branch <%s>" +msgstr "New local branch <%s>" + +#: ../gitg/gitg-window.c:1910 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Remove remote branch" + +#: ../gitg/gitg-window.c:1915 +msgid "Checkout working copy" +msgstr "Check out working copy" + +#: ../gitg/gitg-window.c:1916 +msgid "Remove local branch" +msgstr "Remove local branch" + +#: ../gitg/gitg-window.c:1918 +msgid "Rename local branch" +msgstr "Rename local branch" + +#: ../gitg/gitg-window.c:1926 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Remove stash" + +#: ../gitg/gitg-window.c:1932 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Remove tag" + +#: ../gitg/gitg-window.c:2107 +msgid "Not all fields are correctly filled in" +msgstr "Not all fields are correctly filled in" + +#: ../gitg/gitg-window.c:2109 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "Please make sure to fill in both the tag name and the commit message" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "Branch <%s> could not be removed" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Force remove" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "Branch <%s> could not be forcefully removed" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Failed to remove remote branch <%s>." + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Are you sure you want to remove the remote branch <%s>?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "This permanently removes the remote branch." + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +msgid "Remove branch" +msgstr "Remove branch" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Are you sure you want to remove this stash item?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "This permanently removes the stash item" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Failed to remove stash" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "The stash item could not be successfully removed" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Are you sure you want to remove the tag <%s>?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "The tag <%s> could not be successfully removed" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Failed to remove tag" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "Branch <%s> could not be renamed to <%s>" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "Force rename" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "Branch <%s> could not be forcefully renamed" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:12 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Name:" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Do you want to temporarily stash these changes?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "Do you want to stash and reapply these changes?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "You have uncommited changes in your current working tree" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Stash changes" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Failed to save current index state" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Failed to check out local branch <%s>" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "Failed to check out remote branch <%s> to local branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "Failed to check out tag <%s> to local branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Failed to rebase %s branch <%s> onto %s branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "Failed to merge %s branch <%s> with %s branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "local" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "remote" + +#: ../gitg/gitg-branch-actions.c:1134 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "The stashed changes have been stored to be reapplied manually" + +#: ../gitg/gitg-branch-actions.c:1139 +msgid "Failed to checkout previously checked out branch" +msgstr "Failed to check out previously checked out branch" + +#: ../gitg/gitg-branch-actions.c:1160 +msgid "Failed to reapply stash correctly" +msgstr "Failed to reapply stash correctly" + +#: ../gitg/gitg-branch-actions.c:1161 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "Merge" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "The branch on which to merge could not be checked out" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Merging %s branch <%s> onto %s branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "Rebase" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Unable to rebase" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "Rebasing %s branch <%s> onto %s branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "Failed to push local branch <%s> to remote <%s>" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Are you sure you want to push <%s> to <%s>?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Push" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Pushing local branch <%s> to remote branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Are you sure you want to push <%s> to remote <%s/%s>?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Pushing local branch <%s> to remote branch <%s/%s>" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "Are you sure you want to apply the stash item to local branch <%s>?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Apply stash" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "The stash could not be applied to local branch <%s>" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Failed to apply stash" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "The tag object could not be successfully created" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Failed to create tag" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Fetch" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Cancel" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Properties" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Add signed-off-by" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Amend" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "Author:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "Branch:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "Co_mmit message" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 +msgid "Commit" +msgstr "Commit" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "Context:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "Date:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "Details" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "History" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "Parent:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "Subject:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "Tree" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "_Changes" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "_Staged" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "_Unstaged" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignore" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Revert" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "Stage" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Unstage" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Commit Message" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "History" + +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "User" + +#: ../gitg/gitg-preferences.ui.h:4 +msgid "Collapse inactive lanes" +msgstr "Collapse inactive lanes" + +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Configuration" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "Display right _margin" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "E-mail address:" + +#: ../gitg/gitg-preferences.ui.h:10 +msgid "Early" +msgstr "Early" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Late" +msgstr "Late" + +#: ../gitg/gitg-preferences.ui.h:13 +msgid "Preferences" +msgstr "Preferences" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "Preferences that apply to the commit view" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "Preferences that apply to the revision view" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Search filters revisions in the history view" +msgstr "Search filters revisions in the history view" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Show staged changes in history" +msgstr "Show staged changes in history" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show stash in history" +msgstr "Show stash in history" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show unstaged changes in history" +msgstr "Show unstaged changes in history" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "View" +msgstr "View" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "_Right margin at column:" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Name" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "Remotes" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-repository.ui.h:10 +msgid "gtk-add" +msgstr "gtk-add" + +#: ../gitg/gitg-repository.ui.h:11 +msgid "gtk-remove" +msgstr "gtk-remove" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Create signed tag object" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "Create tag" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Message:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Apply stash to…" + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Check out branch" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "Merge branch with…" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "Push branch to…" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "Rebase branch onto…" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rename branch" +msgstr "Rename branch" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Author" +msgstr "_Author" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Date" +msgstr "_Date" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Subject" +msgstr "_Subject" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "R_ecently Opened" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Edit" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_File" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "_Help" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Open…" + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "_Repository" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_View" diff -Nru gitg-0.0.3/po/es.po gitg-0.0.6/po/es.po --- gitg-0.0.3/po/es.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/es.po 2010-01-23 21:03:30.000000000 +0000 @@ -0,0 +1,795 @@ +# translation of gitg.po.master.po to Español +# Spanish translation of gitg. +# Copyright (C) 2009 gitg's COPYRIGHT HOLDER +# This file is distributed under the same license as the gitg package. +# +# Jorge González , 2009. +# Chihau Chau , 2009. +msgid "" +msgstr "" +"Project-Id-Version: gitg.po.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=gitg&component=gitg\n" +"POT-Creation-Date: 2009-07-05 19:34+0000\n" +"PO-Revision-Date: 2009-07-25 15:35-0400\n" +"Last-Translator: Chihau Chau \n" +"Language-Team: Español \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/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Examinador de repositorios Git" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:179 +#: ../gitg/gitg-window.c:1005 ../gitg/gitg-window.c:1018 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Filtrar revisiones al buscar" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" + +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Mostrar la versión de la aplicación" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "" + +#: ../gitg/gitg.c:63 +msgid "- git repository viewer" +msgstr "- visor de repositorios git" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:181 +msgid "Cannot display file content as text" +msgstr "No se puede mostrar el contenido del archivo como texto" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "Falló al revertir" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "Revertir los cambios es una acción permanente y no se puede deshacer" + +#: ../gitg/gitg-repository.c:591 +msgid "Staged changes" +msgstr "" + +#: ../gitg/gitg-repository.c:593 +msgid "Unstaged changes" +msgstr "" + +#: ../gitg/gitg-repository.c:1148 +msgid "Not a valid git repository" +msgstr "No es un repositorio git válido" + +#: ../gitg/gitg-revision-tree-view.c:511 +msgid "(Empty)" +msgstr "(Vacío)" + +#: ../gitg/gitg-window.c:420 +msgid "Select branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-window.c:482 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:489 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:496 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:503 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:771 +msgid "Begin loading repository" +msgstr "" + +#: ../gitg/gitg-window.c:780 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "%d revisiones cargadas en %.2fs" + +#: ../gitg/gitg-window.c:791 +#, c-format +msgid "Loading %d revisions..." +msgstr "Cargando %d revisiones..." + +#: ../gitg/gitg-window.c:800 +msgid "Could not find git repository" +msgstr "No se pudo encontrar el repositorio git" + +#: ../gitg/gitg-window.c:983 +msgid "All branches" +msgstr "Todas las ramas" + +#: ../gitg/gitg-window.c:1192 +msgid "Open git repository" +msgstr "Abrir repositorio git" + +#: ../gitg/gitg-window.c:1313 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "gitg es un visor de repositorios git para GTk+/GNOME" + +#: ../gitg/gitg-window.c:1314 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" + +#: ../gitg/gitg-window.c:1775 ../gitg/gitg-window.c:1809 +#, c-format +msgid "New local branch <%s>" +msgstr "Rama local nueva <%s>" + +#: ../gitg/gitg-window.c:1787 ../gitg/gitg-branch-actions.c:316 +#, fuzzy +msgid "Remove remote branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-window.c:1791 +msgid "Checkout working copy" +msgstr "" + +#: ../gitg/gitg-window.c:1792 +#, fuzzy +msgid "Remove local branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-window.c:1800 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "" + +#: ../gitg/gitg-window.c:1805 ../gitg/gitg-branch-actions.c:457 +#: ../gitg/gitg-branch-actions.c:459 +#, fuzzy +msgid "Remove tag" +msgstr "Revertir" + +#: ../gitg/gitg-window.c:1984 +msgid "Not all fields are correctly filled in" +msgstr "" + +#: ../gitg/gitg-window.c:1986 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:314 +#, fuzzy, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +#, fuzzy +msgid "Remove branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-branch-actions.c:390 +#, fuzzy +msgid "Are you sure you want to remove this stash item?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:453 +#, fuzzy, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:476 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:480 +msgid "Failed to remove tag" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:580 +#, fuzzy +msgid "Do you want to temporarily stash these changes?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:584 +#, fuzzy +msgid "Do you want to stash and reapply these changes?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:589 +msgid "You have uncommited changes in your current working tree" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:591 +msgid "Stash changes" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:767 +msgid "Failed to save current index state" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:821 ../gitg/gitg-branch-actions.c:1103 +#: ../gitg/gitg-branch-actions.c:1398 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:859 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:899 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:990 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:994 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1002 ../gitg/gitg-branch-actions.c:1004 +#: ../gitg/gitg-branch-actions.c:1070 ../gitg/gitg-branch-actions.c:1072 +#: ../gitg/gitg-branch-actions.c:1111 ../gitg/gitg-branch-actions.c:1113 +#: ../gitg/gitg-branch-actions.c:1147 ../gitg/gitg-branch-actions.c:1149 +#: ../gitg/gitg-branch-actions.c:1194 ../gitg/gitg-branch-actions.c:1196 +msgid "local" +msgstr "local" + +#: ../gitg/gitg-branch-actions.c:1002 ../gitg/gitg-branch-actions.c:1004 +#: ../gitg/gitg-branch-actions.c:1070 ../gitg/gitg-branch-actions.c:1072 +#: ../gitg/gitg-branch-actions.c:1111 ../gitg/gitg-branch-actions.c:1113 +#: ../gitg/gitg-branch-actions.c:1147 ../gitg/gitg-branch-actions.c:1149 +#: ../gitg/gitg-branch-actions.c:1194 ../gitg/gitg-branch-actions.c:1196 +msgid "remote" +msgstr "remota" + +#: ../gitg/gitg-branch-actions.c:1021 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1026 +msgid "Failed to checkout previously checked out branch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1047 +msgid "Failed to reapply stash correctly" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1048 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1069 +#, fuzzy, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:1077 ../gitg/gitg-branch-actions.c:1079 +#: ../gitg/gitg-branch-actions.c:1123 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "Mezclar" + +#: ../gitg/gitg-branch-actions.c:1104 +msgid "The branch on which to merge could not be checked out" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1110 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Mezclando la rama %s <%s> en la rama %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1146 +#, fuzzy, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:1154 ../gitg/gitg-branch-actions.c:1156 +#: ../gitg/gitg-branch-actions.c:1206 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1179 +msgid "Unable to rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1180 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1193 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1232 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1233 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1257 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "¿Está seguro de que quiere empujar <%s> en <%s>?" + +#: ../gitg/gitg-branch-actions.c:1263 ../gitg/gitg-branch-actions.c:1265 +#: ../gitg/gitg-branch-actions.c:1286 ../gitg/gitg-branch-actions.c:1318 +#: ../gitg/gitg-branch-actions.c:1320 ../gitg/gitg-branch-actions.c:1347 +msgid "Push" +msgstr "Empujar" + +#: ../gitg/gitg-branch-actions.c:1278 ../gitg/gitg-branch-actions.c:1332 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1312 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to remote <%s>?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:1371 +#, fuzzy, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "¿Está seguro de que quiere revertir estos cambios?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +msgid "Apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1417 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1421 +msgid "Failed to apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1467 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1471 +msgid "The tag object could not be successfully created" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1476 +msgid "Failed to create tag" +msgstr "Falló al crear la etiqueta" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Obtener" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Cancelar" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Propiedades" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Aádir firmado por" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "Autor:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "Rama:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 +msgid "Commit" +msgstr "Efectuar" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "Contexto:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "Fecha:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "Detalles" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "Histórico" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "Padre:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "Asunto:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "Árbol" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "_Cambios" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignorar" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Revertir" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "Histórico" + +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Usuario" + +#: ../gitg/gitg-preferences.ui.h:4 +msgid "Collapse inactive lanes" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Configuración" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "Correo-e:" + +#: ../gitg/gitg-preferences.ui.h:10 +msgid "Early" +msgstr "Temprano" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Late" +msgstr "Tarde" + +#: ../gitg/gitg-preferences.ui.h:12 ../gitg/gitg-repository.ui.h:6 +#: ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Nombre:" + +#: ../gitg/gitg-preferences.ui.h:13 +msgid "Preferences" +msgstr "Preferencias" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Search filters revisions in the history view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Show staged changes in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show stash in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show unstaged changes in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "View" +msgstr "Ver" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Nombre" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-repository.ui.h:10 +msgid "gtk-add" +msgstr "gtk-add" + +#: ../gitg/gitg-repository.ui.h:11 +msgid "gtk-remove" +msgstr "gtk-remove" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Mensaje:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:2 +#, fuzzy +msgid "Checkout branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "_Author" +msgstr "_Autor" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Date" +msgstr "_Fecha" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Subject" +msgstr "A_sunto" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "Abiertos _recientemente" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Editar" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Archivo" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "Ay_uda" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Abrir…" + +#: ../gitg/gitg-ui.xml.h:10 +#, fuzzy +msgid "_Repository" +msgstr "Abrir repositorio git" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Ver" + +#~ msgid "Author" +#~ msgstr "Autor" + +#~ msgid "Date" +#~ msgstr "Fecha" + +#~ msgid "Filename" +#~ msgstr "Nombre de archivo" + +#~ msgid "Subject" +#~ msgstr "Asunto" diff -Nru gitg-0.0.3/po/fr.po gitg-0.0.6/po/fr.po --- gitg-0.0.3/po/fr.po 2009-04-21 23:44:21.000000000 +0100 +++ gitg-0.0.6/po/fr.po 2010-02-21 09:16:23.000000000 +0000 @@ -1,140 +1,271 @@ +# French translation of gitg. +# Copyright (C)2009-2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the gitg package. +# +# Guilhem Bonnefille , 2009. +# Laurent Coudeur , 2009. +# Bruno Brouard , 2009. +# Claude Paroz , 2009-2010. +# Christophe Benz , 2010." +# msgid "" msgstr "" "Project-Id-Version: gitg\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-22 00:44+0200\n" -"PO-Revision-Date: \n" -"Last-Translator: Guilhem Bonnefille \n" -"Language-Team: \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=gitg&component=gitg\n" +"POT-Creation-Date: 2010-01-28 10:22+0000\n" +"PO-Revision-Date: 2010-02-11 10:56+0100\n" +"Last-Translator: Christophe Benz \n" +"Language-Team: GNOME French Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: French\n" -"X-Poedit-Country: FRANCE\n" #: ../data/gitg.desktop.in.in.h:1 msgid "Git repository browser" -msgstr "Butineur de dépôt Git" +msgstr "Navigateur de dépôt git" #. Translators: this is the application name as in g_set_application_name -#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:169 ../gitg/gitg-window.c:785 -#: ../gitg/gitg-window.c:803 ../gitg/gitg-ui.xml.h:32 +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:181 +#: ../gitg/gitg-window.c:1238 ../gitg/gitg-window.c:1251 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 msgid "gitg" msgstr "gitg" #: ../data/gitg.schemas.in.h:1 -msgid "Filter Revisions When Searching" -msgstr "" +msgid "Column at Which Right Margin is Shown" +msgstr "Colonne dans laquelle la marge de droite est affichée" #: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Filtrer les révisions lors de la recherche" + +#: ../data/gitg.schemas.in.h:3 msgid "" "Setting that indicates when an inactive lane should be collapsed. Valid " "values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." msgstr "" +"Paramètre indiquant si une ligne inactive doit être réduite. Les valeurs " +"possibles vont de 0 à 4, où 0 indique « tôt » et 4 « tard »." -#: ../data/gitg.schemas.in.h:3 +#: ../data/gitg.schemas.in.h:4 +msgid "" +"Setting that indicates whether to show the history in topological order." +msgstr "" +"Paramètre indiquant s'il faut afficher l'historique dans l'ordre topologique." + +#: ../data/gitg.schemas.in.h:5 +msgid "Setting that sets the orientation layout of the main view." +msgstr "" +"Paramètre définissant l'orientation de la disposition de l'affichage " +"principal." + +#: ../data/gitg.schemas.in.h:6 +msgid "Show History in Topological Order" +msgstr "Afficher l'historique en ordre topologique" + +#: ../data/gitg.schemas.in.h:7 +msgid "Show Main View in Vertical Layout" +msgstr "Utiliser la disposition verticale pour l'affichage principal" + +#: ../data/gitg.schemas.in.h:8 +msgid "Show Right Margin in Commit Message View" +msgstr "Afficher une marge de droite dans la vue du message du commit" + +#: ../data/gitg.schemas.in.h:9 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" +"Affiche un indicateur de marge de droite dans la vue du message du commit. " +"Cela peut être utilisé pour se rendre compte facilement de l'endroit où " +"appliquer un retour à la ligne à une colonne particulière." + +#: ../data/gitg.schemas.in.h:10 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" +"La colonne à laquelle la marge de droite s'affiche si la préférence marge de " +"droite est TRUE (vrai)." + +#: ../data/gitg.schemas.in.h:11 +msgid "The command to handle GITG scheme URLs" +msgstr "La commande pour traiter les URL de type GITG" + +#: ../data/gitg.schemas.in.h:12 +msgid "The command to handle GITG scheme URLs." +msgstr "La commande pour traiter les URL de type GITG." + +#: ../data/gitg.schemas.in.h:13 msgid "When to Collapse Inactive Lanes" +msgstr "Quand réduire les lignes inactives" + +#: ../data/gitg.schemas.in.h:14 +msgid "Whether command to handle GITG scheme URLs is enabled" +msgstr "Indique si la commande pour traiter les URL de type GITG est activée" + +#: ../data/gitg.schemas.in.h:15 +msgid "Whether command to handle GITG scheme URLs is enabled." +msgstr "Indique si la commande pour traiter les URL de type GITG est activée." + +#: ../data/gitg.schemas.in.h:16 +msgid "Whether command to handle GITG scheme URLs needs a terminal" msgstr "" +"Indique si la commande pour traiter les URL de type GITG nécessite un " +"terminal" -#: ../data/gitg.schemas.in.h:4 +#: ../data/gitg.schemas.in.h:17 +msgid "Whether command to handle GITG scheme URLs needs a terminal." +msgstr "" +"Indique si la commande pour traiter les URL de type GITG nécessite un " +"terminal." + +# current text is confusing +#: ../data/gitg.schemas.in.h:18 msgid "" "Whether searching filters the revisions in the history view instead of " "jumping to the first match." msgstr "" +"Indique si la recherche filtre les révisions dans la vue historique au lieu " +"de sauter au premier résultat." + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Afficher la version de l'application" -#: ../gitg/gitg.c:43 +#: ../gitg/gitg.c:53 msgid "Start gitg in commit mode" msgstr "Démarrer gitg en mode commit" -#: ../gitg/gitg.c:53 +#: ../gitg/gitg.c:54 +msgid "Select commit after loading the repository" +msgstr "Sélectionner le commit après le chargement du dépôt" + +#: ../gitg/gitg.c:64 msgid "- git repository viewer" -msgstr "- butineur pour dépôt Git" +msgstr "- navigateur de dépôt git" -#: ../gitg/gitg-commit-view.c:204 ../gitg/gitg-revision-tree-view.c:181 +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 msgid "Cannot display file content as text" -msgstr "Impossible d'afficher ce fichier en texte" +msgstr "Impossible d'afficher ce fichier sous la forme de texte" -#: ../gitg/gitg-commit-view.c:1166 +#: ../gitg/gitg-commit-view.c:1437 msgid "You must first stage some changes before committing" -msgstr "" +msgstr "Vous devez d'abord monter des changements avant de commiter" -#: ../gitg/gitg-commit-view.c:1174 +#: ../gitg/gitg-commit-view.c:1445 msgid "Please enter a commit message before committing" -msgstr "S'il vous plaît, entrez un message avant d'archiver les modifications" +msgstr "Veuillez saisir un message de soumission avant de commiter" -#: ../gitg/gitg-commit-view.c:1185 +#: ../gitg/gitg-commit-view.c:1457 msgid "" "Your user name or email could not be retrieved for use in the sign off " "message" msgstr "" +"Votre nom d'utilisateur ou votre adresse électronique n'a pas pu être " +"récupéré pour être utilisé comme message de signature" -#: ../gitg/gitg-commit-view.c:1187 +#: ../gitg/gitg-commit-view.c:1459 msgid "Something went wrong while trying to commit" -msgstr "" +msgstr "Une erreur est survenue lors du commit" -#: ../gitg/gitg-commit-view.c:1355 +#: ../gitg/gitg-commit-view.c:1618 msgid "Revert fail" -msgstr "Échec d'annulation" +msgstr "Échec de l'annulation" -#: ../gitg/gitg-commit-view.c:1366 +#: ../gitg/gitg-commit-view.c:1629 msgid "Are you sure you want to revert these changes?" -msgstr "Êtes-vous sûr de vouloir annuler ces modifications ?" +msgstr "Voulez-vous vraiment annuler ces modifications ?" -#: ../gitg/gitg-commit-view.c:1369 +#: ../gitg/gitg-commit-view.c:1632 msgid "Reverting changes is permanent and cannot be undone" msgstr "Il n'est pas possible de revenir sur une annulation de modifications" -#: ../gitg/gitg-repository.c:472 +# Ajout picked from git documentation +#: ../gitg/gitg-repository.c:606 msgid "Staged changes" -msgstr "" +msgstr "Modifications présélectionnées" -#: ../gitg/gitg-repository.c:474 +#: ../gitg/gitg-repository.c:608 msgid "Unstaged changes" -msgstr "" +msgstr "Modifications dé-présélectionnées" -#: ../gitg/gitg-repository.c:983 +#: ../gitg/gitg-repository.c:1235 msgid "Not a valid git repository" -msgstr "Dépôt Git invalide" +msgstr "Dépôt git non valide" -#: ../gitg/gitg-revision-tree-view.c:507 +#: ../gitg/gitg-revision-tree-view.c:513 msgid "(Empty)" msgstr "(Vide)" -#: ../gitg/gitg-window.c:346 +#: ../gitg/gitg-window.c:430 msgid "Select branch" msgstr "Sélectionner une branche" -#: ../gitg/gitg-window.c:532 -msgid "Begin loading repository" -msgstr "Démarrage du chargement du dépôt" +#: ../gitg/gitg-window.c:493 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Pousser la branche locale <%s> vers la branche distante <%s>" + +#: ../gitg/gitg-window.c:500 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" +"Fusionner/rebaser la branche locale <%s> avec/sur la branche locale <%s>" + +#: ../gitg/gitg-window.c:507 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" +"Fusionner/rebaser la branche locale <%s> avec/sur la branche distante <%s>" -#: ../gitg/gitg-window.c:541 +#: ../gitg/gitg-window.c:514 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Appliquer la réserve à la branche locale <%s>" + +#: ../gitg/gitg-window.c:576 +#, c-format +msgid "Cherry-pick revision on <%s>" +msgstr "Prélever une révision sur <%s>" + +#: ../gitg/gitg-window.c:840 #, c-format msgid "Loaded %d revisions in %.2fs" -msgstr "%d révisions chargées en %.2fs" +msgstr "%d révisions chargées en %.2f s" -#: ../gitg/gitg-window.c:552 +#: ../gitg/gitg-window.c:860 #, c-format msgid "Loading %d revisions..." msgstr "Chargement de %d révisions..." -#: ../gitg/gitg-window.c:561 +#: ../gitg/gitg-window.c:869 msgid "Could not find git repository" -msgstr "Impossible de trouver le dépôt Git" +msgstr "Impossible de trouver le dépôt git" -#: ../gitg/gitg-window.c:697 +#: ../gitg/gitg-window.c:1171 +msgid "Local branches" +msgstr "Branches locales" + +#: ../gitg/gitg-window.c:1192 msgid "All branches" msgstr "Toutes les branches" -#: ../gitg/gitg-window.c:860 +#: ../gitg/gitg-window.c:1267 +msgid "Begin loading repository" +msgstr "Début du chargement du dépôt" + +#: ../gitg/gitg-window.c:1451 msgid "Open git repository" -msgstr "Ouvrir un dépôt Git" +msgstr "Ouvrir un dépôt git" -#: ../gitg/gitg-window.c:982 +#: ../gitg/gitg-window.c:1572 msgid "gitg is a git repository viewer for gtk+/GNOME" -msgstr "gitg est un butineur pour dépôt Git utilisant gtk+/GNOME" +msgstr "gitg est un navigateur de dépôt git utilisant gtk+/GNOME" -#: ../gitg/gitg-window.c:983 +#: ../gitg/gitg-window.c:1573 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -151,187 +282,728 @@ "Foundation, Inc., 59 Temple Place, Suite 330,\n" "Boston, MA 02111-1307, USA." msgstr "" +"Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le " +"modifier \n" +"sous les termes de la Licence Publique Générale GNU telle que publiée par \n" +"la Free Software Foundation ; soit la version 2 de la licence, ou (à votre " +"discrétion) \n" +"toute version ultérieure.\n" +"\n" +"Ce programme est distribué dans l'espoir qu'il puisse être utile, \n" +"mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de \n" +"VALEUR COMMERCIALE ou D'ADÉQUATION A UN BESOIN PARTICULIER. \n" +"Consultez la Licence Publique Générale GNU pour plus de détails.\n" +"\n" +"Vous devriez avoir reçu une copie de la Licence Publique Générale GNU \n" +"avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software \n" +"Foundation, Inc., 59 Temple Place - Suite 330, \n" +"Boston, MA 02111-1307, USA." -#: ../gitg/gitg-ui.xml.h:1 -msgid "Add signed-off-by" +#: ../gitg/gitg-window.c:2040 +msgid "new" +msgstr "nouveau" + +#: ../gitg/gitg-window.c:2148 ../gitg/gitg-window.c:2187 +#, c-format +msgid "New local branch <%s>" +msgstr "Nouvelle branche locale <%s>" + +#: ../gitg/gitg-window.c:2160 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Supprimer la branche distante" + +#: ../gitg/gitg-window.c:2165 +msgid "Checkout working copy" +msgstr "Extraire une copie de travail (checkout)" + +#: ../gitg/gitg-window.c:2166 +msgid "Remove local branch" +msgstr "Supprimer la branche locale" + +#: ../gitg/gitg-window.c:2168 +msgid "Rename local branch" +msgstr "Renommer la branche locale" + +#: ../gitg/gitg-window.c:2176 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Supprimer la réserve" + +#: ../gitg/gitg-window.c:2182 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Supprimer l'étiquette" + +#: ../gitg/gitg-window.c:2484 +msgid "Not all fields are correctly filled in" +msgstr "Tous les champs ne sont pas remplis correctement" + +#: ../gitg/gitg-window.c:2486 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" +"Veuillez vous assurer que le nom de l'étiquette et le message du commit " +"soient tous les deux remplis" + +#. Single one, pick filename +#: ../gitg/gitg-window.c:2579 +msgid "Save format patch" +msgstr "Sauvegarder le correctif" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "La branche <%s> ne peut être supprimée" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" msgstr "" +"Généralement cela signifie que la branche n'est pas entièrement fusionnée " +"dans le HEAD. Voulez-vous forcer la suppression de la branche ?" -#: ../gitg/gitg-ui.xml.h:2 -msgid "Author" -msgstr "Auteur" +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Forcer la suppression" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "La branche <%s> n'a pas pu être supprimée de force" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Impossible de supprimer la branche <%s> distante." + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Voulez-vous vraiment supprimer la branche <%s> distante ?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "Cela supprime de façon permanente la branche distante." + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:11 +msgid "Remove branch" +msgstr "Supprimer la branche" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Voulez-vous vraiment supprimer cet élément de la réserve ?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "Cela supprime l'élément de la réserve de façon permanente" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Impossible de supprimer la réserve" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "L'élément de la réserve n'a pas pu être supprimé" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Voulez-vous vraiment supprimer l'étiquette <%s> ?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "L'étiquette <%s> n'a pas pu être supprimée" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Impossible de supprimer l'étiquette" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "La branche <%s> n'a pas pu être renommée en <%s>" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" +"Généralement cela signifie qu'une branche portant ce nom existe déjà. Voulez-" +"vous écraser la branche ?" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "Renommer de force" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "La branche <%s> n'a pas pu être renommée de force" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:13 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Nom :" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Voulez-vous mettre en réserve temporairement ces modifications ?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "" +"Voulez-vous mettre en réserve et appliquer à nouveau ces modifications ?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "" +"Il existe des modifications non commitées dans votre arborescence de travail " +"actuelle" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Réserver les modifications" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Impossible de sauvegarder l'état actuel de l'index" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 ../gitg/gitg-branch-actions.c:1744 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Impossible d'extraire (checkout) la branche locale <%s>" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" +"Impossible d'extraire (checkout) la branche distante <%s> vers la branche " +"locale <%s>" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" +"Impossible d'extraire (checkout) l'étiquette <%s> vers la branche locale <%s>" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Impossible de rebaser la branche %s <%s> sur la branche %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "Impossible de fusionner la branche %s <%s> sur la branche %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "locale" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "distante" + +#: ../gitg/gitg-branch-actions.c:1134 ../gitg/gitg-branch-actions.c:1663 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" +"Les modifications mises en réserve ont été enregistrées pour être appliquées " +"à nouveau manuellement" + +#: ../gitg/gitg-branch-actions.c:1139 ../gitg/gitg-branch-actions.c:1668 +msgid "Failed to checkout previously checked out branch" +msgstr "Impossible d'extraire (checkout) la branche précédemment extraite" + +#: ../gitg/gitg-branch-actions.c:1160 ../gitg/gitg-branch-actions.c:1689 +msgid "Failed to reapply stash correctly" +msgstr "Impossible de ré-appliquer la réserve correctement" + +#: ../gitg/gitg-branch-actions.c:1161 ../gitg/gitg-branch-actions.c:1690 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" +"Il y a peut-être des conflits non résolus dans l'arborescence de travail ou " +"dans l'index que vous devez résoudre manuellement" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "" +"Voulez-vous vraiment fusionner la branche %s <%s> sur la branche %s <%s> ?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:6 +msgid "Merge" +msgstr "Fusionner" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "La branche sur laquelle fusionner n'a pu être extraite" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Fusion de la branche %s <%s> sur la branche %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "" +"Voulez-vous vraiment rebaser la branche %s <%s> sur la branche %s <%s> ?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:9 +msgid "Rebase" +msgstr "Rebaser" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Impossible de rebaser" + +# second sentence not very clear (punctuation missing in it. +# also mossing last full stop. +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" +"Il y a encore des changements non commités dans votre arborescence de " +"travail et vous essayez de rebaser une branche sur celle qui est " +"actuellement extraite. Il faut d'abord supprimer, mettre en réserve ou " +"commiter vos modifications, puis essayer à nouveau." + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "Rebaser la branche %s <%s> sur la branche %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "Impossible de pousser la branche locale <%s> vers la distante <%s>" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" +"Généralement cela signifie que la branche distante ne peut être transmise en " +"avance rapide (fast-forward). Essayez de récupérer (fetch) les dernières " +"modifications." + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Voulez-vous vraiment pousser <%s> sur <%s> ?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Pousser" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Pousser la branche locale <%s> vers la branche distante <%s>" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Voulez-vous vraiment pousser <%s> sur la branche distante <%s/%s> ?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Pousser la branche locale <%s> vers la branche distante <%s/%s>" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "" +"Voulez-vous vraiment appliquer l'élément de la réserve sur la branche locale " +"<%s> ?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Appliquer la réserve" -#: ../gitg/gitg-ui.xml.h:3 +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "La réserve n'a pas pu être appliquée à la branche locale <%s>" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Échec de l'application de la réserve" + +# missing full stop in source +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" +"Impossible de créer l'objet étiquette. Vérifiez que vous avez une clé GPG et " +"qu'elle est déverrouillée." + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "Impossible de créer l'objet étiquette" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Impossible de créer l'étiquette" + +#: ../gitg/gitg-branch-actions.c:1643 +#, c-format +msgid "Failed to cherry-pick on <%s>" +msgstr "Impossible de prélever un commit sur <%s>" + +#: ../gitg/gitg-branch-actions.c:1710 +#, c-format +msgid "Are you sure you want to cherry-pick that revision on <%s>?" +msgstr "Voulez-vous vraiment prélever cette révision sur <%s> ?" + +#: ../gitg/gitg-branch-actions.c:1715 ../gitg/gitg-branch-actions.c:1717 +#: ../gitg/gitg-branch-actions.c:1765 +msgid "Cherry-pick" +msgstr "Prélèvement (cherry-pick)" + +#: ../gitg/gitg-branch-actions.c:1745 +msgid "The branch on which to cherry-pick could not be checked out" +msgstr "La branche sur laquelle prélever n'a pu être extraite" + +#: ../gitg/gitg-branch-actions.c:1752 +#, c-format +msgid "Cherry-picking on <%s>" +msgstr "Prélèvement en cours sur <%s>" + +#: ../gitg/gitg-branch-actions.c:1822 +msgid "Failed to generate format-patch" +msgstr "Impossible de générer le correctif" + +#: ../gitg/gitg-branch-actions.c:1868 +#, c-format +msgid "Generating format-patch for <%s>" +msgstr "Génération du correctif pour <%s>" + +#: ../gitg/gitg-branch-actions.c:1874 ../gitg/gitg-menus.xml.h:5 +msgid "Format patch" +msgstr "Formater le correctif" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Récupérer" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Annuler" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Propriétés" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Ajouter signed-off-by" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Compléter" + +#: ../gitg/gitg-window.ui.h:3 msgid "Author:" msgstr "Auteur :" -#: ../gitg/gitg-ui.xml.h:4 +#: ../gitg/gitg-window.ui.h:4 msgid "Branch:" msgstr "Branche :" -#: ../gitg/gitg-ui.xml.h:5 +#: ../gitg/gitg-window.ui.h:5 msgid "Co_mmit message" -msgstr "" +msgstr "_Message de commit" -#: ../gitg/gitg-ui.xml.h:6 +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:6 msgid "Commit" -msgstr "" +msgstr "Commit" -#: ../gitg/gitg-ui.xml.h:7 +#: ../gitg/gitg-window.ui.h:7 msgid "Context:" msgstr "Contexte :" -#: ../gitg/gitg-ui.xml.h:8 -msgid "Date" -msgstr "Date" - -#: ../gitg/gitg-ui.xml.h:9 +#: ../gitg/gitg-window.ui.h:8 msgid "Date:" msgstr "Date :" -#: ../gitg/gitg-ui.xml.h:10 +#: ../gitg/gitg-window.ui.h:9 msgid "Details" msgstr "Détails" -#: ../gitg/gitg-ui.xml.h:11 -msgid "Filename" -msgstr "Nom du fichier" - -#: ../gitg/gitg-ui.xml.h:12 +#: ../gitg/gitg-window.ui.h:10 msgid "History" msgstr "Historique" -#: ../gitg/gitg-ui.xml.h:13 -msgid "Ignore" -msgstr "Ignorer" - -#: ../gitg/gitg-ui.xml.h:14 +#: ../gitg/gitg-window.ui.h:11 msgid "Parent:" msgstr "Parent :" -#: ../gitg/gitg-ui.xml.h:15 -#, fuzzy -msgid "R_ecently Opened" -msgstr "Récemment ouvert" - -#: ../gitg/gitg-ui.xml.h:16 -msgid "Revert" -msgstr "Annuler" - -#: ../gitg/gitg-ui.xml.h:17 +#: ../gitg/gitg-window.ui.h:12 msgid "SHA:" msgstr "SHA :" -#: ../gitg/gitg-ui.xml.h:18 -msgid "Stage" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:19 -msgid "Subject" -msgstr "Sujet" - -#: ../gitg/gitg-ui.xml.h:20 +#: ../gitg/gitg-window.ui.h:13 msgid "Subject:" msgstr "Sujet :" -#: ../gitg/gitg-ui.xml.h:21 +#: ../gitg/gitg-window.ui.h:14 msgid "Tree" msgstr "Arborescence" -#: ../gitg/gitg-ui.xml.h:22 -msgid "Unstage" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:23 -msgid "Unstaged" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:24 +#: ../gitg/gitg-window.ui.h:15 msgid "_Changes" msgstr "_Modifications" -#: ../gitg/gitg-ui.xml.h:25 -msgid "_Edit" -msgstr "_Editer" - -#: ../gitg/gitg-ui.xml.h:26 -msgid "_File" -msgstr "_Fichier" - -#: ../gitg/gitg-ui.xml.h:27 -msgid "_Help" -msgstr "_Aide" - -#: ../gitg/gitg-ui.xml.h:28 -msgid "_Open..." -msgstr "" - -#: ../gitg/gitg-ui.xml.h:29 +#: ../gitg/gitg-window.ui.h:16 msgid "_Staged" -msgstr "" +msgstr "_Présélectionné" -#: ../gitg/gitg-ui.xml.h:30 +#: ../gitg/gitg-window.ui.h:17 msgid "_Unstaged" -msgstr "" +msgstr "_Dé-présélectionné" -#: ../gitg/gitg-ui.xml.h:31 -msgid "_View" -msgstr "_Vue" +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignorer" -#: ../gitg/gitg-menus.xml.h:1 -msgid "_Author" -msgstr "_Auteur" +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Annuler (revert)" -#: ../gitg/gitg-menus.xml.h:2 -msgid "_Date" -msgstr "_Date" +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "Présélectionner" -#: ../gitg/gitg-menus.xml.h:3 -msgid "_Hash" -msgstr "_Hash" +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Dé-présélectionner" -#: ../gitg/gitg-menus.xml.h:4 -msgid "_Subject" -msgstr "_Sujet" +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Message de commit" -#: ../gitg/gitg-preferences.xml.h:1 +#: ../gitg/gitg-preferences.ui.h:2 msgid "History" msgstr "Historique" -#: ../gitg/gitg-preferences.xml.h:2 +#: ../gitg/gitg-preferences.ui.h:3 +msgid "Main" +msgstr "Principal" + +#: ../gitg/gitg-preferences.ui.h:4 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Utilisateur" + +#: ../gitg/gitg-preferences.ui.h:5 msgid "Collapse inactive lanes" -msgstr "" +msgstr "Réduire les lignes inactives" -#: ../gitg/gitg-preferences.xml.h:3 +#: ../gitg/gitg-preferences.ui.h:7 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Configuration" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" +"Configurer les paramètres globaux de git. Cela correspond aux paramètres " +"stockés dans ~/.gitconfig. Les paramètres spécifiques de dépôts peuvent être " +"configurés dans les propriétés de dépôts." + +#: ../gitg/gitg-preferences.ui.h:9 +msgid "Display right _margin" +msgstr "Afficher la marge de _droite" + +#: ../gitg/gitg-preferences.ui.h:10 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "Adresse électronique :" + +#: ../gitg/gitg-preferences.ui.h:11 msgid "Early" -msgstr "" +msgstr "Tôt" -#: ../gitg/gitg-preferences.xml.h:4 +#: ../gitg/gitg-preferences.ui.h:12 msgid "Late" -msgstr "" +msgstr "Tard" -#: ../gitg/gitg-preferences.xml.h:5 +#: ../gitg/gitg-preferences.ui.h:14 msgid "Preferences" msgstr "Préférences" -#: ../gitg/gitg-preferences.xml.h:6 +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the commit view" +msgstr "Préférences s'appliquant à la vue commit" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Preferences that apply to the revision view" +msgstr "Préférences s'appliquant à la vue de révision" + +#: ../gitg/gitg-preferences.ui.h:17 msgid "Search filters revisions in the history view" -msgstr "" +msgstr "Révisions des filtres de recherche dans la vue de l'historique" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show history in topological order" +msgstr "Afficher l'historique dans l'ordre topologique" -#: ../gitg/gitg-preferences.xml.h:7 +#: ../gitg/gitg-preferences.ui.h:19 msgid "Show staged changes in history" -msgstr "" +msgstr "Afficher les changements présélectionnés dans l'historique" -#: ../gitg/gitg-preferences.xml.h:8 +#: ../gitg/gitg-preferences.ui.h:20 msgid "Show stash in history" -msgstr "" +msgstr "Afficher la réserve dans l'historique" -#: ../gitg/gitg-preferences.xml.h:9 +#: ../gitg/gitg-preferences.ui.h:21 msgid "Show unstaged changes in history" -msgstr "" +msgstr "Afficher les changements dé-présélectionnés dans l'historique" -#: ../gitg/gitg-preferences.xml.h:10 +#: ../gitg/gitg-preferences.ui.h:22 +msgid "Use vertical layout" +msgstr "Utiliser la disposition verticale" + +# View tab refers to history view? Maybe name should change. +#: ../gitg/gitg-preferences.ui.h:23 msgid "View" -msgstr "Vue" +msgstr "Affichage" + +#: ../gitg/gitg-preferences.ui.h:24 +msgid "_Right margin at column:" +msgstr "_Marge de droite à la colonne :" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Nom" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "À distance" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Créer un objet étiquette signé" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:4 +msgid "Create tag" +msgstr "Créer une étiquette" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Message :" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Appliquer la réserve à..." + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Extraire une branche (checkout)" + +#: ../gitg/gitg-menus.xml.h:3 +msgid "Cherry-pick on..." +msgstr "Prélever un commit sur..." + +#: ../gitg/gitg-menus.xml.h:7 +msgid "Merge branch with..." +msgstr "Fusionner la branche avec..." + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Push branch to..." +msgstr "Pousser la branche vers..." + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rebase branch onto..." +msgstr "Rebaser la branche sur..." + +#: ../gitg/gitg-menus.xml.h:12 +msgid "Rename branch" +msgstr "Renommer la branche" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Author" +msgstr "_Auteur" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Date" +msgstr "_Date" + +#: ../gitg/gitg-menus.xml.h:15 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:16 +msgid "_Subject" +msgstr "_Sujet" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "Réc_emment ouvert" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "É_diter" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Fichier" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "Aid_e" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Ouvrir..." + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "_Dépôt" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Affichage" + +#~ msgid "The command to handle FEED scheme URLs." +#~ msgstr "La commande pour traiter les URL de type FEED." + +#~ msgid "Author" +#~ msgstr "Auteur" + +#~ msgid "Date" +#~ msgstr "Date" + +#~ msgid "Filename" +#~ msgstr "Nom du fichier" + +#~ msgid "Subject" +#~ msgstr "Sujet" #~ msgid "Co_mment" #~ msgstr "Co_mmentaire" diff -Nru gitg-0.0.3/po/gl.po gitg-0.0.6/po/gl.po --- gitg-0.0.3/po/gl.po 2009-04-21 23:44:21.000000000 +0100 +++ gitg-0.0.6/po/gl.po 2010-01-23 21:03:30.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gitg\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-22 00:44+0200\n" +"POT-Creation-Date: 2009-07-05 21:28+0200\n" "PO-Revision-Date: 2009-04-21 12:27+0200\n" "Last-Translator: Ignacio Casal Quinteiro \n" "Language-Team: Galician \n" @@ -21,26 +21,48 @@ msgstr "Examinador de repositorios Git" #. Translators: this is the application name as in g_set_application_name -#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:169 ../gitg/gitg-window.c:785 -#: ../gitg/gitg-window.c:803 ../gitg/gitg-ui.xml.h:32 +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:169 +#: ../gitg/gitg-window.c:1005 ../gitg/gitg-window.c:1018 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 msgid "gitg" msgstr "gitg" #: ../data/gitg.schemas.in.h:1 -msgid "Filter Revisions When Searching" +msgid "Column at Which Right Margin is Shown" msgstr "" #: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "" + +#: ../data/gitg.schemas.in.h:3 msgid "" "Setting that indicates when an inactive lane should be collapsed. Valid " "values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." msgstr "" -#: ../data/gitg.schemas.in.h:3 +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" + +#: ../data/gitg.schemas.in.h:7 msgid "When to Collapse Inactive Lanes" msgstr "" -#: ../data/gitg.schemas.in.h:4 +#: ../data/gitg.schemas.in.h:8 msgid "" "Whether searching filters the revisions in the history view instead of " "jumping to the first match." @@ -54,49 +76,49 @@ msgid "- git repository viewer" msgstr "- visor de repositorios git" -#: ../gitg/gitg-commit-view.c:204 ../gitg/gitg-revision-tree-view.c:181 +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:181 msgid "Cannot display file content as text" msgstr "Non se pode mostrar o contido do ficheiro como texto" -#: ../gitg/gitg-commit-view.c:1166 +#: ../gitg/gitg-commit-view.c:1431 msgid "You must first stage some changes before committing" msgstr "" -#: ../gitg/gitg-commit-view.c:1174 +#: ../gitg/gitg-commit-view.c:1439 msgid "Please enter a commit message before committing" msgstr "Introduza unha mensaxe de commit antes de facer commit" -#: ../gitg/gitg-commit-view.c:1185 +#: ../gitg/gitg-commit-view.c:1451 msgid "" "Your user name or email could not be retrieved for use in the sign off " "message" msgstr "" -#: ../gitg/gitg-commit-view.c:1187 +#: ../gitg/gitg-commit-view.c:1453 msgid "Something went wrong while trying to commit" msgstr "" -#: ../gitg/gitg-commit-view.c:1355 +#: ../gitg/gitg-commit-view.c:1612 msgid "Revert fail" msgstr "Fallou ao reverter" -#: ../gitg/gitg-commit-view.c:1366 +#: ../gitg/gitg-commit-view.c:1623 msgid "Are you sure you want to revert these changes?" msgstr "Está seguro de que quere reverter os cambios?" -#: ../gitg/gitg-commit-view.c:1369 +#: ../gitg/gitg-commit-view.c:1626 msgid "Reverting changes is permanent and cannot be undone" msgstr "" -#: ../gitg/gitg-repository.c:472 +#: ../gitg/gitg-repository.c:591 msgid "Staged changes" msgstr "" -#: ../gitg/gitg-repository.c:474 +#: ../gitg/gitg-repository.c:593 msgid "Unstaged changes" msgstr "" -#: ../gitg/gitg-repository.c:983 +#: ../gitg/gitg-repository.c:1148 msgid "Not a valid git repository" msgstr "Non é un repositorio git válido" @@ -104,41 +126,61 @@ msgid "(Empty)" msgstr "(Baleiro)" -#: ../gitg/gitg-window.c:346 +#: ../gitg/gitg-window.c:420 msgid "Select branch" msgstr "Seleccionar rama" -#: ../gitg/gitg-window.c:532 +#: ../gitg/gitg-window.c:482 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:489 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:496 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:503 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:771 msgid "Begin loading repository" msgstr "Comezar cargando repositorio" -#: ../gitg/gitg-window.c:541 +#: ../gitg/gitg-window.c:780 #, c-format msgid "Loaded %d revisions in %.2fs" msgstr "Cargadas %d revisións en %.2fs" -#: ../gitg/gitg-window.c:552 +#: ../gitg/gitg-window.c:791 #, c-format msgid "Loading %d revisions..." msgstr "Cargando %d revisións..." -#: ../gitg/gitg-window.c:561 +#: ../gitg/gitg-window.c:800 msgid "Could not find git repository" msgstr "Non se puido encontrar o repositorio git" -#: ../gitg/gitg-window.c:697 +#: ../gitg/gitg-window.c:983 msgid "All branches" msgstr "Todas as ramas" -#: ../gitg/gitg-window.c:860 +#: ../gitg/gitg-window.c:1192 msgid "Open git repository" msgstr "Abrir repositorio git" -#: ../gitg/gitg-window.c:982 +#: ../gitg/gitg-window.c:1313 msgid "gitg is a git repository viewer for gtk+/GNOME" msgstr "gitg é un visor de repositorios git para gtk+/Gnome" -#: ../gitg/gitg-window.c:983 +#: ../gitg/gitg-window.c:1314 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -156,186 +198,599 @@ "Boston, MA 02111-1307, USA." msgstr "" -#: ../gitg/gitg-ui.xml.h:1 +#: ../gitg/gitg-window.c:1775 ../gitg/gitg-window.c:1809 +#, fuzzy, c-format +msgid "New local branch <%s>" +msgstr "Todas as ramas" + +#: ../gitg/gitg-window.c:1787 ../gitg/gitg-branch-actions.c:316 +#, fuzzy +msgid "Remove remote branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-window.c:1791 +msgid "Checkout working copy" +msgstr "" + +#: ../gitg/gitg-window.c:1792 +#, fuzzy +msgid "Remove local branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-window.c:1800 ../gitg/gitg-branch-actions.c:391 +msgid "Remove stash" +msgstr "" + +#: ../gitg/gitg-window.c:1805 ../gitg/gitg-branch-actions.c:456 +#: ../gitg/gitg-branch-actions.c:458 +#, fuzzy +msgid "Remove tag" +msgstr "Reverter" + +#: ../gitg/gitg-window.c:1984 +msgid "Not all fields are correctly filled in" +msgstr "" + +#: ../gitg/gitg-window.c:1986 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:314 +#, fuzzy, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +#, fuzzy +msgid "Remove branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-branch-actions.c:389 +#, fuzzy +msgid "Are you sure you want to remove this stash item?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "This permanently removes the stash item" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:417 +msgid "Failed to remove stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "The stash item could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:452 +#, fuzzy, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:475 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:479 +msgid "Failed to remove tag" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:579 +#, fuzzy +msgid "Do you want to temporarily stash these changes?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:583 +#, fuzzy +msgid "Do you want to stash and reapply these changes?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:588 +msgid "You have uncommited changes in your current working tree" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:590 +msgid "Stash changes" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:766 +msgid "Failed to save current index state" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:820 ../gitg/gitg-branch-actions.c:1102 +#: ../gitg/gitg-branch-actions.c:1397 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:858 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:898 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:989 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:993 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1001 ../gitg/gitg-branch-actions.c:1003 +#: ../gitg/gitg-branch-actions.c:1069 ../gitg/gitg-branch-actions.c:1071 +#: ../gitg/gitg-branch-actions.c:1110 ../gitg/gitg-branch-actions.c:1112 +#: ../gitg/gitg-branch-actions.c:1146 ../gitg/gitg-branch-actions.c:1148 +#: ../gitg/gitg-branch-actions.c:1193 ../gitg/gitg-branch-actions.c:1195 +msgid "local" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1001 ../gitg/gitg-branch-actions.c:1003 +#: ../gitg/gitg-branch-actions.c:1069 ../gitg/gitg-branch-actions.c:1071 +#: ../gitg/gitg-branch-actions.c:1110 ../gitg/gitg-branch-actions.c:1112 +#: ../gitg/gitg-branch-actions.c:1146 ../gitg/gitg-branch-actions.c:1148 +#: ../gitg/gitg-branch-actions.c:1193 ../gitg/gitg-branch-actions.c:1195 +#, fuzzy +msgid "remote" +msgstr "Árbore" + +#: ../gitg/gitg-branch-actions.c:1020 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1025 +msgid "Failed to checkout previously checked out branch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1046 +msgid "Failed to reapply stash correctly" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1047 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1068 +#, fuzzy, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:1076 ../gitg/gitg-branch-actions.c:1078 +#: ../gitg/gitg-branch-actions.c:1122 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1103 +msgid "The branch on which to merge could not be checked out" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1109 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1145 +#, fuzzy, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:1153 ../gitg/gitg-branch-actions.c:1155 +#: ../gitg/gitg-branch-actions.c:1205 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1178 +msgid "Unable to rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1179 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1192 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1231 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1232 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1256 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:1262 ../gitg/gitg-branch-actions.c:1264 +#: ../gitg/gitg-branch-actions.c:1285 ../gitg/gitg-branch-actions.c:1317 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-branch-actions.c:1346 +msgid "Push" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1277 ../gitg/gitg-branch-actions.c:1331 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1311 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to remote <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:1370 +#, fuzzy, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "Está seguro de que quere reverter os cambios?" + +#: ../gitg/gitg-branch-actions.c:1375 ../gitg/gitg-branch-actions.c:1377 +msgid "Apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1416 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1420 +msgid "Failed to apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1466 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1470 +msgid "The tag object could not be successfully created" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1475 +msgid "Failed to create tag" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "" + +#: ../gitg/gitg-window.ui.h:1 msgid "Add signed-off-by" msgstr "" -#: ../gitg/gitg-ui.xml.h:2 -msgid "Author" -msgstr "Autor" +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "" -#: ../gitg/gitg-ui.xml.h:3 +#: ../gitg/gitg-window.ui.h:3 msgid "Author:" msgstr "Autor:" -#: ../gitg/gitg-ui.xml.h:4 +#: ../gitg/gitg-window.ui.h:4 msgid "Branch:" msgstr "Rama:" -#: ../gitg/gitg-ui.xml.h:5 +#: ../gitg/gitg-window.ui.h:5 msgid "Co_mmit message" msgstr "" -#: ../gitg/gitg-ui.xml.h:6 +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 msgid "Commit" msgstr "Facer commit" -#: ../gitg/gitg-ui.xml.h:7 +#: ../gitg/gitg-window.ui.h:7 msgid "Context:" msgstr "Contexto:" -#: ../gitg/gitg-ui.xml.h:8 -msgid "Date" -msgstr "Data" - -#: ../gitg/gitg-ui.xml.h:9 +#: ../gitg/gitg-window.ui.h:8 msgid "Date:" msgstr "Data:" -#: ../gitg/gitg-ui.xml.h:10 +#: ../gitg/gitg-window.ui.h:9 msgid "Details" msgstr "Detalles" -#: ../gitg/gitg-ui.xml.h:11 -msgid "Filename" -msgstr "Nome de ficheiro" - -#: ../gitg/gitg-ui.xml.h:12 +#: ../gitg/gitg-window.ui.h:10 msgid "History" msgstr "Historial" -#: ../gitg/gitg-ui.xml.h:13 -msgid "Ignore" -msgstr "Ignorar" - -#: ../gitg/gitg-ui.xml.h:14 +#: ../gitg/gitg-window.ui.h:11 msgid "Parent:" msgstr "Pai:" -#: ../gitg/gitg-ui.xml.h:15 -#, fuzzy -msgid "R_ecently Opened" -msgstr "Aberto recentemente" - -#: ../gitg/gitg-ui.xml.h:16 -msgid "Revert" -msgstr "Reverter" - -#: ../gitg/gitg-ui.xml.h:17 +#: ../gitg/gitg-window.ui.h:12 msgid "SHA:" msgstr "SHA:" -#: ../gitg/gitg-ui.xml.h:18 -msgid "Stage" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:19 -msgid "Subject" -msgstr "Asunto" - -#: ../gitg/gitg-ui.xml.h:20 +#: ../gitg/gitg-window.ui.h:13 msgid "Subject:" msgstr "Asunto:" -#: ../gitg/gitg-ui.xml.h:21 +#: ../gitg/gitg-window.ui.h:14 msgid "Tree" msgstr "Árbore" -#: ../gitg/gitg-ui.xml.h:22 -msgid "Unstage" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:23 -msgid "Unstaged" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:24 +#: ../gitg/gitg-window.ui.h:15 msgid "_Changes" msgstr "_Cambios" -#: ../gitg/gitg-ui.xml.h:25 -msgid "_Edit" -msgstr "_Editar" - -#: ../gitg/gitg-ui.xml.h:26 -msgid "_File" -msgstr "_Ficheiro" - -#: ../gitg/gitg-ui.xml.h:27 -msgid "_Help" -msgstr "A_xuda" - -#: ../gitg/gitg-ui.xml.h:28 -msgid "_Open..." -msgstr "_Abrir..." - -#: ../gitg/gitg-ui.xml.h:29 +#: ../gitg/gitg-window.ui.h:16 msgid "_Staged" msgstr "" -#: ../gitg/gitg-ui.xml.h:30 +#: ../gitg/gitg-window.ui.h:17 msgid "_Unstaged" msgstr "" -#: ../gitg/gitg-ui.xml.h:31 -msgid "_View" -msgstr "_Ver" +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignorar" -#: ../gitg/gitg-menus.xml.h:1 -msgid "_Author" -msgstr "_Autor" +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Reverter" -#: ../gitg/gitg-menus.xml.h:2 -msgid "_Date" -msgstr "_Data" +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "" -#: ../gitg/gitg-menus.xml.h:3 -msgid "_Hash" -msgstr "_Hash" +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "" -#: ../gitg/gitg-menus.xml.h:4 -msgid "_Subject" -msgstr "A_sunto" +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "" -#: ../gitg/gitg-preferences.xml.h:1 +#: ../gitg/gitg-preferences.ui.h:2 msgid "History" msgstr "Historial" -#: ../gitg/gitg-preferences.xml.h:2 +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +#, fuzzy +msgid "User" +msgstr "Historial" + +#: ../gitg/gitg-preferences.ui.h:4 msgid "Collapse inactive lanes" msgstr "" -#: ../gitg/gitg-preferences.xml.h:3 +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:10 msgid "Early" msgstr "" -#: ../gitg/gitg-preferences.xml.h:4 +#: ../gitg/gitg-preferences.ui.h:11 msgid "Late" msgstr "" -#: ../gitg/gitg-preferences.xml.h:5 +#: ../gitg/gitg-preferences.ui.h:12 ../gitg/gitg-repository.ui.h:6 +#: ../gitg/gitg-tag.ui.h:4 +#, fuzzy +msgid "Name:" +msgstr "Data:" + +#: ../gitg/gitg-preferences.ui.h:13 msgid "Preferences" msgstr "Preferencias" -#: ../gitg/gitg-preferences.xml.h:6 +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:16 msgid "Search filters revisions in the history view" msgstr "Buscar revisións filtradas no visor do historial" -#: ../gitg/gitg-preferences.xml.h:7 +#: ../gitg/gitg-preferences.ui.h:17 msgid "Show staged changes in history" msgstr "" -#: ../gitg/gitg-preferences.xml.h:8 +#: ../gitg/gitg-preferences.ui.h:18 msgid "Show stash in history" msgstr "" -#: ../gitg/gitg-preferences.xml.h:9 +#: ../gitg/gitg-preferences.ui.h:19 msgid "Show unstaged changes in history" msgstr "" -#: ../gitg/gitg-preferences.xml.h:10 +#: ../gitg/gitg-preferences.ui.h:20 msgid "View" msgstr "Ver" +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:5 +#, fuzzy +msgid "Name" +msgstr "Data:" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:10 +msgid "gtk-add" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:11 +msgid "gtk-remove" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:2 +#, fuzzy +msgid "Checkout branch" +msgstr "Seleccionar rama" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "_Author" +msgstr "_Autor" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Date" +msgstr "_Data" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Subject" +msgstr "A_sunto" + +#: ../gitg/gitg-ui.xml.h:2 +#, fuzzy +msgid "R_ecently Opened" +msgstr "Aberto recentemente" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Editar" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Ficheiro" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "A_xuda" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Abrir..." + +#: ../gitg/gitg-ui.xml.h:10 +#, fuzzy +msgid "_Repository" +msgstr "Abrir repositorio git" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Ver" + +#~ msgid "Author" +#~ msgstr "Autor" + +#~ msgid "Date" +#~ msgstr "Data" + +#~ msgid "Filename" +#~ msgstr "Nome de ficheiro" + +#~ msgid "Subject" +#~ msgstr "Asunto" + #~ msgid "Co_mment" #~ msgstr "Co_mentario" diff -Nru gitg-0.0.3/po/it.po gitg-0.0.6/po/it.po --- gitg-0.0.3/po/it.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/it.po 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,867 @@ +# ITALIAN GITG TRANSLATION. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Mario Calabrese , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: Gitg 0.0.3-2\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=gitg&component=gitg\n" +"POT-Creation-Date: 2009-10-12 18:54+0000\n" +"PO-Revision-Date: 2009-09-21 22:16+0200\n" +"Last-Translator: Mario Calabrese \n" +"Language-Team: ITALIAN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../data/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Browser di repository Git" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:179 +#: ../gitg/gitg-window.c:1017 ../gitg/gitg-window.c:1030 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "Colonna sulla quale è mostrato il margine destro" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Filtrare le revisioni durante la ricerca" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" +"Impostazione che indica quando una linea inattiva dovrebbe essere ridotta. I " +"valori validi sono 0 - 4, dove 0 indica 'presto' e 4 indica 'tardi'." + +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "Mostra il margine destro nella vista del messaggio di commit" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" +"Mostra un indicatore del margine destro nella vista del messaggio di commit. " +"Questo può essere usato per vedere facilmente dove spezzare il messaggio di " +"commit in una certa colonna." + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" +"La colonna sulla quale il margine destro viene mostrato se la preferenza del " +"margine destro è impostata a VERO" + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "Quando ridurre le linee inattive" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" +"Indica se la ricerca filtra le revisioni nella vista cronologica invece di " +"saltare al primo risultato" + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Mostra la versione dell'applicazione" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "Avvia gitg in modalità commit" + +#: ../gitg/gitg.c:63 +msgid "- git repository viewer" +msgstr "- visualizzatore del repository git" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "Impossibile mostrare il contenuto del file in modalità testo" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "È necessario aggiungere delle modifiche per poter effettuare il commit" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "Immettere una descrizione prima di effettuare il commit" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" +"Impossibile recuperare il nome utente o l'indirizzo di posta elettronica per " +"usarli nel messaggio di sign off" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "Errore durante la procedura di commit" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "Errore di annullamento" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "Annullare veramente queste modifiche?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "L'annullamento è permanente e non può essere eliminato" + +#: ../gitg/gitg-repository.c:591 +msgid "Staged changes" +msgstr "Modifiche aggiunte" + +#: ../gitg/gitg-repository.c:593 +msgid "Unstaged changes" +msgstr "Modifiche non aggiunte" + +#: ../gitg/gitg-repository.c:1155 +msgid "Not a valid git repository" +msgstr "Repository Git non valido" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "(Vuoto)" + +#: ../gitg/gitg-window.c:423 +msgid "Select branch" +msgstr "Seleziona un ramo" + +#: ../gitg/gitg-window.c:485 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Effettua il push dal ramo locale <%s> sul ramo remoto <%s>" + +#: ../gitg/gitg-window.c:492 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "Unisci/ricombina il ramo locale <%s> con/sul ramo locale <%s>" + +#: ../gitg/gitg-window.c:499 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "Unisci/ricombina il ramo locale <%s> con/sul ramo remoto <%s>" + +# Non so come tradurre il sostantivo stash in italiano. +#: ../gitg/gitg-window.c:506 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Applica lo stash sul ramo locale <%s>" + +#: ../gitg/gitg-window.c:774 +msgid "Begin loading repository" +msgstr "Inizia il caricamento del repository" + +#: ../gitg/gitg-window.c:783 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "%d revisioni caricate in %.2fs" + +#: ../gitg/gitg-window.c:794 +#, c-format +msgid "Loading %d revisions..." +msgstr "Caricamento di %d revisioni" + +#: ../gitg/gitg-window.c:803 +msgid "Could not find git repository" +msgstr "Repository git non trovato" + +#: ../gitg/gitg-window.c:995 +msgid "All branches" +msgstr "Tutti i rami" + +#: ../gitg/gitg-window.c:1206 +msgid "Open git repository" +msgstr "Apri repository git" + +#: ../gitg/gitg-window.c:1327 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "gitg è un visualizzatore di repository git per gtk+/GNOME" + +#: ../gitg/gitg-window.c:1328 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" +"Questo programma è free software; è possibile ridistribuirlo e/o\n" +"modificarlo secondo i termini della GNU General Public License così come " +"pubblicata dalla\n" +"Free Software Foundation; versione 2 della Licenza, 0\n" +"(a scelta) ogni altra versione successiva.\n" +"\n" +"Questo programma è distribuito nella speranza che sia utile,\n" +"ma SENZA NESSUNA GARANZIA; e senza garanzia implicita di\n" +"COMMERCIALIZZAZIONE o di ADATTAMENTO AD UNO SCOPO PARTICOLARE. Consulta la\n" +"Gnu General Public License per ulteriori dettagli.\n" +"Dovresti aver ricevuto una copia della Gnu General Public License \n" +"insieme a questo programma; in caso contrario, scrivi alla Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." + +#: ../gitg/gitg-window.c:1790 +msgid "new" +msgstr "" + +#: ../gitg/gitg-window.c:1898 ../gitg/gitg-window.c:1937 +#, c-format +msgid "New local branch <%s>" +msgstr "Nuovo ramo locale <%s>" + +#: ../gitg/gitg-window.c:1910 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Rimuovi ramo remoto" + +#: ../gitg/gitg-window.c:1915 +msgid "Checkout working copy" +msgstr "Estrarre una copia di lavoro" + +#: ../gitg/gitg-window.c:1916 +msgid "Remove local branch" +msgstr "Rimuovi ramo locale" + +#: ../gitg/gitg-window.c:1918 +#, fuzzy +#| msgid "Remove local branch" +msgid "Rename local branch" +msgstr "Rimuovi ramo locale" + +# Non so come tradurre il sostantivo stash. +#: ../gitg/gitg-window.c:1926 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Rimuovi lo stash" + +#: ../gitg/gitg-window.c:1932 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Rimuovi l'etichetta" + +#: ../gitg/gitg-window.c:2107 +msgid "Not all fields are correctly filled in" +msgstr "Non tutti i campi sono stati riempiti correttamente" + +#: ../gitg/gitg-window.c:2109 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" +"Assicurarsi di riempire sia il nome dell'etichetta che il messaggio di commit" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "Il ramo <%s> non può essere rimosso" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" +"Questo significa normalmente che il ramo non è stato completamente riunito " +"con HEAD. Forzarne la rimozione?" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Forza la rimozione" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "Non è possibile forzare la rimozione del ramo <%s>" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Impossibile rimuovere il ramo remoto <%s>" + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Rimuovere veramente il ramo remoto <%s>?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "Questo rimuoverà permanentemente il ramo remoto" + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +msgid "Remove branch" +msgstr "Rimuovi il ramo" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Rimuovere veramente questo oggetto dallo stash?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "Questo rimuoverà permanentemente l'oggetto dallo stash" + +# Non so come tradurre il sostantivo stash. +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Impossibile rimuovere lo stash" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "Non è stato possibile rimuovere l'oggetto dallo stash" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Rimuovere veramente l'etichetta <%s>?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "L'etichetta <%s> non può essere rimossa" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Errore nella rimozione dell'etichetta" + +#: ../gitg/gitg-branch-actions.c:534 +#, fuzzy, c-format +#| msgid "Branch <%s> could not be removed" +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "Il ramo <%s> non può essere rimosso" + +#: ../gitg/gitg-branch-actions.c:535 +#, fuzzy +#| msgid "" +#| "This usually means that the branch is not fully merged in HEAD. Do you " +#| "want to forcefully remove the branch?" +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" +"Questo significa normalmente che il ramo non è stato completamente riunito " +"con HEAD. Forzarne la rimozione?" + +#: ../gitg/gitg-branch-actions.c:536 +#, fuzzy +#| msgid "Force remove" +msgid "Force rename" +msgstr "Forza la rimozione" + +#: ../gitg/gitg-branch-actions.c:545 +#, fuzzy, c-format +#| msgid "Branch <%s> could not be forcefully removed" +msgid "Branch <%s> could not be forcefully renamed" +msgstr "Non è possibile forzare la rimozione del ramo <%s>" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:12 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Nome:" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Nascondere temporaneamente nello stash queste modifiche?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "Nascondere nello stash e riapplicare queste modifiche?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "" +"Ci sono delle modifiche nella copia di lavoro di cui non è stato effettuato " +"il commit" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Nascondi le modifiche nello stash" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Impossibile salvare lo stato dell'indice attuale" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Impossibile controllare il ramo locale <%s>" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "Impossibile estrarre il ramo remoto <%s> su quello locale <%s>" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "Impossibile estrarre l'etichetta <%s> sul ramo locale <%s>" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Impossibile ricombinare il ramo %s <%s> sul ramo %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "Impossibile unire il ramo %s <%s> con il ramo %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "locale" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "remoto" + +#: ../gitg/gitg-branch-actions.c:1134 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" +"Le modifiche nascoste nello stash sono state archiviate per essere " +"riapplicate manualmente" + +#: ../gitg/gitg-branch-actions.c:1139 +msgid "Failed to checkout previously checked out branch" +msgstr "Impossibile estrarre il ramo precedentemente estratto" + +#: ../gitg/gitg-branch-actions.c:1160 +msgid "Failed to reapply stash correctly" +msgstr "Impossibile riapplicare lo stash correttamente" + +#: ../gitg/gitg-branch-actions.c:1161 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" +"Potrebbero esserci conflitti non risolti nella copia di lavoro o nell'indice " +"che devono essere risolti manualmente" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Unire veramente il ramo %s <%s> sopra il ramo %s <%s>?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "Unisci" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "Il ramo di destinazione non può essere estratto" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Unione del ramo %s <%s> sul ramo %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Ricombinare veramente il ramo %s <%s> sul ramo %s <%s>?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "Ricombina" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Impossibile ricombinare" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" +"Ci sono modifiche nella copia di lavoro di cui non è stato effettuato il " +"commit e si sta provando a ricombinare un ramo su quello attualmente " +"estratto. Provare prima a rimuovere, nascondere nello stash o fare il commit " +"e poi provare di nuovo" + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "Ricombinazione del ramo %s <%s> sul ramo %s <%s>" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "Impossibile fare il push del ramo locale <%s> su quello remoto <%s>" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" +"Questo significa normalmente che il ramo remoto non può essere avanzato " +"velocemente. Provare a recuperare le ultime modifiche" + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Effettuare veramente il push %s su <%s>?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Push" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Operazione di push del ramo locale <%s> su quello remoto <%s> in corso" + +#: ../gitg/gitg-branch-actions.c:1426 +#, fuzzy, c-format +#| msgid "Are you sure you want to push <%s> to remote <%s>?" +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Effettuare veramente il push <%s> sul remoto <%s>?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, fuzzy, c-format +#| msgid "Pushing local branch <%s> to remote branch <%s>" +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Operazione di push del ramo locale <%s> su quello remoto <%s> in corso" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "" +"Sei sicuro di voler applicare l'oggetto nascosto nello stash sul ramo locale " +"<%s>?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Applica lo stash" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "Lo stash non può essere applicato sul ramo locale <%s>" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Impossibile applicare lo stash" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" +"Impossibile creare l'oggetto etichetta. Assicurarsi di avere una chiave GPG " +"e che questa sia sbloccata" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "Impossibile creare correttamente l'oggetto etichetta" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Impossibile creare l'etichetta" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Recupera" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Annulla" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Proprietà" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Aggiungi signed-off-by" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Correggi" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "Autore:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "Ramo:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "Messaggio di co_mmit" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 +msgid "Commit" +msgstr "Commit" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "Contesto:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "Data:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "Dettagli" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "Cronologia" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "Livello superiore:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "Soggetto:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "Albero" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "_Modifiche" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "_Aggiunti" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "_Non aggiunti" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignora" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Annulla" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "Aggiungi" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Rimuovi" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Messaggio di commit" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "Cronologia" + +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Utente" + +#: ../gitg/gitg-preferences.ui.h:4 +msgid "Collapse inactive lanes" +msgstr "Riduci le linee inattive" + +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Configurazione" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" +"Configura le impostazioni globali di git. Questo corrisponderà ai parametri " +"archiviati in ~/.gitconfig. Le impostazioni specifiche di ciascun repository " +"possono essere configurate nelle proprietà del repository." + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "Mostra il _margine destro" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "E-mail:" + +#: ../gitg/gitg-preferences.ui.h:10 +msgid "Early" +msgstr "Presto" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Late" +msgstr "Tardi" + +#: ../gitg/gitg-preferences.ui.h:13 +msgid "Preferences" +msgstr "Preferenze" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "Preferenze relative alla vista commit" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "Preferenze relative alla vista revisione" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Search filters revisions in the history view" +msgstr "La ricerca filtra le revisioni nella cronologia" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Show staged changes in history" +msgstr "Mostra le modifiche aggiunte nella cronologia" + +# Non so come tradurre il sostantivo stash, il genere per ora è maschile. +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show stash in history" +msgstr "Mostra lo stash nella cronologia" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show unstaged changes in history" +msgstr "Mostra le modifiche non aggiunte nella cronologia" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "View" +msgstr "Visualizza" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "Margine _destro sulla colonna:" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Nome" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "Remoti" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Crea un oggetto etichetta firmato" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "Crea etichetta" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Messaggio:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Applica lo stash a..." + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Estrai un ramo" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "Unisci il ramo con..." + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "Fai il push del ramo verso..." + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "Ricombina il ramo su..." + +#: ../gitg/gitg-menus.xml.h:10 +#, fuzzy +#| msgid "Remove branch" +msgid "Rename branch" +msgstr "Rimuovi il ramo" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Author" +msgstr "_Autore" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Date" +msgstr "_Data" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Subject" +msgstr "_Soggetto" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "A_perti di recente" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Modifica" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_File" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "_Aiuto" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Apri..." + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "_Repository" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Visualizza" diff -Nru gitg-0.0.3/po/LINGUAS gitg-0.0.6/po/LINGUAS --- gitg-0.0.3/po/LINGUAS 2009-04-22 18:39:35.000000000 +0100 +++ gitg-0.0.6/po/LINGUAS 2010-01-24 12:17:16.000000000 +0000 @@ -2,7 +2,15 @@ # # please keep this list sorted alphabetically # +da +de +en_GB +es fr gl +it +lt nl +pa +sl sv diff -Nru gitg-0.0.3/po/lt.po gitg-0.0.6/po/lt.po --- gitg-0.0.3/po/lt.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/lt.po 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,809 @@ +# translation of gitg to Lithuanian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the gitg package. +# Gintautas Miliauskas , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: gitg\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-15 03:01+0300\n" +"PO-Revision-Date: 2009-09-15 03:04+0300\n" +"Last-Translator: Gintautas Miliauskas \n" +"Language-Team: Lithuanian \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%" +"100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../data/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Git repozitorijų naršyklė" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:179 +#: ../gitg/gitg-window.c:1017 ../gitg/gitg-window.c:1030 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" + +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "" + +#: ../gitg/gitg.c:63 +msgid "- git repository viewer" +msgstr "" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "" + +#: ../gitg/gitg-repository.c:591 +msgid "Staged changes" +msgstr "" + +#: ../gitg/gitg-repository.c:593 +msgid "Unstaged changes" +msgstr "" + +#: ../gitg/gitg-repository.c:1155 +msgid "Not a valid git repository" +msgstr "" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "" + +#: ../gitg/gitg-window.c:423 +msgid "Select branch" +msgstr "" + +#: ../gitg/gitg-window.c:485 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:492 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:499 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:506 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:774 +msgid "Begin loading repository" +msgstr "" + +#: ../gitg/gitg-window.c:783 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "" + +#: ../gitg/gitg-window.c:794 +#, c-format +msgid "Loading %d revisions..." +msgstr "" + +#: ../gitg/gitg-window.c:803 +msgid "Could not find git repository" +msgstr "" + +#: ../gitg/gitg-window.c:995 +msgid "All branches" +msgstr "" + +#: ../gitg/gitg-window.c:1206 +msgid "Open git repository" +msgstr "" + +#: ../gitg/gitg-window.c:1327 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "" + +#: ../gitg/gitg-window.c:1328 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" + +#: ../gitg/gitg-window.c:1790 +msgid "new" +msgstr "" + +#: ../gitg/gitg-window.c:1898 ../gitg/gitg-window.c:1937 +#, c-format +msgid "New local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:1910 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "" + +#: ../gitg/gitg-window.c:1915 +msgid "Checkout working copy" +msgstr "" + +#: ../gitg/gitg-window.c:1916 +msgid "Remove local branch" +msgstr "" + +#: ../gitg/gitg-window.c:1918 +msgid "Rename local branch" +msgstr "" + +#: ../gitg/gitg-window.c:1926 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "" + +#: ../gitg/gitg-window.c:1932 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "" + +#: ../gitg/gitg-window.c:2107 +msgid "Not all fields are correctly filled in" +msgstr "" + +#: ../gitg/gitg-window.c:2109 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +msgid "Remove branch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:12 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1134 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1139 +msgid "Failed to checkout previously checked out branch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1160 +msgid "Failed to reapply stash correctly" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1161 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 +msgid "Commit" +msgstr "" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:4 +msgid "Collapse inactive lanes" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:10 +msgid "Early" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Late" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:13 +msgid "Preferences" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Search filters revisions in the history view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Show staged changes in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show stash in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show unstaged changes in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "View" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:10 +msgid "gtk-add" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:11 +msgid "gtk-remove" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rename branch" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Author" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Date" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Hash" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Subject" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "" + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "" diff -Nru gitg-0.0.3/po/Makefile.in.in gitg-0.0.6/po/Makefile.in.in --- gitg-0.0.3/po/Makefile.in.in 2009-04-23 22:17:53.000000000 +0100 +++ gitg-0.0.6/po/Makefile.in.in 2010-02-21 09:56:06.000000000 +0000 @@ -21,7 +21,7 @@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -56,7 +56,7 @@ 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) +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) @@ -129,7 +129,7 @@ done # Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: +dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: diff -Nru gitg-0.0.3/po/nl.po gitg-0.0.6/po/nl.po --- gitg-0.0.3/po/nl.po 2009-04-21 23:47:17.000000000 +0100 +++ gitg-0.0.6/po/nl.po 2010-01-24 12:17:16.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gitg\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-22 00:44+0200\n" +"POT-Creation-Date: 2010-01-10 23:21+0100\n" "PO-Revision-Date: 2009-02-28 20:18+0100\n" "Last-Translator: Jesse van den Kieboom \n" "Language-Team: \n" @@ -21,16 +21,22 @@ msgstr "Git repository bekijker" #. Translators: this is the application name as in g_set_application_name -#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:169 ../gitg/gitg-window.c:785 -#: ../gitg/gitg-window.c:803 ../gitg/gitg-ui.xml.h:32 +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:182 +#: ../gitg/gitg-window.c:1275 ../gitg/gitg-window.c:1288 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 msgid "gitg" msgstr "gitg" #: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "Kolom waar de rechterkantlijn getoond wordt" + +#: ../data/gitg.schemas.in.h:2 msgid "Filter Revisions When Searching" msgstr "Filter revisies bij zoeken" -#: ../data/gitg.schemas.in.h:2 +#: ../data/gitg.schemas.in.h:3 msgid "" "Setting that indicates when an inactive lane should be collapsed. Valid " "values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." @@ -38,11 +44,75 @@ "Instelling die aangeeft wanneer een inactieve baan ingebouwd moet worden. " "Geldige waarden zijn 0 - 4, waarbij 0 'vroeg' en 4 'laat' betekent." -#: ../data/gitg.schemas.in.h:3 +#: ../data/gitg.schemas.in.h:4 +msgid "" +"Setting that indicates whether to show the history in topological order." +msgstr "" +"Instelling die aangeeft of de geschiedenis in topologische volgorde moet " +"worden getoond." + +#: ../data/gitg.schemas.in.h:5 +msgid "Setting that sets the orientation layout of the main view." +msgstr "Instelling die de orientatie van de interface bepaald." + +#: ../data/gitg.schemas.in.h:6 +msgid "Show History in Topological Order" +msgstr "Toon geschiedenis in topologische volgorde" + +#: ../data/gitg.schemas.in.h:7 +msgid "Show Main View in Vertical Layout" +msgstr "Toon interface in verticale orientatie" + +#: ../data/gitg.schemas.in.h:8 +msgid "Show Right Margin in Commit Message View" +msgstr "Toon rechterkantlijn in commit bericht beeld" + +#: ../data/gitg.schemas.in.h:9 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" +"Toon een margin aan de rechterzijde van het commit bericht venster. Dit kan " +"worden gebruikt om eenvoudig te zien waar een commit bericht afgebroken moet " +"worden op een bepaalde kolom." + +#: ../data/gitg.schemas.in.h:10 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" +"De kolom waar de rechterkantlijn getoond wordt wanneer de right-margin " +"voorkeur WAAR is." + +#: ../data/gitg.schemas.in.h:11 +msgid "The command to handle GITG scheme URLs" +msgstr "De applicatie om GITG URLs af te handelen" + +#: ../data/gitg.schemas.in.h:12 +msgid "The command to handle GITG scheme URLs." +msgstr "De applicatie om GITG URLs af te handelen." + +#: ../data/gitg.schemas.in.h:13 msgid "When to Collapse Inactive Lanes" msgstr "Wannneer inactieve lanen ingevouwd moeten worden" -#: ../data/gitg.schemas.in.h:4 +#: ../data/gitg.schemas.in.h:14 +msgid "Whether command to handle GITG scheme URLs is enabled" +msgstr "Of applicatie om GITG URLs af te handelen is ingeschakeld" + +#: ../data/gitg.schemas.in.h:15 +msgid "Whether command to handle GITG scheme URLs is enabled." +msgstr "Of applicatie om GITG URLs af te handelen is ingeschakeld." + +#: ../data/gitg.schemas.in.h:16 +msgid "Whether command to handle GITG scheme URLs needs a terminal" +msgstr "Of applicatie om GITG URLs af te handelen een terminal nodig heeft" + +#: ../data/gitg.schemas.in.h:17 +msgid "Whether command to handle GITG scheme URLs needs a terminal." +msgstr "Of applicatie om GITG URLs af te handelen een terminal nodig heeft." + +#: ../data/gitg.schemas.in.h:18 msgid "" "Whether searching filters the revisions in the history view instead of " "jumping to the first match." @@ -50,27 +120,35 @@ "Of zoeken de revisies in de geschiedenis filtert in plaats van naar het " "eerste resultaat te springen." -#: ../gitg/gitg.c:43 +#: ../gitg/gitg.c:53 +msgid "Show the application's version" +msgstr "Toon applicatie versie" + +#: ../gitg/gitg.c:54 msgid "Start gitg in commit mode" msgstr "Open gitg in commit mode" -#: ../gitg/gitg.c:53 +#: ../gitg/gitg.c:55 +msgid "Select commit after loading the repository" +msgstr "Commit selecteren na laden van repository" + +#: ../gitg/gitg.c:65 msgid "- git repository viewer" msgstr "- git repository bekijker" -#: ../gitg/gitg-commit-view.c:204 ../gitg/gitg-revision-tree-view.c:181 +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 msgid "Cannot display file content as text" msgstr "Kan bestandsinhoud niet weergeven als tekst" -#: ../gitg/gitg-commit-view.c:1166 +#: ../gitg/gitg-commit-view.c:1437 msgid "You must first stage some changes before committing" msgstr "Je moet eerst wijzigingen plaatsen voordat je commit" -#: ../gitg/gitg-commit-view.c:1174 +#: ../gitg/gitg-commit-view.c:1445 msgid "Please enter a commit message before committing" msgstr "Vul eerst een commit bericht in voordat je commit" -#: ../gitg/gitg-commit-view.c:1185 +#: ../gitg/gitg-commit-view.c:1457 msgid "" "Your user name or email could not be retrieved for use in the sign off " "message" @@ -78,74 +156,103 @@ "Je gebruikersnaam of e-mail kon niet worden achterhaald voor gebruik in de " "ondertekening" -#: ../gitg/gitg-commit-view.c:1187 +#: ../gitg/gitg-commit-view.c:1459 msgid "Something went wrong while trying to commit" msgstr "Er is iets mis gegaan tijdens het committen" -#: ../gitg/gitg-commit-view.c:1355 +#: ../gitg/gitg-commit-view.c:1618 msgid "Revert fail" msgstr "Terugdraaien faalde" -#: ../gitg/gitg-commit-view.c:1366 +#: ../gitg/gitg-commit-view.c:1629 msgid "Are you sure you want to revert these changes?" msgstr "Weet je zeker dat je deze wijzigingen wilt terugdraaien?" -#: ../gitg/gitg-commit-view.c:1369 +#: ../gitg/gitg-commit-view.c:1632 msgid "Reverting changes is permanent and cannot be undone" msgstr "" "Wijzigingen terugdraaien is permanent en kan niet ongedaan gemaakt worden" -#: ../gitg/gitg-repository.c:472 +#: ../gitg/gitg-repository.c:606 msgid "Staged changes" msgstr "Geplaatste wijzigingen" -#: ../gitg/gitg-repository.c:474 +#: ../gitg/gitg-repository.c:608 msgid "Unstaged changes" msgstr "Ongeplaatste wijzigingen" -#: ../gitg/gitg-repository.c:983 +#: ../gitg/gitg-repository.c:1233 msgid "Not a valid git repository" msgstr "Geen geldige git repository" -#: ../gitg/gitg-revision-tree-view.c:507 +#: ../gitg/gitg-revision-tree-view.c:513 msgid "(Empty)" msgstr "(Leeg)" -#: ../gitg/gitg-window.c:346 +#: ../gitg/gitg-window.c:442 msgid "Select branch" msgstr "Selecteer tak" -#: ../gitg/gitg-window.c:532 -msgid "Begin loading repository" -msgstr "Begin laden van repository" +#: ../gitg/gitg-window.c:505 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Publiceer lokale tak <%s> naar afgelegen tak <%s>" + +#: ../gitg/gitg-window.c:512 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "Voeg samen/baseer lokale tak <%s> met/op lokale tak <%s>" + +#: ../gitg/gitg-window.c:519 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "Voeg samen/baseer lokale tak <%s> met/op afgelegen tak <%s>" + +#: ../gitg/gitg-window.c:526 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Pas opslag toe op lokale tak <%s>" -#: ../gitg/gitg-window.c:541 +#: ../gitg/gitg-window.c:588 +#, c-format +msgid "Cherry-pick revision on <%s>" +msgstr "Cherry-pick revisie op <%s>" + +#: ../gitg/gitg-window.c:877 #, c-format msgid "Loaded %d revisions in %.2fs" msgstr "%d revisies ingeladen in %.2fs" -#: ../gitg/gitg-window.c:552 +#: ../gitg/gitg-window.c:892 #, c-format msgid "Loading %d revisions..." msgstr "Laden van %d revisies..." -#: ../gitg/gitg-window.c:561 +#: ../gitg/gitg-window.c:901 msgid "Could not find git repository" msgstr "Kon git repository niet vinden" -#: ../gitg/gitg-window.c:697 +#: ../gitg/gitg-window.c:1208 +msgid "Local branches" +msgstr "Locale takken" + +#: ../gitg/gitg-window.c:1229 msgid "All branches" msgstr "Alle takken" -#: ../gitg/gitg-window.c:860 +#: ../gitg/gitg-window.c:1304 +msgid "Begin loading repository" +msgstr "Begin laden van repository" + +#: ../gitg/gitg-window.c:1494 msgid "Open git repository" msgstr "Open git repository" -#: ../gitg/gitg-window.c:982 +#: ../gitg/gitg-window.c:1615 msgid "gitg is a git repository viewer for gtk+/GNOME" msgstr "gitg is een repository bekijker voor gtk+/GNOME" -#: ../gitg/gitg-window.c:983 +#: ../gitg/gitg-window.c:1616 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -180,186 +287,684 @@ "de Free Software Foundation, Inc.,\n" "59 Temple Place, Suite 330, Boston, MA 02111-1307 USA" -#: ../gitg/gitg-ui.xml.h:1 +#: ../gitg/gitg-window.c:2081 +msgid "new" +msgstr "nieuw" + +#: ../gitg/gitg-window.c:2189 ../gitg/gitg-window.c:2228 +#, c-format +msgid "New local branch <%s>" +msgstr "Nieuwe lokale tak <%s>" + +#: ../gitg/gitg-window.c:2201 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Verwijder afgelegen tak" + +#: ../gitg/gitg-window.c:2206 +msgid "Checkout working copy" +msgstr "Werkkopie uitchecken" + +#: ../gitg/gitg-window.c:2207 +msgid "Remove local branch" +msgstr "Verwijder lokale tak" + +#: ../gitg/gitg-window.c:2209 +msgid "Rename local branch" +msgstr "Hernoem lokale tak" + +#: ../gitg/gitg-window.c:2217 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Verwijder tijdelijke opslag" + +#: ../gitg/gitg-window.c:2223 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Verwijder tag" + +#: ../gitg/gitg-window.c:2524 +msgid "Not all fields are correctly filled in" +msgstr "Niet alle velden zijn correct ingevuld" + +#: ../gitg/gitg-window.c:2526 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "Zorg ervoor dat zowel de tag naam als het commit bericht ingevuld zijn" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "Tak <%s> kon niet worden verwijderd" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" +"This betekent doorgaans dat de tak niet volledig samengevoegd is in HEAD. " +"Wil je het verwijderen van de tak forceren?" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Forceer verwijderen" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "Tak <%s> kon niet geforceerd worden verwijderd" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Afgelegen tak <%s> kon niet worden verwijderd." + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Weet je zeker dat je de afgelegen tak <%s> wilt verwijderen?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "De afgelegen tak wordt permanent verwijderd." + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:10 +msgid "Remove branch" +msgstr "Verwijder tak" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Weet je zeker dat je deze tijdelijke opslag wilt verwijderen?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "De tijdelijke opslag wordt permanent verwijderd" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Kon tijdelijke opslag niet verwijderen" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "De tijdelijke opslag kon niet succesvol worden verwijderd" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Weet je zeker dat je de tag <%s> wilt verwijderen?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "De tag <%s> kon niet succesvol worden verwijderd" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Tag kon niet worden verwijderd" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "Tak <%s> kon niet worden hernoemd naar <%s>" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" +"This betekent doorgaans dat er al een tak met die naam bestaat. Wil je de " +"bestaande tak overschrijven?" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "Forceer hernoemen" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "Tak <%s> kon niet geforceerd worden hernoemd" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:13 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Naam:" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Wil je de wijzigingen tijdelijk opslaan?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "Wil je de wijzigingen tijdelijk opslaan en opnieuw toepassen?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "Je hebt wijzigingen in de werkkopie die nog niet gecommit zijn" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Tijdelijk opslaan" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Index kon niet worden opgeslagen" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 ../gitg/gitg-branch-actions.c:1744 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Lokale tak <%s> kon niet worden uitgechecked" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "Afgelegen tak <%s> kon niet worden uitgechecked naar lokale tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "Tag <%s> kon niet worden uitgechecked naar lokale tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Kon %s tak <%s> niet opnieuw baseren op %s tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "Kon %s tak <%s> niet samenvoegen met %s tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "lokale" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "afgelegen" + +#: ../gitg/gitg-branch-actions.c:1134 ../gitg/gitg-branch-actions.c:1663 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" +"De wijzigingen zijn tijdelijk opgeslagen en kunnen handmatig worden toegepast" + +#: ../gitg/gitg-branch-actions.c:1139 ../gitg/gitg-branch-actions.c:1668 +msgid "Failed to checkout previously checked out branch" +msgstr "Kon vorige uitgecheckte tak niet opnieuw uitchecken" + +#: ../gitg/gitg-branch-actions.c:1160 ../gitg/gitg-branch-actions.c:1689 +msgid "Failed to reapply stash correctly" +msgstr "Kon tijdelijke opgeslagen wijzigingen niet toepassen" + +#: ../gitg/gitg-branch-actions.c:1161 ../gitg/gitg-branch-actions.c:1690 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" +"Het kan zijn dat er onopgeloste conflicten in de werkkopie zijn die " +"handmatig moeten worden opgelost" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Weet je zeker dat je %s tak <%s> wilt samenvoegen met %s tak <%s>?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:5 +msgid "Merge" +msgstr "Samenvoegen" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "De tak waarop gemerged moet worden kon niet worden uitgechecked" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Samenvoegen van %s tak <%s> op %s tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Weet je zeker dat je %s tak <%s> opnieuw wilt baseren op %s tak <%s>?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:8 +msgid "Rebase" +msgstr "Opnieuw baseren" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Kon niet opnieuw baseren" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" +"Er zijn nog wijzigingen in je huidige werkkopie die niet gecommit zjin en je " +"probeert een tak opnieuw te baseren op de huidige werkkopie. Verwijder, " +"commit of sla de wijzigingen tijdelijk op en probeer opnieuw" + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "Opnieuw baseren van %s tak <%s> op %s tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "Kon lokale tak <%s> niet publiceren op afgelegen plek <%s>" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" +"Dit betekent doorgans dat de afgelegen tak niet snel doorgespoeld kon " +"worden. Probeer om eerst de laatste wijzigingen op te halen." + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Weet je zeker dat je <%s> wilt publiceren op <%s>?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Publiceren" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Publiceer lokale tak <%s> naar afgelegen tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Weet je zeker dat <%s> wilt publiceren op afgelegen plek <%s/%s>?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Publiceer lokale tak <%s> naar afgelegen tak <%s/%s>" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "" +"Weet je zeker dat je de tijdelijke opslag wilt toepassen op lokale tak <%s>?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Toepassen" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "De tijdelijke opslag kon niet worden toegepast op lokale tak <%s>" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Toepassen tijdelijke opgeslag gefaald" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" +"Het tag object kon niet worden aangemaakt. Zorg ervoor dat je een GPG " +"sleutel hebt en dat deze vrijgemaakt is" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "Het tag object kon niet succesvol worden aangemaakt" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Tag kon niet worden aangemaakt" + +#: ../gitg/gitg-branch-actions.c:1643 +#, c-format +msgid "Failed to cherry-pick on <%s>" +msgstr "Cherry-pick op <%s> mislukt" + +#: ../gitg/gitg-branch-actions.c:1710 +#, c-format +msgid "Are you sure you want to cherry-pick that revision on <%s>?" +msgstr "Weet je zeker dat je die revisie wilt cherry-picken op <%s>?" + +#: ../gitg/gitg-branch-actions.c:1715 ../gitg/gitg-branch-actions.c:1717 +#: ../gitg/gitg-branch-actions.c:1765 +msgid "Cherry-pick" +msgstr "Cherry-pick" + +#: ../gitg/gitg-branch-actions.c:1745 +msgid "The branch on which to cherry-pick could not be checked out" +msgstr "" +"De tak waarop de cherry-pick moest worden uitgevoerd kon niet worden " +"uitgechecked" + +#: ../gitg/gitg-branch-actions.c:1752 +#, c-format +msgid "Cherry-picking on <%s>" +msgstr "Cherry-picken op <%s>" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Ophalen" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Annuleren" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Eigenschappen" + +#: ../gitg/gitg-window.ui.h:1 msgid "Add signed-off-by" msgstr "Voeg ondertekening toe" -#: ../gitg/gitg-ui.xml.h:2 -msgid "Author" -msgstr "Auteur" +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Aanmetselen" -#: ../gitg/gitg-ui.xml.h:3 +#: ../gitg/gitg-window.ui.h:3 msgid "Author:" msgstr "Auteur:" -#: ../gitg/gitg-ui.xml.h:4 +#: ../gitg/gitg-window.ui.h:4 msgid "Branch:" msgstr "Tak:" -#: ../gitg/gitg-ui.xml.h:5 +#: ../gitg/gitg-window.ui.h:5 msgid "Co_mmit message" msgstr "Co_mmit bericht" -#: ../gitg/gitg-ui.xml.h:6 +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:6 msgid "Commit" msgstr "Commit" -#: ../gitg/gitg-ui.xml.h:7 +#: ../gitg/gitg-window.ui.h:7 msgid "Context:" msgstr "Context:" -#: ../gitg/gitg-ui.xml.h:8 -msgid "Date" -msgstr "Datum" - -#: ../gitg/gitg-ui.xml.h:9 +#: ../gitg/gitg-window.ui.h:8 msgid "Date:" msgstr "Datum:" -#: ../gitg/gitg-ui.xml.h:10 +#: ../gitg/gitg-window.ui.h:9 msgid "Details" -msgstr "Defails" - -#: ../gitg/gitg-ui.xml.h:11 -msgid "Filename" -msgstr "Bestandsnaam" +msgstr "Details" -#: ../gitg/gitg-ui.xml.h:12 +#: ../gitg/gitg-window.ui.h:10 msgid "History" msgstr "Geschiedenis" -#: ../gitg/gitg-ui.xml.h:13 -msgid "Ignore" -msgstr "Negeren" - -#: ../gitg/gitg-ui.xml.h:14 +#: ../gitg/gitg-window.ui.h:11 msgid "Parent:" msgstr "Ouder:" -#: ../gitg/gitg-ui.xml.h:15 -msgid "R_ecently Opened" -msgstr "R_ecentelijk geopend" - -#: ../gitg/gitg-ui.xml.h:16 -msgid "Revert" -msgstr "Terugdraaien" - -#: ../gitg/gitg-ui.xml.h:17 +#: ../gitg/gitg-window.ui.h:12 msgid "SHA:" msgstr "SHA:" -#: ../gitg/gitg-ui.xml.h:18 -msgid "Stage" -msgstr "Plaatsen" - -#: ../gitg/gitg-ui.xml.h:19 -msgid "Subject" -msgstr "Onderwerp" - -#: ../gitg/gitg-ui.xml.h:20 +#: ../gitg/gitg-window.ui.h:13 msgid "Subject:" msgstr "Onderwerp:" -#: ../gitg/gitg-ui.xml.h:21 +#: ../gitg/gitg-window.ui.h:14 msgid "Tree" msgstr "Boom" -#: ../gitg/gitg-ui.xml.h:22 -msgid "Unstage" -msgstr "Ontplaatsen" - -#: ../gitg/gitg-ui.xml.h:23 -msgid "Unstaged" -msgstr "Ontplaatst" - -#: ../gitg/gitg-ui.xml.h:24 +#: ../gitg/gitg-window.ui.h:15 msgid "_Changes" msgstr "_Wijzigingen" -#: ../gitg/gitg-ui.xml.h:25 -msgid "_Edit" -msgstr "Be_werken" - -#: ../gitg/gitg-ui.xml.h:26 -msgid "_File" -msgstr "_Bestand" - -#: ../gitg/gitg-ui.xml.h:27 -msgid "_Help" -msgstr "_Hulp" - -#: ../gitg/gitg-ui.xml.h:28 -msgid "_Open..." -msgstr "_Open..." - -#: ../gitg/gitg-ui.xml.h:29 +#: ../gitg/gitg-window.ui.h:16 msgid "_Staged" msgstr "_Geplaatst" -#: ../gitg/gitg-ui.xml.h:30 +#: ../gitg/gitg-window.ui.h:17 msgid "_Unstaged" msgstr "_Ongeplaatst" -#: ../gitg/gitg-ui.xml.h:31 -msgid "_View" -msgstr "Beel_d" +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Negeren" -#: ../gitg/gitg-menus.xml.h:1 -msgid "_Author" -msgstr "_Auteur" +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Terugdraaien" -#: ../gitg/gitg-menus.xml.h:2 -msgid "_Date" -msgstr "_Datum" +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "Plaatsen" -#: ../gitg/gitg-menus.xml.h:3 -msgid "_Hash" -msgstr "_Hash" +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Ontplaatsen" -#: ../gitg/gitg-menus.xml.h:4 -msgid "_Subject" -msgstr "_Onderwerp" +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Commit bericht" -#: ../gitg/gitg-preferences.xml.h:1 +#: ../gitg/gitg-preferences.ui.h:2 msgid "History" msgstr "Geschiedenis" -#: ../gitg/gitg-preferences.xml.h:2 +#: ../gitg/gitg-preferences.ui.h:3 +msgid "Main" +msgstr "Algemeen" + +#: ../gitg/gitg-preferences.ui.h:4 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Gebruiker" + +#: ../gitg/gitg-preferences.ui.h:5 msgid "Collapse inactive lanes" msgstr "Vouw inactive banen in" -#: ../gitg/gitg-preferences.xml.h:3 +#: ../gitg/gitg-preferences.ui.h:7 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Configuratie" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" +"Configureer globale git instellingen. Deze instellingen komen overeen met de " +"instellingen in ~/.gitconfig. Instellingen specifiek voor de repository " +"kunnen worden ingesteld bij de repository eigenschappen." + +#: ../gitg/gitg-preferences.ui.h:9 +msgid "Display right _margin" +msgstr "Toon rechterkantlijn" + +#: ../gitg/gitg-preferences.ui.h:10 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "E-mail:" + +#: ../gitg/gitg-preferences.ui.h:11 msgid "Early" msgstr "Vroeg" -#: ../gitg/gitg-preferences.xml.h:4 +#: ../gitg/gitg-preferences.ui.h:12 msgid "Late" msgstr "Laat" -#: ../gitg/gitg-preferences.xml.h:5 +#: ../gitg/gitg-preferences.ui.h:14 msgid "Preferences" msgstr "Voorkeuren" -#: ../gitg/gitg-preferences.xml.h:6 +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the commit view" +msgstr "Voorkeuren die gaan over het commit venster" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Preferences that apply to the revision view" +msgstr "Voorkeuren die gaan over het revisie venster" + +#: ../gitg/gitg-preferences.ui.h:17 msgid "Search filters revisions in the history view" msgstr "Zoeken filtert revisies in de geschiedenis" -#: ../gitg/gitg-preferences.xml.h:7 +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show history in topological order" +msgstr "Toon geschiedenis in topologische volgorde" + +#: ../gitg/gitg-preferences.ui.h:19 msgid "Show staged changes in history" msgstr "Geplaatste wijzigingen tonen in geschiedenis" -#: ../gitg/gitg-preferences.xml.h:8 +#: ../gitg/gitg-preferences.ui.h:20 msgid "Show stash in history" msgstr "Opgeslagen wijzigingen tonen in geschiedenis" -#: ../gitg/gitg-preferences.xml.h:9 +#: ../gitg/gitg-preferences.ui.h:21 msgid "Show unstaged changes in history" msgstr "Ongeplaatste wijzigingen tonen in geschiedenis" -#: ../gitg/gitg-preferences.xml.h:10 +#: ../gitg/gitg-preferences.ui.h:22 +msgid "Use vertical layout" +msgstr "Gebruik verticale interface" + +#: ../gitg/gitg-preferences.ui.h:23 msgid "View" msgstr "Beeld" +#: ../gitg/gitg-preferences.ui.h:24 +msgid "_Right margin at column:" +msgstr "Rechterkantlijn in kolom:" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Naam" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "Afgelegen plekken" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Maak gesigneerd tag object" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:4 +msgid "Create tag" +msgstr "Maak tag" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Bericht:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Pas tijdelijke opslag toe op..." + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Tak uitchecken" + +#: ../gitg/gitg-menus.xml.h:3 +msgid "Cherry-pick on..." +msgstr "Cherry-pick op..." + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Merge branch with..." +msgstr "Tak samenvoegen met..." + +#: ../gitg/gitg-menus.xml.h:7 +msgid "Push branch to..." +msgstr "Tak publiceren op..." + +#: ../gitg/gitg-menus.xml.h:9 +msgid "Rebase branch onto..." +msgstr "Tak opnieuw baseren op..." + +#: ../gitg/gitg-menus.xml.h:11 +msgid "Rename branch" +msgstr "Hernoem tak" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Author" +msgstr "_Auteur" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Date" +msgstr "_Datum" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:15 +msgid "_Subject" +msgstr "_Onderwerp" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "R_ecentelijk geopend" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "Be_werken" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Bestand" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "_Hulp" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Open..." + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "_Repository" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "Beel_d" + +#~ msgid "gtk-add" +#~ msgstr "gtk-add" + +#~ msgid "gtk-remove" +#~ msgstr "gtk-remove" + +#~ msgid "Author" +#~ msgstr "Auteur" + +#~ msgid "Date" +#~ msgstr "Datum" + +#~ msgid "Filename" +#~ msgstr "Bestandsnaam" + +#~ msgid "Subject" +#~ msgstr "Onderwerp" + +#~ msgid "Unstaged" +#~ msgstr "Ontplaatst" + #~ msgid "Co_mment" #~ msgstr "Co_mmentaar" diff -Nru gitg-0.0.3/po/pa.po gitg-0.0.6/po/pa.po --- gitg-0.0.3/po/pa.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/pa.po 2010-01-24 12:17:16.000000000 +0000 @@ -0,0 +1,816 @@ +# Punjabi translation of gitg. +# Copyright (C) 2009 gitg's COPYRIGHT HOLDER +# This file is distributed under the same license as the gitg package. +# +# A S Alam , 2009. +msgid "" +msgstr "" +"Project-Id-Version: gitg master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=gitg&component=gitg\n" +"POT-Creation-Date: 2009-10-12 18:54+0000\n" +"PO-Revision-Date: 2009-11-09 08:01+0530\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi/Panjabi \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../data/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Git ਰਿਪੋਜ਼ਟਰੀ ਬਰਾਊਜ਼ਰ" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:179 +#: ../gitg/gitg-window.c:1017 ../gitg/gitg-window.c:1030 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "ਜਦੋਂ ਖੋਜ ਹੋਵੇ ਤਾਂ ਰੀਵਿਜ਼ਨ ਫਿਲਟਰ ਕਰੋ" + +#: ../data/gitg.schemas.in.h:3 +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "" + +#: ../data/gitg.schemas.in.h:4 +msgid "Show Right Margin in Commit Message View" +msgstr "" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "ਗ਼ੈਰ-ਸਰਗਰਮ ਲੇਨ ਸਮੇਟਣੀਆਂ ਕਦੋਂ ਹਨ" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." +msgstr "" + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਵਰਜਨ ਵੇਖੋ " + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "gitg ਨੂੰ ਕਮਿਟ ਮੋਡ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ" + +#: ../gitg/gitg.c:63 +msgid "- git repository viewer" +msgstr "- git ਰਿਪੋਜ਼ਟਰੀ ਦਰਸ਼ਕ" + +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "ਫਾਇਲ ਕੰਟੈਕਸਟ ਟੈਕਸਟ ਵਾਂਗ ਨਹੀਂ ਵੇਖਾਏ ਜਾ ਸਕਦੇ" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "ਕਮਿਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕਮਿਟ ਸੁਨੇਹਾ ਦਿਓ ਜੀ" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" +msgstr "" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "ਕਮਿਟ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਦੇ ਦੌਰਾਨ ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "ਰੀਵਰਟ ਫੇਲ੍ਹ" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "ਬਦਲਾਅ ਰੀਵਰਟ ਕਰਨ ਪੱਕੇ ਹਨ ਅਤੇ ਵਾਪਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ" + +#: ../gitg/gitg-repository.c:591 +msgid "Staged changes" +msgstr "ਸਟੈਗ ਕੀਤੇ ਬਦਲਾਅ" + +#: ../gitg/gitg-repository.c:593 +msgid "Unstaged changes" +msgstr "ਬਿਨ-ਸਟੈਕ ਕੀਤੇ ਬਦਲਾਅ" + +#: ../gitg/gitg-repository.c:1155 +msgid "Not a valid git repository" +msgstr "ਕੋਈ ਢੁੱਕਵੀਂ git ਰਿਪੋਜ਼ਟਰੀ ਨਹੀਂ" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "(ਖਾਲੀ)" + +#: ../gitg/gitg-window.c:423 +msgid "Select branch" +msgstr "ਬਰਾਂਚ ਚੁਣੋ" + +#: ../gitg/gitg-window.c:485 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:492 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:499 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:506 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:774 +msgid "Begin loading repository" +msgstr "ਰਿਪੋਜ਼ਟਰੀ ਲੋਡ ਕਰਨੀ ਸ਼ੁਰੂ" + +#: ../gitg/gitg-window.c:783 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "%2$.2fs ਵਿੱਚ %1$d ਰੀਵਿਜ਼ਨ ਲੋਡ ਕੀਤੇ" + +#: ../gitg/gitg-window.c:794 +#, c-format +msgid "Loading %d revisions..." +msgstr "%d ਰੀਵਿਜ਼ਨ ਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ..." + +#: ../gitg/gitg-window.c:803 +msgid "Could not find git repository" +msgstr "git ਰਿਪੋਜ਼ਟਰੀ ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ" + +#: ../gitg/gitg-window.c:995 +msgid "All branches" +msgstr "ਸਭ ਬਰਾਂਚ" + +#: ../gitg/gitg-window.c:1206 +msgid "Open git repository" +msgstr "git ਰਿਪੋਜ਼ਟਰੀ ਖੋਲ੍ਹੋ" + +#: ../gitg/gitg-window.c:1327 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "" + +#: ../gitg/gitg-window.c:1328 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" + +#: ../gitg/gitg-window.c:1790 +msgid "new" +msgstr "ਨਵਾਂ" + +#: ../gitg/gitg-window.c:1898 ../gitg/gitg-window.c:1937, c-format +msgid "New local branch <%s>" +msgstr "ਨਵੀਂ ਲੋਕਲ ਬਰਾਂਚ <%s>" + +#: ../gitg/gitg-window.c:1910 ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "ਰਿਮੋਟ ਬਰਾਂਚ ਹਟਾਓ" + +#: ../gitg/gitg-window.c:1915 +msgid "Checkout working copy" +msgstr "ਵਰਕਿੰਗ ਕਾਪੀ ਚੈੱਕ-ਆਉਟ ਕਰੋ" + +#: ../gitg/gitg-window.c:1916 +msgid "Remove local branch" +msgstr "ਲੋਕਲ ਬਰਾਂਚ ਹਟਾਓ" + +#: ../gitg/gitg-window.c:1918 +msgid "Rename local branch" +msgstr "ਲੋਕਲ ਬਰਾਂਚ ਨਾਂ ਬਦਲੋ" + +#: ../gitg/gitg-window.c:1926 ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "" + +#: ../gitg/gitg-window.c:1932 ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "ਟੈਗ ਹਟਾਓ" + +#: ../gitg/gitg-window.c:2107 +msgid "Not all fields are correctly filled in" +msgstr "" + +#: ../gitg/gitg-window.c:2109 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "ਬਰਾਂਚ <%s> ਹਟਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "ਧੱਕੇ ਨਾਲ ਹਟਾਓ" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "ਰਿਮੋਟ ਬਰਾਂਚ <%s> ਹਟਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ।" + +#: ../gitg/gitg-branch-actions.c:314, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "ਕੀ ਤੁਸੀਂ <%s> ਰਿਮੋਟ ਬਰਾਂਚ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "ਇਹ ਰਿਮੋਟ ਬਰਾਂਚ ਨੂੰ ਪੱਕੇ ਤੌਰ ਉੱਤੇ ਹਟਾ ਦੇਵੇਗਾ।" + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +msgid "Remove branch" +msgstr "ਬਰਾਂਚ ਹਟਾਓ" + +#: ../gitg/gitg-branch-actions.c:390 +#, fuzzy +msgid "Are you sure you want to remove this stash item?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:450, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "ਕੀ ਤੁਸੀਂ <%s> ਟੈਗ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "ਟੈਗ <%s> ਠੀਕ ਤਰ੍ਹਾਂ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "ਟੈਗ ਹਟਾਉਣ ਲਈ ਫੇਲ੍ਹ" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "" +"This usually means that a branch with that name already exists. Do you want " +"to overwrite the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:536 +#| msgid "Filename" +msgid "Force rename" +msgstr "ਧੱਕੇ ਨਾਲ ਨਾਂ ਬਦਲੋ" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:585 ../gitg/gitg-preferences.ui.h:12 +#: ../gitg/gitg-repository.ui.h:6 ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "ਨਾਂ:" + +#: ../gitg/gitg-branch-actions.c:693 +#, fuzzy +msgid "Do you want to temporarily stash these changes?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:697 +#, fuzzy +msgid "Do you want to stash and reapply these changes?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:704 +#, fuzzy +msgid "Stash changes" +msgstr "ਸਟੈਗ ਕੀਤੇ ਬਦਲਾਅ" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:934 ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "ਲੋਕਲ ਬਰਾਂਚ <%s> ਚੈੱਕ ਆਉਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "ਲੋਕਲ" + +#: ../gitg/gitg-branch-actions.c:1115 ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "ਰਿਮੋਟ" + +#: ../gitg/gitg-branch-actions.c:1134 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1139 +msgid "Failed to checkout previously checked out branch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1160 +msgid "Failed to reapply stash correctly" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1161 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1182 +#, fuzzy, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:1190 ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "ਮਿਲਾਨ" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1259 +#, fuzzy, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:1267 ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "ਰੀਬੇਸ" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "ਰੀਬੇਸ ਕਰਨ ਲਈ ਅਸਮਰੱਥ" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1370 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:1376 ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "ਪੁਸ਼" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1426 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1481 +#, fuzzy, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਬਦਲਾਅ ਵਾਪਸ ਲੈਣੇ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../gitg/gitg-branch-actions.c:1486 ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "ਟੈਗ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "ਲਵੋ" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "ਰੱਦ ਕਰੋ" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "ਵਿਸ਼ੇਸ਼ਤਾ" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "ਲੇਖਕ:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "ਬਰਾਂਚ:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "ਕਮਿਟ ਸੁਨੇਹਾ(_m)" + +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 +msgid "Commit" +msgstr "ਕਮਿਟ" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "ਕੰਟੈਕਸਟ:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "ਮਿਤੀ:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "ਵੇਰਵਾ" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "ਅਤੀਤ" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "ਪੇਰੈਂਟ:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "ਸਬਜੈਕਟ:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "ਟਰੀ" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "ਬਦਲਾਅ(_C)" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "ਸਟੇਜ ਕੀਤੇ(_S)" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "ਬਿਨ-ਸਟੇਜ ਕੀਤੇ(_U)" + +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "ਅਣਡਿੱਠਾ" + +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "ਰੀਵਰਟ" + +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "ਸਟੇਜ" + +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "ਅਣ-ਸਟੇਜ" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "ਕਮਿਟ ਸੁਨੇਹਾ" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "ਅਤੀਤ" + +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "ਯੂਜ਼ਰ" + +#: ../gitg/gitg-preferences.ui.h:4 +msgid "Collapse inactive lanes" +msgstr "ਸਭ ਗ਼ੈਰ-ਸਰਗਰਮ ਲੇਨ ਸਮੇਟੋ" + +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "ਸੰਰਚਨਾ" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "ਈਮੇਲ:" + +#: ../gitg/gitg-preferences.ui.h:10 +msgid "Early" +msgstr "ਪਹਿਲਾਂ" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Late" +msgstr "ਲੇਟ" + +#: ../gitg/gitg-preferences.ui.h:13 +msgid "Preferences" +msgstr "ਮੇਰੀ ਪਸੰਦ" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Search filters revisions in the history view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Show staged changes in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show stash in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show unstaged changes in history" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "View" +msgstr "ਝਲਕ" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "ਕਾਲਮ ਉੱਤੇ ਸੱਜਾ ਹਾਸ਼ੀਆ(_R):" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "ਨਾਂ" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "ਰਿਮੋਟ" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "ਟੈਗ ਬਣਾਓ" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "ਸੁਨੇਹਾ:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "ਬਰਾਂਚ ਚੈੱਕਆਉਟ ਕਰੋ" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rename branch" +msgstr "ਬਰਾਂਚ ਨਾਂ-ਬਦਲੋ" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Author" +msgstr "ਲੇਖਕ(_A)" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Date" +msgstr "ਮਿਤੀ(_D)" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Hash" +msgstr "ਹੈਸ਼(_H)" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Subject" +msgstr "ਵਿਸ਼ਾ(_S)" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "ਤਾਜ਼ਾ ਖੋਲ੍ਹੇ(_e)" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "ਸੋਧ(_E)" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "ਫਾਇਲ(_F)" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "ਮੱਦਦ(_H)" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "ਖੋਲ੍ਹੋ(_O)..." + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "ਰਿਪੋਜ਼ਟਰੀ(_R)" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "ਵੇਖੋ(_V)" + +#~ msgid "Author" +#~ msgstr "ਲੇਖਕ" + +#~ msgid "Date" +#~ msgstr "ਮਿਤੀ" + +#~ msgid "Subject" +#~ msgstr "ਸਬਜੈਕਟ" + +#~ msgid "Unstaged" +#~ msgstr "ਅਣ-ਸਟੇਜ਼" diff -Nru gitg-0.0.3/po/POTFILES.in gitg-0.0.6/po/POTFILES.in --- gitg-0.0.3/po/POTFILES.in 2009-02-07 15:20:08.000000000 +0000 +++ gitg-0.0.6/po/POTFILES.in 2010-01-23 21:03:30.000000000 +0000 @@ -7,6 +7,12 @@ gitg/gitg-repository.c gitg/gitg-revision-tree-view.c gitg/gitg-window.c -[type: gettext/glade]gitg/gitg-ui.xml +gitg/gitg-branch-actions.c +gitg/gitg-repository-dialog.c +[type: gettext/glade]gitg/gitg-window.ui +[type: gettext/glade]gitg/gitg-commit-menu.ui +[type: gettext/glade]gitg/gitg-preferences.ui +[type: gettext/glade]gitg/gitg-repository.ui +[type: gettext/glade]gitg/gitg-tag.ui [type: gettext/glade]gitg/gitg-menus.xml -[type: gettext/glade]gitg/gitg-preferences.xml +[type: gettext/glade]gitg/gitg-ui.xml diff -Nru gitg-0.0.3/po/sl.po gitg-0.0.6/po/sl.po --- gitg-0.0.3/po/sl.po 1970-01-01 01:00:00.000000000 +0100 +++ gitg-0.0.6/po/sl.po 2010-02-21 09:16:23.000000000 +0000 @@ -0,0 +1,952 @@ +# Slovenian translation of gitg. +# Copyright (C) 2009 gitg's COPYRIGHT HOLDER +# This file is distributed under the same license as the gitg package. +# +# Andrej Žnidaršič , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: gitg master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gitg&component=gitg\n" +"POT-Creation-Date: 2010-01-23 18:48+0000\n" +"PO-Revision-Date: 2010-01-28 08:57+0100\n" +"Last-Translator: Matej Urbančič \n" +"Language-Team: Slovenian GNOME Translation Team \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../data/gitg.desktop.in.in.h:1 +msgid "Git repository browser" +msgstr "Brskalnik git skladišč" + +#. Translators: this is the application name as in g_set_application_name +#: ../data/gitg.desktop.in.in.h:2 +#: ../gitg/gitg.c:181 +#: ../gitg/gitg-window.c:1238 +#: ../gitg/gitg-window.c:1251 +#: ../gitg/gitg-branch-actions.c:146 +#: ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 +msgid "gitg" +msgstr "gitg" + +#: ../data/gitg.schemas.in.h:1 +msgid "Column at Which Right Margin is Shown" +msgstr "Stolpec na katerem je prikazan desni rob" + +#: ../data/gitg.schemas.in.h:2 +msgid "Filter Revisions When Searching" +msgstr "Filtriraj predelave med iskanjem" + +#: ../data/gitg.schemas.in.h:3 +msgid "Setting that indicates when an inactive lane should be collapsed. Valid values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgstr "Nastavitev, ki določa kdaj naj bo nedejavna vrstica zložena. Veljavne vrednosti so med 0 - 4, kjer vrednost 0 določa zgodaj' in vrednosti 4 'pozno'." + +#: ../data/gitg.schemas.in.h:4 +msgid "Setting that indicates whether to show the history in topological order." +msgstr "Nastavitev določi ali naj bo zgodovina prikazana v topološkem redu." + +#: ../data/gitg.schemas.in.h:5 +msgid "Setting that sets the orientation layout of the main view." +msgstr "To nastavi usmeritev razporeditve glavnega pogleda." + +#: ../data/gitg.schemas.in.h:6 +msgid "Show History in Topological Order" +msgstr "Pokaži zgodovino v topološkem redu" + +#: ../data/gitg.schemas.in.h:7 +msgid "Show Main View in Vertical Layout" +msgstr "Pokaži glavni pogled v navpični razporeditvi" + +#: ../data/gitg.schemas.in.h:8 +msgid "Show Right Margin in Commit Message View" +msgstr "Pokaži desni rob v pogledu sporočil uveljavitev" + +#: ../data/gitg.schemas.in.h:9 +msgid "Show a right margin indicator in the commit message view. This can be used to easily see where to break the commit message at a particular column." +msgstr "Prikaz določila desnega roba v pogledu sporočila uveljavitev. Možnost omogoča enostaven pogled za lažji prelom besedila sporočila uveljavitve v določenem stolpcu." + +#: ../data/gitg.schemas.in.h:10 +msgid "The column at which the right margin is shown if the right-margin preference is set to TRUE." +msgstr "Stolpec na katerem je prikazan desni rob, v primeru da je možnost desnega robu izbrana." + +#: ../data/gitg.schemas.in.h:11 +msgid "The command to handle GITG scheme URLs" +msgstr "Ukaz za upravljanje z URL-ji sheme GITG" + +#: ../data/gitg.schemas.in.h:12 +msgid "The command to handle GITG scheme URLs." +msgstr "Ukaz za upravljanje z URL-ji sheme GITG." + +#: ../data/gitg.schemas.in.h:13 +msgid "When to Collapse Inactive Lanes" +msgstr "Kdaj naj se zložijo nedejavne vrstice" + +#: ../data/gitg.schemas.in.h:14 +msgid "Whether command to handle GITG scheme URLs is enabled" +msgstr "Ali je ukaz za upravljanje URL-jev sheme GITG omogočen" + +#: ../data/gitg.schemas.in.h:15 +msgid "Whether command to handle GITG scheme URLs is enabled." +msgstr "Ali je ukaz za upravljanje URL-jev sheme GITG omogočen." + +#: ../data/gitg.schemas.in.h:16 +msgid "Whether command to handle GITG scheme URLs needs a terminal" +msgstr "Ali ukaz za upravljanje URL-jev sheme GITG potrebuje terminal" + +#: ../data/gitg.schemas.in.h:17 +msgid "Whether command to handle GITG scheme URLs needs a terminal." +msgstr "Ali ukaz za upravljanje URL-jev sheme GITG potrebuje terminal." + +#: ../data/gitg.schemas.in.h:18 +msgid "Whether searching filters the revisions in the history view instead of jumping to the first match." +msgstr "Ali iskanje v pogledu zgodovine filtrira predelave namesto skoka na prvo skladanje." + +#: ../gitg/gitg.c:52 +msgid "Show the application's version" +msgstr "Pokaži različico programa" + +#: ../gitg/gitg.c:53 +msgid "Start gitg in commit mode" +msgstr "Zagon gitg v načinu uveljavitev" + +#: ../gitg/gitg.c:54 +msgid "Select commit after loading the repository" +msgstr "Izbor uveljavite po nalaganju skladišča" + +#: ../gitg/gitg.c:64 +msgid "- git repository viewer" +msgstr "- pregledovalnik git skladišč" + +#: ../gitg/gitg-commit-view.c:208 +#: ../gitg/gitg-revision-tree-view.c:183 +msgid "Cannot display file content as text" +msgstr "Vsebine datoteke ni mogoče prikazati kot besedilo" + +#: ../gitg/gitg-commit-view.c:1437 +msgid "You must first stage some changes before committing" +msgstr "Najprej je treba pripraviti spremembe, preden jih je mogoče uveljaviti." + +#: ../gitg/gitg-commit-view.c:1445 +msgid "Please enter a commit message before committing" +msgstr "Pred uveljavitvijo je potrebno vnesti sporočilo uveljavitve" + +#: ../gitg/gitg-commit-view.c:1457 +msgid "Your user name or email could not be retrieved for use in the sign off message" +msgstr "Vašega uporabniškega imena ali e-pošte za uporabo v sporočilu podpisa ni mogoče pridobiti" + +#: ../gitg/gitg-commit-view.c:1459 +msgid "Something went wrong while trying to commit" +msgstr "Med poskusom uveljavitve je nekaj šlo narobe" + +#: ../gitg/gitg-commit-view.c:1618 +msgid "Revert fail" +msgstr "Povrnitev je spodletela" + +#: ../gitg/gitg-commit-view.c:1629 +msgid "Are you sure you want to revert these changes?" +msgstr "Ali ste prepričani, da želite povrniti te spremembe?" + +#: ../gitg/gitg-commit-view.c:1632 +msgid "Reverting changes is permanent and cannot be undone" +msgstr "Povrnitev sprememb je trajna in je ni mogoče razveljaviti" + +#: ../gitg/gitg-repository.c:606 +msgid "Staged changes" +msgstr "Spremembe v pripravljenosti" + +#: ../gitg/gitg-repository.c:608 +msgid "Unstaged changes" +msgstr "Spremembe počiščene pripravljenosti" + +#: ../gitg/gitg-repository.c:1235 +msgid "Not a valid git repository" +msgstr "Ni veljavno skladišče git" + +#: ../gitg/gitg-revision-tree-view.c:513 +msgid "(Empty)" +msgstr "(Prazno)" + +#: ../gitg/gitg-window.c:430 +msgid "Select branch" +msgstr "Izbor veje" + +#: ../gitg/gitg-window.c:493 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "Objavi krajevno vejo <%s> na oddaljeno vejo <%s>" + +#: ../gitg/gitg-window.c:500 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "Združi/ponovno vzpostavi krajevno vejo <%s> z/na krajevni veji <%s>" + +#: ../gitg/gitg-window.c:507 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "Združi/ponovno vzpostavi krajevno vejo <%s> z/na oddaljeni veji <%s>" + +#: ../gitg/gitg-window.c:514 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "Uporabi zalogo na krajevni veji <%s>" + +#: ../gitg/gitg-window.c:576 +#, c-format +msgid "Cherry-pick revision on <%s>" +msgstr "Uveljavitev z odbiro na <%s>" + +#: ../gitg/gitg-window.c:840 +#, c-format +msgid "Loaded %d revisions in %.2fs" +msgstr "Naloženih %d predelav v %.2fs" + +#: ../gitg/gitg-window.c:860 +#, c-format +msgid "Loading %d revisions..." +msgstr "Nalaganje %d predelav ..." + +#: ../gitg/gitg-window.c:869 +msgid "Could not find git repository" +msgstr "Skladišča git ni mogoče najti" + +#: ../gitg/gitg-window.c:1171 +msgid "Local branches" +msgstr "Krajevne veje" + +#: ../gitg/gitg-window.c:1192 +msgid "All branches" +msgstr "Vse veje" + +#: ../gitg/gitg-window.c:1267 +msgid "Begin loading repository" +msgstr "Začni nalaganje skladišča" + +#: ../gitg/gitg-window.c:1451 +msgid "Open git repository" +msgstr "Odpri skladišče git" + +#: ../gitg/gitg-window.c:1572 +msgid "gitg is a git repository viewer for gtk+/GNOME" +msgstr "gitg je pregledovalnik git skladišč za gtk+/GNOME" + +#: ../gitg/gitg-window.c:1573 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330,\n" +"Boston, MA 02111-1307, USA." +msgstr "" +"To je prosti program; lahko ga razširjate in/ali spreminjate\n" +"pod pogoji Splošne javne licence GNU, ki jo je objavila\n" +"Free Software Foundation; velja za različico licence 2 ali\n" +"(če želite) katero koli kasnejšo različico.\n" +"\n" +"Ta program razširjamo v upanju, da bo uporaben,\n" +"vendar BREZ KAKRŠNE KOLI GARANCIJE; celo brez implicitne garancije\n" +"USTREZNOSTI ZA TRŽENJE ali USTREZNOSTI ZA DOLOČEN NAMEN. Oglejte si\n" +"Splošno javno licenco GNU za več podrobnosti.\n" +"\n" +"Splošno javno licenco GNU bi morali prejeti skupaj\n" +"s tem programom; če je niste, pišite na naslov: Free Software\n" +"Foundation, Inc., 59 Temple Place - Suite 330,\n" +"Boston, MA 02111-1307, USA." + +#: ../gitg/gitg-window.c:2040 +msgid "new" +msgstr "novo" + +#: ../gitg/gitg-window.c:2148 +#: ../gitg/gitg-window.c:2187 +#, c-format +msgid "New local branch <%s>" +msgstr "Nova krajevna veja <%s>" + +#: ../gitg/gitg-window.c:2160 +#: ../gitg/gitg-branch-actions.c:316 +msgid "Remove remote branch" +msgstr "Odstrani oddaljeno vejo" + +#: ../gitg/gitg-window.c:2165 +msgid "Checkout working copy" +msgstr "Prevzemi delovno kopijo" + +#: ../gitg/gitg-window.c:2166 +msgid "Remove local branch" +msgstr "Odstrani krajevno vejo" + +#: ../gitg/gitg-window.c:2168 +msgid "Rename local branch" +msgstr "Preimenuj krajevno vejo" + +#: ../gitg/gitg-window.c:2176 +#: ../gitg/gitg-branch-actions.c:392 +msgid "Remove stash" +msgstr "Odstrani zalogo" + +#: ../gitg/gitg-window.c:2182 +#: ../gitg/gitg-branch-actions.c:454 +#: ../gitg/gitg-branch-actions.c:456 +msgid "Remove tag" +msgstr "Odstrani oznako" + +#: ../gitg/gitg-window.c:2484 +msgid "Not all fields are correctly filled in" +msgstr "Vsa polja niso pravilno izpolnjena" + +#: ../gitg/gitg-window.c:2486 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "Prepričajte se, da boste izpolnili ime oznake in sporočilo uveljavitve" + +#. Single one, pick filename +#: ../gitg/gitg-window.c:2579 +msgid "Save format patch" +msgstr "Shrani obliko popravka" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "Veje <%s> ni mogoče odstraniti" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "This usually means that the branch is not fully merged in HEAD. Do you want to forcefully remove the branch?" +msgstr "To običajno pomeni da veja ni polno združena v GLAVI. Ali želite prisilno odstraniti vejo?" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "Prisilno odstrani" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "Veje <%s> ni mogoče prisilno odstraniti" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "Odstranjevanje oddaljene veje <%s> je spodletelo." + +#: ../gitg/gitg-branch-actions.c:314 +#, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Ali ste prepričani, da želite odstraniti oddaljeno vejo <%s>?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "To trajno odstrani oddaljeno vejo." + +#: ../gitg/gitg-branch-actions.c:332 +#: ../gitg/gitg-menus.xml.h:11 +msgid "Remove branch" +msgstr "Preimenuj vejo" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "Are you sure you want to remove this stash item?" +msgstr "Ali ste prepričani, da želite odstraniti predmet zaloge?" + +#: ../gitg/gitg-branch-actions.c:391 +msgid "This permanently removes the stash item" +msgstr "To trajno odstrani predmet zaloge" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "Failed to remove stash" +msgstr "Odstranjevanje zaloge je spodletelo" + +#: ../gitg/gitg-branch-actions.c:419 +msgid "The stash item could not be successfully removed" +msgstr "Predmeta zaloge ni mogoče uspešno odstraniti" + +#: ../gitg/gitg-branch-actions.c:450 +#, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Ali ste prepričani, da želite odstraniti oznako <%s>?" + +#: ../gitg/gitg-branch-actions.c:473 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "Oznake <%s> ni mogoče uspešno odstraniti" + +#: ../gitg/gitg-branch-actions.c:477 +msgid "Failed to remove tag" +msgstr "Odstranitev oznake je spodletela" + +#: ../gitg/gitg-branch-actions.c:534 +#, c-format +msgid "Branch <%s> could not be renamed to <%s>" +msgstr "Veje <%s> ni mogoče preimenovati v <%s>" + +#: ../gitg/gitg-branch-actions.c:535 +msgid "This usually means that a branch with that name already exists. Do you want to overwrite the branch?" +msgstr "To običajno pomeni, da veja s tem imenom že obstaja. Ali želite vejo prepisati?" + +#: ../gitg/gitg-branch-actions.c:536 +msgid "Force rename" +msgstr "Vsiljeno preimenuj" + +#: ../gitg/gitg-branch-actions.c:545 +#, c-format +msgid "Branch <%s> could not be forcefully renamed" +msgstr "Veje <%s> ni mogoče vsiljeno preimenovati" + +#: ../gitg/gitg-branch-actions.c:585 +#: ../gitg/gitg-preferences.ui.h:13 +#: ../gitg/gitg-repository.ui.h:6 +#: ../gitg/gitg-tag.ui.h:4 +msgid "Name:" +msgstr "Ime:" + +#: ../gitg/gitg-branch-actions.c:693 +msgid "Do you want to temporarily stash these changes?" +msgstr "Ali želite začasno založiti te spremembe?" + +#: ../gitg/gitg-branch-actions.c:697 +msgid "Do you want to stash and reapply these changes?" +msgstr "Ali želite založiti in ponovno uporabiti te spremembe?" + +#: ../gitg/gitg-branch-actions.c:702 +msgid "You have uncommited changes in your current working tree" +msgstr "V vašem delovnem drevesu so neuveljavljene spremembe" + +#: ../gitg/gitg-branch-actions.c:704 +msgid "Stash changes" +msgstr "Založi spremembe" + +#: ../gitg/gitg-branch-actions.c:880 +msgid "Failed to save current index state" +msgstr "Shranjevanje trenutnega stanja kazala je spodletelo" + +#: ../gitg/gitg-branch-actions.c:934 +#: ../gitg/gitg-branch-actions.c:1216 +#: ../gitg/gitg-branch-actions.c:1508 +#: ../gitg/gitg-branch-actions.c:1744 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "Prevzem krajevne veje <%s> je spodletel" + +#: ../gitg/gitg-branch-actions.c:972 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "Prevzem oddaljene veje <%s> na krajevno vejo <%s> je spodletel" + +#: ../gitg/gitg-branch-actions.c:1012 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "Prevzem oznake <%s> na krajevno oznako <%s> je spodletel" + +#: ../gitg/gitg-branch-actions.c:1103 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "Ponovno vzpostavljanje %s veje <%s> na %s veje <%s> je spodletelo" + +#: ../gitg/gitg-branch-actions.c:1107 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "Združevanje %s veje <%s> z %s veje <%s> je spodletelo" + +#: ../gitg/gitg-branch-actions.c:1115 +#: ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 +#: ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 +#: ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 +#: ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 +#: ../gitg/gitg-branch-actions.c:1309 +msgid "local" +msgstr "krajevno" + +#: ../gitg/gitg-branch-actions.c:1115 +#: ../gitg/gitg-branch-actions.c:1117 +#: ../gitg/gitg-branch-actions.c:1183 +#: ../gitg/gitg-branch-actions.c:1185 +#: ../gitg/gitg-branch-actions.c:1224 +#: ../gitg/gitg-branch-actions.c:1226 +#: ../gitg/gitg-branch-actions.c:1260 +#: ../gitg/gitg-branch-actions.c:1262 +#: ../gitg/gitg-branch-actions.c:1307 +#: ../gitg/gitg-branch-actions.c:1309 +msgid "remote" +msgstr "oddaljeno" + +#: ../gitg/gitg-branch-actions.c:1134 +#: ../gitg/gitg-branch-actions.c:1663 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "Spremembe zaloge so bile shranjene za ročno ponovno uporabo" + +#: ../gitg/gitg-branch-actions.c:1139 +#: ../gitg/gitg-branch-actions.c:1668 +msgid "Failed to checkout previously checked out branch" +msgstr "Prevzem predhodno prevzete veje je spodletel" + +#: ../gitg/gitg-branch-actions.c:1160 +#: ../gitg/gitg-branch-actions.c:1689 +msgid "Failed to reapply stash correctly" +msgstr "Pravilna ponovna uporaba zaloge je spodletela" + +#: ../gitg/gitg-branch-actions.c:1161 +#: ../gitg/gitg-branch-actions.c:1690 +msgid "There might be unresolved conflicts in the working tree or index which you need to resolve manually" +msgstr "Morda so v delovnem drevesu ali kazalu nerazrešeni spori, ki jih je potrebno razrešiti ročno" + +#: ../gitg/gitg-branch-actions.c:1182 +#, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Ali ste prepričani, da želite združiti %s veje <%s> na %s veje <%s>?" + +#: ../gitg/gitg-branch-actions.c:1190 +#: ../gitg/gitg-branch-actions.c:1192 +#: ../gitg/gitg-branch-actions.c:1236 +#: ../gitg/gitg-menus.xml.h:6 +msgid "Merge" +msgstr "Združi" + +#: ../gitg/gitg-branch-actions.c:1217 +msgid "The branch on which to merge could not be checked out" +msgstr "Veje za združevanje ni mogoče prevzeti" + +#: ../gitg/gitg-branch-actions.c:1223 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "Združevanje %s veje <%s> na %s veje <%s>" + +#: ../gitg/gitg-branch-actions.c:1259 +#, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Ali ste prepričani, da želite ponovno vzpostaviti %s veje <%s> na %s veje <%s>?" + +#: ../gitg/gitg-branch-actions.c:1267 +#: ../gitg/gitg-branch-actions.c:1269 +#: ../gitg/gitg-branch-actions.c:1319 +#: ../gitg/gitg-menus.xml.h:9 +msgid "Rebase" +msgstr "Ponovno vzpostavi" + +#: ../gitg/gitg-branch-actions.c:1292 +msgid "Unable to rebase" +msgstr "Ni mogoče ponovno vzpostaviti" + +#: ../gitg/gitg-branch-actions.c:1293 +msgid "There are still uncommitted changes in your working tree and you are trying to rebase a branch onto the currently checked out branch. Either remove, stash or commit your changes first and try again" +msgstr "V vašem delovnem drevesu so še vedno neuveljavljene spremembe, vi pa poskušate vejo ponovno vzpostaviti na trenutno uveljavljeno vejo. Odstranite, založite ali uveljavite vaše spremembe in poskusite znova." + +#: ../gitg/gitg-branch-actions.c:1306 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "Ponovno vzpostavljanje %s veje <%s> na %s vejo <%s>" + +#: ../gitg/gitg-branch-actions.c:1345 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "Objava krajevne veje <%s> na oddaljeno vejo <%s> je spodletela" + +#: ../gitg/gitg-branch-actions.c:1346 +msgid "This usually means that the remote branch could not be fast-forwarded. Try fetching the latest changes." +msgstr "To običajno pomeni, da oddaljene veje ni mogoče hitro posredovati. Poskusite s pridobivanjem zadnjih sprememb." + +#: ../gitg/gitg-branch-actions.c:1370 +#, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Ali ste prepričani, da želite objaviti <%s> na <%s>?" + +#: ../gitg/gitg-branch-actions.c:1376 +#: ../gitg/gitg-branch-actions.c:1378 +#: ../gitg/gitg-branch-actions.c:1399 +#: ../gitg/gitg-branch-actions.c:1432 +#: ../gitg/gitg-branch-actions.c:1434 +#: ../gitg/gitg-branch-actions.c:1457 +msgid "Push" +msgstr "Objavi" + +#: ../gitg/gitg-branch-actions.c:1391 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "Objavljanje krajevne veje <%s> na oddaljeno vejo <%s>" + +#: ../gitg/gitg-branch-actions.c:1426 +#, c-format +msgid "Are you sure you want to push <%s> to remote <%s/%s>?" +msgstr "Ali ste prepričani, da želite objaviti <%s> na oddaljeno <%s/%s>?" + +#: ../gitg/gitg-branch-actions.c:1444 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s/%s>" +msgstr "Objavljanje krajevne veje <%s> na oddaljeno vejo <%s/%s>" + +#: ../gitg/gitg-branch-actions.c:1481 +#, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "Ali ste prepričani, da želite uporabiti predmet zaloge na krajevni veji <%s>?" + +#: ../gitg/gitg-branch-actions.c:1486 +#: ../gitg/gitg-branch-actions.c:1488 +msgid "Apply stash" +msgstr "Uporabi zalogo" + +#: ../gitg/gitg-branch-actions.c:1527 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "Zaloge ni mogoče uporabiti na krajevni veji <%s>" + +#: ../gitg/gitg-branch-actions.c:1531 +msgid "Failed to apply stash" +msgstr "Uporaba zaloge je spodletela" + +#: ../gitg/gitg-branch-actions.c:1577 +msgid "The tag object could not be successfully created. Please make sure you have a GPG key and the key is unlocked" +msgstr "Predmeta oznake ni mogoče uspešno ustvariti. Prepričajte se, da imate odklenjen ključ GPG" + +#: ../gitg/gitg-branch-actions.c:1581 +msgid "The tag object could not be successfully created" +msgstr "Predmeta oznake ni mogoče uspešno ustvariti" + +#: ../gitg/gitg-branch-actions.c:1586 +msgid "Failed to create tag" +msgstr "Ustvarjanje oznake je spodletelo" + +#: ../gitg/gitg-branch-actions.c:1643 +#, c-format +msgid "Failed to cherry-pick on <%s>" +msgstr "Ni mogoče uveljaviti z odbiro na <%s>" + +#: ../gitg/gitg-branch-actions.c:1710 +#, c-format +msgid "Are you sure you want to cherry-pick that revision on <%s>?" +msgstr "Ali ste prepričani, da želite uveljaviti z odbiro na <%s>?" + +#: ../gitg/gitg-branch-actions.c:1715 +#: ../gitg/gitg-branch-actions.c:1717 +#: ../gitg/gitg-branch-actions.c:1765 +msgid "Cherry-pick" +msgstr "Odbiranje" + +#: ../gitg/gitg-branch-actions.c:1745 +msgid "The branch on which to cherry-pick could not be checked out" +msgstr "Veje za odbiro ni mogoče prevzeti" + +#: ../gitg/gitg-branch-actions.c:1752 +#, c-format +msgid "Cherry-picking on <%s>" +msgstr "Uveljavljanje z odbiro na <%s>" + +#: ../gitg/gitg-branch-actions.c:1822 +msgid "Failed to generate format-patch" +msgstr "Ustvarjanje oblike popravka je spodletelo" + +#: ../gitg/gitg-branch-actions.c:1868 +#, c-format +msgid "Generating format-patch for <%s>" +msgstr "Ustvarjanje oblike popravka za <%s>" + +#: ../gitg/gitg-branch-actions.c:1874 +#: ../gitg/gitg-menus.xml.h:5 +msgid "Format patch" +msgstr "Oblikuj popravek" + +#: ../gitg/gitg-repository-dialog.c:173 +#: ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "Pridobi" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "Prekliči" + +#: ../gitg/gitg-repository-dialog.c:441 +#: ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "Lastnosti" + +#: ../gitg/gitg-window.ui.h:1 +msgid "Add signed-off-by" +msgstr "Dodaj podpis" + +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "Izboljšaj" + +#: ../gitg/gitg-window.ui.h:3 +msgid "Author:" +msgstr "Avtor:" + +#: ../gitg/gitg-window.ui.h:4 +msgid "Branch:" +msgstr "Veja:" + +#: ../gitg/gitg-window.ui.h:5 +msgid "Co_mmit message" +msgstr "Sporočilo uve_ljavljana" + +#: ../gitg/gitg-window.ui.h:6 +#: ../gitg/gitg-preferences.ui.h:6 +msgid "Commit" +msgstr "Uveljavi" + +#: ../gitg/gitg-window.ui.h:7 +msgid "Context:" +msgstr "Vsebina:" + +#: ../gitg/gitg-window.ui.h:8 +msgid "Date:" +msgstr "Datum:" + +#: ../gitg/gitg-window.ui.h:9 +msgid "Details" +msgstr "Podrobnosti" + +#: ../gitg/gitg-window.ui.h:10 +msgid "History" +msgstr "Zgodovina" + +#: ../gitg/gitg-window.ui.h:11 +msgid "Parent:" +msgstr "Nadrejeni predmet:" + +#: ../gitg/gitg-window.ui.h:12 +msgid "SHA:" +msgstr "SHA:" + +#: ../gitg/gitg-window.ui.h:13 +msgid "Subject:" +msgstr "Zadeva:" + +#: ../gitg/gitg-window.ui.h:14 +msgid "Tree" +msgstr "Drevo" + +#: ../gitg/gitg-window.ui.h:15 +msgid "_Changes" +msgstr "_Spremembe" + +#: ../gitg/gitg-window.ui.h:16 +msgid "_Staged" +msgstr "_V pripravljenost" + +#: ../gitg/gitg-window.ui.h:17 +msgid "_Unstaged" +msgstr "_Počiščeno pripravljenosti" + +#: ../gitg/gitg-commit-menu.ui.h:1 +#: ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Prezri" + +#: ../gitg/gitg-commit-menu.ui.h:2 +#: ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Povrni" + +#: ../gitg/gitg-commit-menu.ui.h:3 +#: ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "V pripravljenost" + +#: ../gitg/gitg-commit-menu.ui.h:4 +#: ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "Počisti pripravljenost" + +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" +msgstr "Sporočilo uveljavljanja" + +#: ../gitg/gitg-preferences.ui.h:2 +msgid "History" +msgstr "Zgodovina" + +#: ../gitg/gitg-preferences.ui.h:3 +msgid "Main" +msgstr "Glavni" + +#: ../gitg/gitg-preferences.ui.h:4 +#: ../gitg/gitg-repository.ui.h:1 +msgid "User" +msgstr "Uporabnik" + +#: ../gitg/gitg-preferences.ui.h:5 +msgid "Collapse inactive lanes" +msgstr "Zloži nedejavne vrstice" + +#: ../gitg/gitg-preferences.ui.h:7 +#: ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "Nastavitev" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Configure global git settings. This corresponds to the settings as stored in ~/.gitconfig. Repository specific settings can be configured at the repository properties." +msgstr "Splošne nastavitve git. To ustreza nastavitvam, ki so shranjene v ~/.gitconfig. Nastavitve za določeno spletišče je mogoče spremeniti v lastnostnih skladišča." + +#: ../gitg/gitg-preferences.ui.h:9 +msgid "Display right _margin" +msgstr "Pokaži desni _rob" + +#: ../gitg/gitg-preferences.ui.h:10 +#: ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "Elektronski naslov:" + +#: ../gitg/gitg-preferences.ui.h:11 +msgid "Early" +msgstr "Zgodnje" + +#: ../gitg/gitg-preferences.ui.h:12 +msgid "Late" +msgstr "Pozno" + +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences" +msgstr "Možnosti" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the commit view" +msgstr "Možnosti uporabljene za pogled uveljavitev" + +#: ../gitg/gitg-preferences.ui.h:16 +msgid "Preferences that apply to the revision view" +msgstr "Možnosti uporabljene za pogled predelav" + +#: ../gitg/gitg-preferences.ui.h:17 +msgid "Search filters revisions in the history view" +msgstr "Iskanje predelav filtrov v ogledu zgodovine" + +#: ../gitg/gitg-preferences.ui.h:18 +msgid "Show history in topological order" +msgstr "Pokaži zgodovino v topološkem redu" + +#: ../gitg/gitg-preferences.ui.h:19 +msgid "Show staged changes in history" +msgstr "Pokaži spremembe v pripravljenosti" + +#: ../gitg/gitg-preferences.ui.h:20 +msgid "Show stash in history" +msgstr "Pokaži zalogo v zgodovini" + +#: ../gitg/gitg-preferences.ui.h:21 +msgid "Show unstaged changes in history" +msgstr "Pokaži spremembe počiščene pripravljenosti" + +#: ../gitg/gitg-preferences.ui.h:22 +msgid "Use vertical layout" +msgstr "Uporaba navpične razporeditve" + +#: ../gitg/gitg-preferences.ui.h:23 +msgid "View" +msgstr "Pogled" + +#: ../gitg/gitg-preferences.ui.h:24 +msgid "_Right margin at column:" +msgstr "_Desni rob na stolpcu:" + +#: ../gitg/gitg-repository.ui.h:5 +msgid "Name" +msgstr "Ime" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "Oddaljeno" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "URL" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "Ustvari podpisan predmet oznake" + +#: ../gitg/gitg-tag.ui.h:2 +#: ../gitg/gitg-menus.xml.h:4 +msgid "Create tag" +msgstr "Ustvari oznako" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "Sporočilo:" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "Uporabi zalogo na ..." + +#: ../gitg/gitg-menus.xml.h:2 +msgid "Checkout branch" +msgstr "Prevzemi vejo" + +#: ../gitg/gitg-menus.xml.h:3 +msgid "Cherry-pick on..." +msgstr "Uveljavi z odbiro na ..." + +#: ../gitg/gitg-menus.xml.h:7 +msgid "Merge branch with..." +msgstr "Združi vejo z ..." + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Push branch to..." +msgstr "Objavi vejo na ..." + +#: ../gitg/gitg-menus.xml.h:10 +msgid "Rebase branch onto..." +msgstr "Ponovno vzpostavi vejo na ..." + +#: ../gitg/gitg-menus.xml.h:12 +msgid "Rename branch" +msgstr "Preimenuj vejo" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Author" +msgstr "_Avtor" + +#: ../gitg/gitg-menus.xml.h:14 +msgid "_Date" +msgstr "_Datum" + +#: ../gitg/gitg-menus.xml.h:15 +msgid "_Hash" +msgstr "_Razpršilo" + +#: ../gitg/gitg-menus.xml.h:16 +msgid "_Subject" +msgstr "_Zadeva" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "N_edavno odprto" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Uredi" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Datoteka" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "Pomo_č" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Odpri ..." + +#: ../gitg/gitg-ui.xml.h:10 +msgid "_Repository" +msgstr "_Skladišče" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Pogled" + diff -Nru gitg-0.0.3/po/sv.po gitg-0.0.6/po/sv.po --- gitg-0.0.3/po/sv.po 2009-04-22 18:39:35.000000000 +0100 +++ gitg-0.0.6/po/sv.po 2010-01-23 21:03:30.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gitg\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-22 09:42+0200\n" +"POT-Creation-Date: 2009-07-05 21:28+0200\n" "PO-Revision-Date: 2009-04-22 09:47+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -20,28 +20,51 @@ msgstr "" #. Translators: this is the application name as in g_set_application_name -#: ../data/gitg.desktop.in.in.h:2 -#: ../gitg/gitg.c:169 -#: ../gitg/gitg-window.c:785 -#: ../gitg/gitg-window.c:803 -#: ../gitg/gitg-ui.xml.h:32 +#: ../data/gitg.desktop.in.in.h:2 ../gitg/gitg.c:169 +#: ../gitg/gitg-window.c:1005 ../gitg/gitg-window.c:1018 +#: ../gitg/gitg-branch-actions.c:146 ../gitg/gitg-branch-actions.c:199 +#: ../gitg/gitg-window.ui.h:18 msgid "gitg" msgstr "gitg" #: ../data/gitg.schemas.in.h:1 -msgid "Filter Revisions When Searching" +msgid "Column at Which Right Margin is Shown" msgstr "" #: ../data/gitg.schemas.in.h:2 -msgid "Setting that indicates when an inactive lane should be collapsed. Valid values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." +msgid "Filter Revisions When Searching" msgstr "" #: ../data/gitg.schemas.in.h:3 -msgid "When to Collapse Inactive Lanes" +msgid "" +"Setting that indicates when an inactive lane should be collapsed. Valid " +"values are 0 - 4, where 0 indicates 'early' and 4 indicates 'late'." msgstr "" #: ../data/gitg.schemas.in.h:4 -msgid "Whether searching filters the revisions in the history view instead of jumping to the first match." +msgid "Show Right Margin in Commit Message View" +msgstr "" + +#: ../data/gitg.schemas.in.h:5 +msgid "" +"Show a right margin indicator in the commit message view. This can be used " +"to easily see where to break the commit message at a particular column." +msgstr "" + +#: ../data/gitg.schemas.in.h:6 +msgid "" +"The column at which the right margin is shown if the right-margin preference " +"is set to TRUE." +msgstr "" + +#: ../data/gitg.schemas.in.h:7 +msgid "When to Collapse Inactive Lanes" +msgstr "" + +#: ../data/gitg.schemas.in.h:8 +msgid "" +"Whether searching filters the revisions in the history view instead of " +"jumping to the first match." msgstr "" #: ../gitg/gitg.c:43 @@ -52,48 +75,49 @@ msgid "- git repository viewer" msgstr "- git-förrådsvisare" -#: ../gitg/gitg-commit-view.c:204 -#: ../gitg/gitg-revision-tree-view.c:181 +#: ../gitg/gitg-commit-view.c:208 ../gitg/gitg-revision-tree-view.c:181 msgid "Cannot display file content as text" msgstr "Kan inte visa filens innehåll som text" -#: ../gitg/gitg-commit-view.c:1166 +#: ../gitg/gitg-commit-view.c:1431 msgid "You must first stage some changes before committing" msgstr "" -#: ../gitg/gitg-commit-view.c:1174 +#: ../gitg/gitg-commit-view.c:1439 msgid "Please enter a commit message before committing" msgstr "" -#: ../gitg/gitg-commit-view.c:1185 -msgid "Your user name or email could not be retrieved for use in the sign off message" +#: ../gitg/gitg-commit-view.c:1451 +msgid "" +"Your user name or email could not be retrieved for use in the sign off " +"message" msgstr "" -#: ../gitg/gitg-commit-view.c:1187 +#: ../gitg/gitg-commit-view.c:1453 msgid "Something went wrong while trying to commit" msgstr "" -#: ../gitg/gitg-commit-view.c:1355 +#: ../gitg/gitg-commit-view.c:1612 msgid "Revert fail" msgstr "" -#: ../gitg/gitg-commit-view.c:1366 +#: ../gitg/gitg-commit-view.c:1623 msgid "Are you sure you want to revert these changes?" msgstr "Är du säker på att du vill återställa dessa ändringar?" -#: ../gitg/gitg-commit-view.c:1369 +#: ../gitg/gitg-commit-view.c:1626 msgid "Reverting changes is permanent and cannot be undone" msgstr "Återställning av ändringar är permanent och kan inte ångras" -#: ../gitg/gitg-repository.c:472 +#: ../gitg/gitg-repository.c:591 msgid "Staged changes" msgstr "" -#: ../gitg/gitg-repository.c:474 +#: ../gitg/gitg-repository.c:593 msgid "Unstaged changes" msgstr "" -#: ../gitg/gitg-repository.c:983 +#: ../gitg/gitg-repository.c:1148 msgid "Not a valid git repository" msgstr "Inte ett giltigt git-förråd" @@ -101,41 +125,61 @@ msgid "(Empty)" msgstr "(Tom)" -#: ../gitg/gitg-window.c:346 +#: ../gitg/gitg-window.c:420 msgid "Select branch" msgstr "Välj gren" -#: ../gitg/gitg-window.c:532 +#: ../gitg/gitg-window.c:482 +#, c-format +msgid "Push local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:489 +#, c-format +msgid "Merge/rebase local branch <%s> with/on local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:496 +#, c-format +msgid "Merge/rebase local branch <%s> with/on remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:503 +#, c-format +msgid "Apply stash to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-window.c:771 msgid "Begin loading repository" msgstr "" -#: ../gitg/gitg-window.c:541 +#: ../gitg/gitg-window.c:780 #, c-format msgid "Loaded %d revisions in %.2fs" msgstr "Läste in %d revisioner på %.2fs" -#: ../gitg/gitg-window.c:552 +#: ../gitg/gitg-window.c:791 #, c-format msgid "Loading %d revisions..." msgstr "Läser in %d revisioner..." -#: ../gitg/gitg-window.c:561 +#: ../gitg/gitg-window.c:800 msgid "Could not find git repository" msgstr "Kunde inte hitta git-förrådet" -#: ../gitg/gitg-window.c:697 +#: ../gitg/gitg-window.c:983 msgid "All branches" msgstr "Alla grenar" -#: ../gitg/gitg-window.c:860 +#: ../gitg/gitg-window.c:1192 msgid "Open git repository" msgstr "Öppna git-förråd" -#: ../gitg/gitg-window.c:982 +#: ../gitg/gitg-window.c:1313 msgid "gitg is a git repository viewer for gtk+/GNOME" msgstr "gitg är en git-förrådsvisare för gtk+/GNOME" -#: ../gitg/gitg-window.c:983 +#: ../gitg/gitg-window.c:1314 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -170,183 +214,592 @@ "med detta program. Om inte, skriv till Free Software Foundation,\n" "Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA." -#: ../gitg/gitg-ui.xml.h:1 +#: ../gitg/gitg-window.c:1775 ../gitg/gitg-window.c:1809 +#, fuzzy, c-format +msgid "New local branch <%s>" +msgstr "Alla grenar" + +#: ../gitg/gitg-window.c:1787 ../gitg/gitg-branch-actions.c:316 +#, fuzzy +msgid "Remove remote branch" +msgstr "Välj gren" + +#: ../gitg/gitg-window.c:1791 +msgid "Checkout working copy" +msgstr "" + +#: ../gitg/gitg-window.c:1792 +#, fuzzy +msgid "Remove local branch" +msgstr "Välj gren" + +#: ../gitg/gitg-window.c:1800 ../gitg/gitg-branch-actions.c:391 +msgid "Remove stash" +msgstr "" + +#: ../gitg/gitg-window.c:1805 ../gitg/gitg-branch-actions.c:456 +#: ../gitg/gitg-branch-actions.c:458 +#, fuzzy +msgid "Remove tag" +msgstr "Återställ" + +#: ../gitg/gitg-window.c:1984 +msgid "Not all fields are correctly filled in" +msgstr "" + +#: ../gitg/gitg-window.c:1986 +msgid "Please make sure to fill in both the tag name and the commit message" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:249 +#, c-format +msgid "Branch <%s> could not be removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:250 +msgid "" +"This usually means that the branch is not fully merged in HEAD. Do you want " +"to forcefully remove the branch?" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:251 +msgid "Force remove" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:260 +#, c-format +msgid "Branch <%s> could not be forcefully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:293 +#, c-format +msgid "Failed to remove remote branch <%s>." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:314 +#, fuzzy, c-format +msgid "Are you sure you want to remove the remote branch <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:315 +msgid "This permanently removes the remote branch." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:332 ../gitg/gitg-menus.xml.h:9 +#, fuzzy +msgid "Remove branch" +msgstr "Välj gren" + +#: ../gitg/gitg-branch-actions.c:389 +#, fuzzy +msgid "Are you sure you want to remove this stash item?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:390 +msgid "This permanently removes the stash item" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:417 +msgid "Failed to remove stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:418 +msgid "The stash item could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:452 +#, fuzzy, c-format +msgid "Are you sure you want to remove the tag <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:475 +#, c-format +msgid "The tag <%s> could not be successfully removed" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:479 +msgid "Failed to remove tag" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:579 +#, fuzzy +msgid "Do you want to temporarily stash these changes?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:583 +#, fuzzy +msgid "Do you want to stash and reapply these changes?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:588 +msgid "You have uncommited changes in your current working tree" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:590 +msgid "Stash changes" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:766 +msgid "Failed to save current index state" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:820 ../gitg/gitg-branch-actions.c:1102 +#: ../gitg/gitg-branch-actions.c:1397 +#, c-format +msgid "Failed to checkout local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:858 +#, c-format +msgid "Failed to checkout remote branch <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:898 +#, c-format +msgid "Failed to checkout tag <%s> to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:989 +#, c-format +msgid "Failed to rebase %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:993 +#, c-format +msgid "Failed to merge %s branch <%s> with %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1001 ../gitg/gitg-branch-actions.c:1003 +#: ../gitg/gitg-branch-actions.c:1069 ../gitg/gitg-branch-actions.c:1071 +#: ../gitg/gitg-branch-actions.c:1110 ../gitg/gitg-branch-actions.c:1112 +#: ../gitg/gitg-branch-actions.c:1146 ../gitg/gitg-branch-actions.c:1148 +#: ../gitg/gitg-branch-actions.c:1193 ../gitg/gitg-branch-actions.c:1195 +msgid "local" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1001 ../gitg/gitg-branch-actions.c:1003 +#: ../gitg/gitg-branch-actions.c:1069 ../gitg/gitg-branch-actions.c:1071 +#: ../gitg/gitg-branch-actions.c:1110 ../gitg/gitg-branch-actions.c:1112 +#: ../gitg/gitg-branch-actions.c:1146 ../gitg/gitg-branch-actions.c:1148 +#: ../gitg/gitg-branch-actions.c:1193 ../gitg/gitg-branch-actions.c:1195 +#, fuzzy +msgid "remote" +msgstr "Träd" + +#: ../gitg/gitg-branch-actions.c:1020 +msgid "The stashed changes have been stored to be reapplied manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1025 +msgid "Failed to checkout previously checked out branch" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1046 +msgid "Failed to reapply stash correctly" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1047 +msgid "" +"There might be unresolved conflicts in the working tree or index which you " +"need to resolve manually" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1068 +#, fuzzy, c-format +msgid "Are you sure you want to merge %s branch <%s> onto %s branch <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:1076 ../gitg/gitg-branch-actions.c:1078 +#: ../gitg/gitg-branch-actions.c:1122 ../gitg/gitg-menus.xml.h:4 +msgid "Merge" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1103 +msgid "The branch on which to merge could not be checked out" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1109 +#, c-format +msgid "Merging %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1145 +#, fuzzy, c-format +msgid "Are you sure you want to rebase %s branch <%s> onto %s branch <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:1153 ../gitg/gitg-branch-actions.c:1155 +#: ../gitg/gitg-branch-actions.c:1205 ../gitg/gitg-menus.xml.h:7 +msgid "Rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1178 +msgid "Unable to rebase" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1179 +msgid "" +"There are still uncommitted changes in your working tree and you are trying " +"to rebase a branch onto the currently checked out branch. Either remove, " +"stash or commit your changes first and try again" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1192 +#, c-format +msgid "Rebasing %s branch <%s> onto %s branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1231 +#, c-format +msgid "Failed to push local branch <%s> to remote <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1232 +msgid "" +"This usually means that the remote branch could not be fast-forwarded. Try " +"fetching the latest changes." +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1256 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:1262 ../gitg/gitg-branch-actions.c:1264 +#: ../gitg/gitg-branch-actions.c:1285 ../gitg/gitg-branch-actions.c:1317 +#: ../gitg/gitg-branch-actions.c:1319 ../gitg/gitg-branch-actions.c:1346 +msgid "Push" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1277 ../gitg/gitg-branch-actions.c:1331 +#, c-format +msgid "Pushing local branch <%s> to remote branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1311 +#, fuzzy, c-format +msgid "Are you sure you want to push <%s> to remote <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:1370 +#, fuzzy, c-format +msgid "Are you sure you want to apply the stash item to local branch <%s>?" +msgstr "Är du säker på att du vill återställa dessa ändringar?" + +#: ../gitg/gitg-branch-actions.c:1375 ../gitg/gitg-branch-actions.c:1377 +msgid "Apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1416 +#, c-format +msgid "The stash could not be applied to local branch <%s>" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1420 +msgid "Failed to apply stash" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1466 +msgid "" +"The tag object could not be successfully created. Please make sure you have " +"a GPG key and the key is unlocked" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1470 +msgid "The tag object could not be successfully created" +msgstr "" + +#: ../gitg/gitg-branch-actions.c:1475 +msgid "Failed to create tag" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:173 ../gitg/gitg-repository.ui.h:4 +msgid "Fetch" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:178 +msgid "Cancel" +msgstr "" + +#: ../gitg/gitg-repository-dialog.c:441 ../gitg/gitg-repository.ui.h:7 +#: ../gitg/gitg-tag.ui.h:5 +msgid "Properties" +msgstr "" + +#: ../gitg/gitg-window.ui.h:1 msgid "Add signed-off-by" msgstr "" -#: ../gitg/gitg-ui.xml.h:2 -msgid "Author" -msgstr "Upphovsman" +#: ../gitg/gitg-window.ui.h:2 +msgid "Amend" +msgstr "" -#: ../gitg/gitg-ui.xml.h:3 +#: ../gitg/gitg-window.ui.h:3 msgid "Author:" msgstr "Upphovsman:" -#: ../gitg/gitg-ui.xml.h:4 +#: ../gitg/gitg-window.ui.h:4 msgid "Branch:" msgstr "Gren:" -#: ../gitg/gitg-ui.xml.h:5 +#: ../gitg/gitg-window.ui.h:5 msgid "Co_mmit message" msgstr "" -#: ../gitg/gitg-ui.xml.h:6 +#: ../gitg/gitg-window.ui.h:6 ../gitg/gitg-preferences.ui.h:5 msgid "Commit" msgstr "" -#: ../gitg/gitg-ui.xml.h:7 +#: ../gitg/gitg-window.ui.h:7 msgid "Context:" msgstr "Kontext:" -#: ../gitg/gitg-ui.xml.h:8 -msgid "Date" -msgstr "Datum" - -#: ../gitg/gitg-ui.xml.h:9 +#: ../gitg/gitg-window.ui.h:8 msgid "Date:" msgstr "Datum:" -#: ../gitg/gitg-ui.xml.h:10 +#: ../gitg/gitg-window.ui.h:9 msgid "Details" msgstr "Detaljer" -#: ../gitg/gitg-ui.xml.h:11 -msgid "Filename" -msgstr "Filnamn" - -#: ../gitg/gitg-ui.xml.h:12 +#: ../gitg/gitg-window.ui.h:10 msgid "History" msgstr "Historik" -#: ../gitg/gitg-ui.xml.h:13 -msgid "Ignore" -msgstr "Ignorera" - -#: ../gitg/gitg-ui.xml.h:14 +#: ../gitg/gitg-window.ui.h:11 msgid "Parent:" msgstr "Förälder:" -#: ../gitg/gitg-ui.xml.h:15 -msgid "R_ecently Opened" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:16 -msgid "Revert" -msgstr "Återställ" - -#: ../gitg/gitg-ui.xml.h:17 +#: ../gitg/gitg-window.ui.h:12 msgid "SHA:" msgstr "SHA:" -#: ../gitg/gitg-ui.xml.h:18 -msgid "Stage" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:19 -msgid "Subject" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:20 +#: ../gitg/gitg-window.ui.h:13 msgid "Subject:" msgstr "" -#: ../gitg/gitg-ui.xml.h:21 +#: ../gitg/gitg-window.ui.h:14 msgid "Tree" msgstr "Träd" -#: ../gitg/gitg-ui.xml.h:22 -msgid "Unstage" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:23 -msgid "Unstaged" -msgstr "" - -#: ../gitg/gitg-ui.xml.h:24 +#: ../gitg/gitg-window.ui.h:15 msgid "_Changes" msgstr "Ä_ndringar" -#: ../gitg/gitg-ui.xml.h:25 -msgid "_Edit" -msgstr "_Redigera" - -#: ../gitg/gitg-ui.xml.h:26 -msgid "_File" -msgstr "_Arkiv" - -#: ../gitg/gitg-ui.xml.h:27 -msgid "_Help" -msgstr "_Hjälp" - -#: ../gitg/gitg-ui.xml.h:28 -msgid "_Open..." -msgstr "_Öppna..." - -#: ../gitg/gitg-ui.xml.h:29 +#: ../gitg/gitg-window.ui.h:16 msgid "_Staged" msgstr "" -#: ../gitg/gitg-ui.xml.h:30 +#: ../gitg/gitg-window.ui.h:17 msgid "_Unstaged" msgstr "" -#: ../gitg/gitg-ui.xml.h:31 -msgid "_View" -msgstr "_Visa" +#: ../gitg/gitg-commit-menu.ui.h:1 ../gitg/gitg-ui.xml.h:1 +msgid "Ignore" +msgstr "Ignorera" -#: ../gitg/gitg-menus.xml.h:1 -msgid "_Author" -msgstr "U_pphovsman" +#: ../gitg/gitg-commit-menu.ui.h:2 ../gitg/gitg-ui.xml.h:3 +msgid "Revert" +msgstr "Återställ" -#: ../gitg/gitg-menus.xml.h:2 -msgid "_Date" -msgstr "_Datum" +#: ../gitg/gitg-commit-menu.ui.h:3 ../gitg/gitg-ui.xml.h:4 +msgid "Stage" +msgstr "" -#: ../gitg/gitg-menus.xml.h:3 -msgid "_Hash" -msgstr "_Hash" +#: ../gitg/gitg-commit-menu.ui.h:4 ../gitg/gitg-ui.xml.h:5 +msgid "Unstage" +msgstr "" -#: ../gitg/gitg-menus.xml.h:4 -msgid "_Subject" +#: ../gitg/gitg-preferences.ui.h:1 +msgid "Commit Message" msgstr "" -#: ../gitg/gitg-preferences.xml.h:1 +#: ../gitg/gitg-preferences.ui.h:2 msgid "History" msgstr "Historik" -#: ../gitg/gitg-preferences.xml.h:2 +#: ../gitg/gitg-preferences.ui.h:3 ../gitg/gitg-repository.ui.h:1 +#, fuzzy +msgid "User" +msgstr "Historik" + +#: ../gitg/gitg-preferences.ui.h:4 msgid "Collapse inactive lanes" msgstr "" -#: ../gitg/gitg-preferences.xml.h:3 +#: ../gitg/gitg-preferences.ui.h:6 ../gitg/gitg-repository.ui.h:2 +msgid "Configuration" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:7 +msgid "" +"Configure global git settings. This corresponds to the settings as stored in " +"~/.gitconfig. Repository specific settings can be configured at the " +"repository properties." +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:8 +msgid "Display right _margin" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:9 ../gitg/gitg-repository.ui.h:3 +msgid "E-mail:" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:10 msgid "Early" msgstr "" -#: ../gitg/gitg-preferences.xml.h:4 +#: ../gitg/gitg-preferences.ui.h:11 msgid "Late" msgstr "" -#: ../gitg/gitg-preferences.xml.h:5 +#: ../gitg/gitg-preferences.ui.h:12 ../gitg/gitg-repository.ui.h:6 +#: ../gitg/gitg-tag.ui.h:4 +#, fuzzy +msgid "Name:" +msgstr "Datum:" + +#: ../gitg/gitg-preferences.ui.h:13 msgid "Preferences" msgstr "Inställningar" -#: ../gitg/gitg-preferences.xml.h:6 +#: ../gitg/gitg-preferences.ui.h:14 +msgid "Preferences that apply to the commit view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:15 +msgid "Preferences that apply to the revision view" +msgstr "" + +#: ../gitg/gitg-preferences.ui.h:16 msgid "Search filters revisions in the history view" msgstr "" -#: ../gitg/gitg-preferences.xml.h:7 +#: ../gitg/gitg-preferences.ui.h:17 msgid "Show staged changes in history" msgstr "" -#: ../gitg/gitg-preferences.xml.h:8 +#: ../gitg/gitg-preferences.ui.h:18 msgid "Show stash in history" msgstr "" -#: ../gitg/gitg-preferences.xml.h:9 +#: ../gitg/gitg-preferences.ui.h:19 msgid "Show unstaged changes in history" msgstr "" -#: ../gitg/gitg-preferences.xml.h:10 +#: ../gitg/gitg-preferences.ui.h:20 msgid "View" msgstr "Visa" +#: ../gitg/gitg-preferences.ui.h:21 +msgid "_Right margin at column:" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:5 +#, fuzzy +msgid "Name" +msgstr "Datum:" + +#: ../gitg/gitg-repository.ui.h:8 +msgid "Remotes" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:9 +msgid "URL" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:10 +msgid "gtk-add" +msgstr "" + +#: ../gitg/gitg-repository.ui.h:11 +msgid "gtk-remove" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:1 +msgid "Create signed tag object" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:2 ../gitg/gitg-menus.xml.h:3 +msgid "Create tag" +msgstr "" + +#: ../gitg/gitg-tag.ui.h:3 +msgid "Message:" +msgstr "" + +#: ../gitg/gitg-menus.xml.h:1 +msgid "Apply stash to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:2 +#, fuzzy +msgid "Checkout branch" +msgstr "Välj gren" + +#: ../gitg/gitg-menus.xml.h:5 +msgid "Merge branch with..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:6 +msgid "Push branch to..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:8 +msgid "Rebase branch onto..." +msgstr "" + +#: ../gitg/gitg-menus.xml.h:10 +msgid "_Author" +msgstr "U_pphovsman" + +#: ../gitg/gitg-menus.xml.h:11 +msgid "_Date" +msgstr "_Datum" + +#: ../gitg/gitg-menus.xml.h:12 +msgid "_Hash" +msgstr "_Hash" + +#: ../gitg/gitg-menus.xml.h:13 +msgid "_Subject" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:2 +msgid "R_ecently Opened" +msgstr "" + +#: ../gitg/gitg-ui.xml.h:6 +msgid "_Edit" +msgstr "_Redigera" + +#: ../gitg/gitg-ui.xml.h:7 +msgid "_File" +msgstr "_Arkiv" + +#: ../gitg/gitg-ui.xml.h:8 +msgid "_Help" +msgstr "_Hjälp" + +#: ../gitg/gitg-ui.xml.h:9 +msgid "_Open..." +msgstr "_Öppna..." + +#: ../gitg/gitg-ui.xml.h:10 +#, fuzzy +msgid "_Repository" +msgstr "Öppna git-förråd" + +#: ../gitg/gitg-ui.xml.h:11 +msgid "_View" +msgstr "_Visa" + +#~ msgid "Author" +#~ msgstr "Upphovsman" + +#~ msgid "Date" +#~ msgstr "Datum" + +#~ msgid "Filename" +#~ msgstr "Filnamn" diff -Nru gitg-0.0.3/README gitg-0.0.6/README --- gitg-0.0.3/README 2009-04-23 22:13:08.000000000 +0100 +++ gitg-0.0.6/README 2010-02-21 09:55:24.000000000 +0000 @@ -3,19 +3,20 @@ convenient tool to visualize git history and actions that benefit from a graphical presentation. -The latest version of gitg is 0.0.3. +The latest version of gitg is 0.0.6. -Website: http://trac.novowork.com/gitg -Bugs: http://bugzilla.gnome.org/browse.cgi?product=gitg -Download: http://trac.novowork.com/gitg/Download +Website: http://trac.novowork.com/gitg +Bugs: http://bugzilla.gnome.org/browse.cgi?product=gitg +Download: http://download.gnome.org/sources/gitg/ +Mailing list: http://mail.gnome.org/mailman/listinfo/gitg-list = Installing gitg = -To install the latest version of gitg, make sure to download gitg-0.0.3.tar.bz2 -from the download site. After downloading the following procedure installs +To install the latest version of gitg, make sure to download gitg-0.0.6.tar.bz2 +from the download site. After downloading the following procedure installs gitg: - $ tar -xjf gitg-0.0.3.tar.bz2 - $ cd gitg-0.0.3 + $ tar -xjf gitg-0.0.6.tar.bz2 + $ cd gitg-0.0.6 $ ./configure $ make $ sudo make install